diff --git a/config/version.txt b/config/version.txt
index b3b01cfd8..f50be92af 100644
--- a/config/version.txt
+++ b/config/version.txt
@@ -1 +1 @@
-8.18.2
+8.18.3
diff --git a/java-client/src/main-flavored/java/co/elastic/clients/transport/VersionInfo.java b/java-client/src/main-flavored/java/co/elastic/clients/transport/VersionInfo.java
index f59899c62..16852b59a 100644
--- a/java-client/src/main-flavored/java/co/elastic/clients/transport/VersionInfo.java
+++ b/java-client/src/main-flavored/java/co/elastic/clients/transport/VersionInfo.java
@@ -21,5 +21,5 @@
 
 // Package private
 class VersionInfo {
-    static final String VERSION = "8.18.2";
+    static final String VERSION = "8.18.3";
 }
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/InnerRetriever.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/InnerRetriever.java
new file mode 100644
index 000000000..494c55d96
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/InnerRetriever.java
@@ -0,0 +1,216 @@
+/*
+ * 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._types;
+
+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.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.Float;
+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: _types.InnerRetriever
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#_types.InnerRetriever">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class InnerRetriever implements JsonpSerializable {
+	private final Retriever retriever;
+
+	private final float weight;
+
+	private final ScoreNormalizer normalizer;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private InnerRetriever(Builder builder) {
+
+		this.retriever = ApiTypeHelper.requireNonNull(builder.retriever, this, "retriever");
+		this.weight = ApiTypeHelper.requireNonNull(builder.weight, this, "weight", 0);
+		this.normalizer = ApiTypeHelper.requireNonNull(builder.normalizer, this, "normalizer");
+
+	}
+
+	public static InnerRetriever of(Function<Builder, ObjectBuilder<InnerRetriever>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * Required - API name: {@code retriever}
+	 */
+	public final Retriever retriever() {
+		return this.retriever;
+	}
+
+	/**
+	 * Required - API name: {@code weight}
+	 */
+	public final float weight() {
+		return this.weight;
+	}
+
+	/**
+	 * Required - API name: {@code normalizer}
+	 */
+	public final ScoreNormalizer normalizer() {
+		return this.normalizer;
+	}
+
+	/**
+	 * 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) {
+
+		generator.writeKey("retriever");
+		this.retriever.serialize(generator, mapper);
+
+		generator.writeKey("weight");
+		generator.write(this.weight);
+
+		generator.writeKey("normalizer");
+		this.normalizer.serialize(generator, mapper);
+
+	}
+
+	@Override
+	public String toString() {
+		return JsonpUtils.toString(this);
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link InnerRetriever}.
+	 */
+
+	public static class Builder extends WithJsonObjectBuilderBase<Builder> implements ObjectBuilder<InnerRetriever> {
+		private Retriever retriever;
+
+		private Float weight;
+
+		private ScoreNormalizer normalizer;
+
+		/**
+		 * Required - API name: {@code retriever}
+		 */
+		public final Builder retriever(Retriever value) {
+			this.retriever = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code retriever}
+		 */
+		public final Builder retriever(Function<Retriever.Builder, ObjectBuilder<Retriever>> fn) {
+			return this.retriever(fn.apply(new Retriever.Builder()).build());
+		}
+
+		/**
+		 * Required - API name: {@code retriever}
+		 */
+		public final Builder retriever(RetrieverVariant value) {
+			this.retriever = value._toRetriever();
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code weight}
+		 */
+		public final Builder weight(float value) {
+			this.weight = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code normalizer}
+		 */
+		public final Builder normalizer(ScoreNormalizer value) {
+			this.normalizer = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link InnerRetriever}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public InnerRetriever build() {
+			_checkSingleUse();
+
+			return new InnerRetriever(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link InnerRetriever}
+	 */
+	public static final JsonpDeserializer<InnerRetriever> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
+			InnerRetriever::setupInnerRetrieverDeserializer);
+
+	protected static void setupInnerRetrieverDeserializer(ObjectDeserializer<InnerRetriever.Builder> op) {
+
+		op.add(Builder::retriever, Retriever._DESERIALIZER, "retriever");
+		op.add(Builder::weight, JsonpDeserializer.floatDeserializer(), "weight");
+		op.add(Builder::normalizer, ScoreNormalizer._DESERIALIZER, "normalizer");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/LinearRetriever.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/LinearRetriever.java
new file mode 100644
index 000000000..7a19c531f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/LinearRetriever.java
@@ -0,0 +1,210 @@
+/*
+ * 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._types;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.Integer;
+import java.util.List;
+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: _types.LinearRetriever
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#_types.LinearRetriever">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class LinearRetriever extends RetrieverBase implements RetrieverVariant {
+	private final List<InnerRetriever> retrievers;
+
+	private final int rankWindowSize;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private LinearRetriever(Builder builder) {
+		super(builder);
+
+		this.retrievers = ApiTypeHelper.unmodifiable(builder.retrievers);
+		this.rankWindowSize = ApiTypeHelper.requireNonNull(builder.rankWindowSize, this, "rankWindowSize", 0);
+
+	}
+
+	public static LinearRetriever of(Function<Builder, ObjectBuilder<LinearRetriever>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * Retriever variant kind.
+	 */
+	@Override
+	public Retriever.Kind _retrieverKind() {
+		return Retriever.Kind.Linear;
+	}
+
+	/**
+	 * Inner retrievers.
+	 * <p>
+	 * API name: {@code retrievers}
+	 */
+	public final List<InnerRetriever> retrievers() {
+		return this.retrievers;
+	}
+
+	/**
+	 * Required - API name: {@code rank_window_size}
+	 */
+	public final int rankWindowSize() {
+		return this.rankWindowSize;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		if (ApiTypeHelper.isDefined(this.retrievers)) {
+			generator.writeKey("retrievers");
+			generator.writeStartArray();
+			for (InnerRetriever item0 : this.retrievers) {
+				item0.serialize(generator, mapper);
+
+			}
+			generator.writeEnd();
+
+		}
+		generator.writeKey("rank_window_size");
+		generator.write(this.rankWindowSize);
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link LinearRetriever}.
+	 */
+
+	public static class Builder extends RetrieverBase.AbstractBuilder<Builder>
+			implements
+				ObjectBuilder<LinearRetriever> {
+		@Nullable
+		private List<InnerRetriever> retrievers;
+
+		private Integer rankWindowSize;
+
+		/**
+		 * Inner retrievers.
+		 * <p>
+		 * API name: {@code retrievers}
+		 * <p>
+		 * Adds all elements of <code>list</code> to <code>retrievers</code>.
+		 */
+		public final Builder retrievers(List<InnerRetriever> list) {
+			this.retrievers = _listAddAll(this.retrievers, list);
+			return this;
+		}
+
+		/**
+		 * Inner retrievers.
+		 * <p>
+		 * API name: {@code retrievers}
+		 * <p>
+		 * Adds one or more values to <code>retrievers</code>.
+		 */
+		public final Builder retrievers(InnerRetriever value, InnerRetriever... values) {
+			this.retrievers = _listAdd(this.retrievers, value, values);
+			return this;
+		}
+
+		/**
+		 * Inner retrievers.
+		 * <p>
+		 * API name: {@code retrievers}
+		 * <p>
+		 * Adds a value to <code>retrievers</code> using a builder lambda.
+		 */
+		public final Builder retrievers(Function<InnerRetriever.Builder, ObjectBuilder<InnerRetriever>> fn) {
+			return retrievers(fn.apply(new InnerRetriever.Builder()).build());
+		}
+
+		/**
+		 * Required - API name: {@code rank_window_size}
+		 */
+		public final Builder rankWindowSize(int value) {
+			this.rankWindowSize = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link LinearRetriever}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public LinearRetriever build() {
+			_checkSingleUse();
+
+			return new LinearRetriever(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link LinearRetriever}
+	 */
+	public static final JsonpDeserializer<LinearRetriever> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
+			LinearRetriever::setupLinearRetrieverDeserializer);
+
+	protected static void setupLinearRetrieverDeserializer(ObjectDeserializer<LinearRetriever.Builder> op) {
+		RetrieverBase.setupRetrieverBaseDeserializer(op);
+		op.add(Builder::retrievers, JsonpDeserializer.arrayDeserializer(InnerRetriever._DESERIALIZER), "retrievers");
+		op.add(Builder::rankWindowSize, JsonpDeserializer.integerDeserializer(), "rank_window_size");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/PinnedRetriever.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/PinnedRetriever.java
new file mode 100644
index 000000000..b696e3eee
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/PinnedRetriever.java
@@ -0,0 +1,294 @@
+/*
+ * 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._types;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.Integer;
+import java.lang.String;
+import java.util.List;
+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: _types.PinnedRetriever
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#_types.PinnedRetriever">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class PinnedRetriever extends RetrieverBase implements RetrieverVariant {
+	private final Retriever retriever;
+
+	private final List<String> ids;
+
+	private final List<SpecifiedDocument> docs;
+
+	private final int rankWindowSize;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private PinnedRetriever(Builder builder) {
+		super(builder);
+
+		this.retriever = ApiTypeHelper.requireNonNull(builder.retriever, this, "retriever");
+		this.ids = ApiTypeHelper.unmodifiable(builder.ids);
+		this.docs = ApiTypeHelper.unmodifiable(builder.docs);
+		this.rankWindowSize = ApiTypeHelper.requireNonNull(builder.rankWindowSize, this, "rankWindowSize", 0);
+
+	}
+
+	public static PinnedRetriever of(Function<Builder, ObjectBuilder<PinnedRetriever>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * Retriever variant kind.
+	 */
+	@Override
+	public Retriever.Kind _retrieverKind() {
+		return Retriever.Kind.Pinned;
+	}
+
+	/**
+	 * Required - Inner retriever.
+	 * <p>
+	 * API name: {@code retriever}
+	 */
+	public final Retriever retriever() {
+		return this.retriever;
+	}
+
+	/**
+	 * API name: {@code ids}
+	 */
+	public final List<String> ids() {
+		return this.ids;
+	}
+
+	/**
+	 * API name: {@code docs}
+	 */
+	public final List<SpecifiedDocument> docs() {
+		return this.docs;
+	}
+
+	/**
+	 * Required - API name: {@code rank_window_size}
+	 */
+	public final int rankWindowSize() {
+		return this.rankWindowSize;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("retriever");
+		this.retriever.serialize(generator, mapper);
+
+		if (ApiTypeHelper.isDefined(this.ids)) {
+			generator.writeKey("ids");
+			generator.writeStartArray();
+			for (String item0 : this.ids) {
+				generator.write(item0);
+
+			}
+			generator.writeEnd();
+
+		}
+		if (ApiTypeHelper.isDefined(this.docs)) {
+			generator.writeKey("docs");
+			generator.writeStartArray();
+			for (SpecifiedDocument item0 : this.docs) {
+				item0.serialize(generator, mapper);
+
+			}
+			generator.writeEnd();
+
+		}
+		generator.writeKey("rank_window_size");
+		generator.write(this.rankWindowSize);
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link PinnedRetriever}.
+	 */
+
+	public static class Builder extends RetrieverBase.AbstractBuilder<Builder>
+			implements
+				ObjectBuilder<PinnedRetriever> {
+		private Retriever retriever;
+
+		@Nullable
+		private List<String> ids;
+
+		@Nullable
+		private List<SpecifiedDocument> docs;
+
+		private Integer rankWindowSize;
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(Retriever value) {
+			this.retriever = value;
+			return this;
+		}
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(Function<Retriever.Builder, ObjectBuilder<Retriever>> fn) {
+			return this.retriever(fn.apply(new Retriever.Builder()).build());
+		}
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(RetrieverVariant value) {
+			this.retriever = value._toRetriever();
+			return this;
+		}
+
+		/**
+		 * API name: {@code ids}
+		 * <p>
+		 * Adds all elements of <code>list</code> to <code>ids</code>.
+		 */
+		public final Builder ids(List<String> list) {
+			this.ids = _listAddAll(this.ids, list);
+			return this;
+		}
+
+		/**
+		 * API name: {@code ids}
+		 * <p>
+		 * Adds one or more values to <code>ids</code>.
+		 */
+		public final Builder ids(String value, String... values) {
+			this.ids = _listAdd(this.ids, value, values);
+			return this;
+		}
+
+		/**
+		 * API name: {@code docs}
+		 * <p>
+		 * Adds all elements of <code>list</code> to <code>docs</code>.
+		 */
+		public final Builder docs(List<SpecifiedDocument> list) {
+			this.docs = _listAddAll(this.docs, list);
+			return this;
+		}
+
+		/**
+		 * API name: {@code docs}
+		 * <p>
+		 * Adds one or more values to <code>docs</code>.
+		 */
+		public final Builder docs(SpecifiedDocument value, SpecifiedDocument... values) {
+			this.docs = _listAdd(this.docs, value, values);
+			return this;
+		}
+
+		/**
+		 * API name: {@code docs}
+		 * <p>
+		 * Adds a value to <code>docs</code> using a builder lambda.
+		 */
+		public final Builder docs(Function<SpecifiedDocument.Builder, ObjectBuilder<SpecifiedDocument>> fn) {
+			return docs(fn.apply(new SpecifiedDocument.Builder()).build());
+		}
+
+		/**
+		 * Required - API name: {@code rank_window_size}
+		 */
+		public final Builder rankWindowSize(int value) {
+			this.rankWindowSize = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link PinnedRetriever}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public PinnedRetriever build() {
+			_checkSingleUse();
+
+			return new PinnedRetriever(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link PinnedRetriever}
+	 */
+	public static final JsonpDeserializer<PinnedRetriever> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
+			PinnedRetriever::setupPinnedRetrieverDeserializer);
+
+	protected static void setupPinnedRetrieverDeserializer(ObjectDeserializer<PinnedRetriever.Builder> op) {
+		RetrieverBase.setupRetrieverBaseDeserializer(op);
+		op.add(Builder::retriever, Retriever._DESERIALIZER, "retriever");
+		op.add(Builder::ids, JsonpDeserializer.arrayDeserializer(JsonpDeserializer.stringDeserializer()), "ids");
+		op.add(Builder::docs, JsonpDeserializer.arrayDeserializer(SpecifiedDocument._DESERIALIZER), "docs");
+		op.add(Builder::rankWindowSize, JsonpDeserializer.integerDeserializer(), "rank_window_size");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RescorerRetriever.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RescorerRetriever.java
new file mode 100644
index 000000000..92fca5673
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RescorerRetriever.java
@@ -0,0 +1,239 @@
+/*
+ * 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._types;
+
+import co.elastic.clients.elasticsearch.core.search.Rescore;
+import co.elastic.clients.elasticsearch.core.search.RescoreVariant;
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import jakarta.json.stream.JsonGenerator;
+import java.util.List;
+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: _types.RescorerRetriever
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#_types.RescorerRetriever">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class RescorerRetriever extends RetrieverBase implements RetrieverVariant {
+	private final Retriever retriever;
+
+	private final List<Rescore> rescore;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private RescorerRetriever(Builder builder) {
+		super(builder);
+
+		this.retriever = ApiTypeHelper.requireNonNull(builder.retriever, this, "retriever");
+		this.rescore = ApiTypeHelper.unmodifiableRequired(builder.rescore, this, "rescore");
+
+	}
+
+	public static RescorerRetriever of(Function<Builder, ObjectBuilder<RescorerRetriever>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * Retriever variant kind.
+	 */
+	@Override
+	public Retriever.Kind _retrieverKind() {
+		return Retriever.Kind.Rescorer;
+	}
+
+	/**
+	 * Required - Inner retriever.
+	 * <p>
+	 * API name: {@code retriever}
+	 */
+	public final Retriever retriever() {
+		return this.retriever;
+	}
+
+	/**
+	 * Required - API name: {@code rescore}
+	 */
+	public final List<Rescore> rescore() {
+		return this.rescore;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("retriever");
+		this.retriever.serialize(generator, mapper);
+
+		if (ApiTypeHelper.isDefined(this.rescore)) {
+			generator.writeKey("rescore");
+			generator.writeStartArray();
+			for (Rescore item0 : this.rescore) {
+				item0.serialize(generator, mapper);
+
+			}
+			generator.writeEnd();
+
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link RescorerRetriever}.
+	 */
+
+	public static class Builder extends RetrieverBase.AbstractBuilder<Builder>
+			implements
+				ObjectBuilder<RescorerRetriever> {
+		private Retriever retriever;
+
+		private List<Rescore> rescore;
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(Retriever value) {
+			this.retriever = value;
+			return this;
+		}
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(Function<Retriever.Builder, ObjectBuilder<Retriever>> fn) {
+			return this.retriever(fn.apply(new Retriever.Builder()).build());
+		}
+
+		/**
+		 * Required - Inner retriever.
+		 * <p>
+		 * API name: {@code retriever}
+		 */
+		public final Builder retriever(RetrieverVariant value) {
+			this.retriever = value._toRetriever();
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code rescore}
+		 * <p>
+		 * Adds all elements of <code>list</code> to <code>rescore</code>.
+		 */
+		public final Builder rescore(List<Rescore> list) {
+			this.rescore = _listAddAll(this.rescore, list);
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code rescore}
+		 * <p>
+		 * Adds one or more values to <code>rescore</code>.
+		 */
+		public final Builder rescore(Rescore value, Rescore... values) {
+			this.rescore = _listAdd(this.rescore, value, values);
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code rescore}
+		 * <p>
+		 * Adds one or more values to <code>rescore</code>.
+		 */
+		public final Builder rescore(RescoreVariant value, RescoreVariant... values) {
+			this.rescore = _listAdd(this.rescore, value._toRescore());
+			for (RescoreVariant v : values) {
+				_listAdd(this.rescore, v._toRescore());
+			}
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code rescore}
+		 * <p>
+		 * Adds a value to <code>rescore</code> using a builder lambda.
+		 */
+		public final Builder rescore(Function<Rescore.Builder, ObjectBuilder<Rescore>> fn) {
+			return rescore(fn.apply(new Rescore.Builder()).build());
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link RescorerRetriever}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public RescorerRetriever build() {
+			_checkSingleUse();
+
+			return new RescorerRetriever(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link RescorerRetriever}
+	 */
+	public static final JsonpDeserializer<RescorerRetriever> _DESERIALIZER = ObjectBuilderDeserializer
+			.lazy(Builder::new, RescorerRetriever::setupRescorerRetrieverDeserializer);
+
+	protected static void setupRescorerRetrieverDeserializer(ObjectDeserializer<RescorerRetriever.Builder> op) {
+		RetrieverBase.setupRetrieverBaseDeserializer(op);
+		op.add(Builder::retriever, Retriever._DESERIALIZER, "retriever");
+		op.add(Builder::rescore, JsonpDeserializer.arrayDeserializer(Rescore._DESERIALIZER), "rescore");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/Retriever.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/Retriever.java
index 40b0649e0..8cd08b6f7 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/Retriever.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/Retriever.java
@@ -81,6 +81,12 @@ public enum Kind implements JsonEnum {
 
 		Rule("rule"),
 
+		Rescorer("rescorer"),
+
+		Linear("linear"),
+
+		Pinned("pinned"),
+
 		;
 
 		private final String jsonValue;
@@ -212,6 +218,57 @@ public RuleRetriever rule() {
 		return TaggedUnionUtils.get(this, Kind.Rule);
 	}
 
+	/**
+	 * Is this variant instance of kind {@code rescorer}?
+	 */
+	public boolean isRescorer() {
+		return _kind == Kind.Rescorer;
+	}
+
+	/**
+	 * Get the {@code rescorer} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code rescorer} kind.
+	 */
+	public RescorerRetriever rescorer() {
+		return TaggedUnionUtils.get(this, Kind.Rescorer);
+	}
+
+	/**
+	 * Is this variant instance of kind {@code linear}?
+	 */
+	public boolean isLinear() {
+		return _kind == Kind.Linear;
+	}
+
+	/**
+	 * Get the {@code linear} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code linear} kind.
+	 */
+	public LinearRetriever linear() {
+		return TaggedUnionUtils.get(this, Kind.Linear);
+	}
+
+	/**
+	 * Is this variant instance of kind {@code pinned}?
+	 */
+	public boolean isPinned() {
+		return _kind == Kind.Pinned;
+	}
+
+	/**
+	 * Get the {@code pinned} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code pinned} kind.
+	 */
+	public PinnedRetriever pinned() {
+		return TaggedUnionUtils.get(this, Kind.Pinned);
+	}
+
 	@Override
 	@SuppressWarnings("unchecked")
 	public void serialize(JsonGenerator generator, JsonpMapper mapper) {
@@ -292,6 +349,37 @@ public ObjectBuilder<Retriever> rule(Function<RuleRetriever.Builder, ObjectBuild
 			return this.rule(fn.apply(new RuleRetriever.Builder()).build());
 		}
 
+		public ObjectBuilder<Retriever> rescorer(RescorerRetriever v) {
+			this._kind = Kind.Rescorer;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<Retriever> rescorer(
+				Function<RescorerRetriever.Builder, ObjectBuilder<RescorerRetriever>> fn) {
+			return this.rescorer(fn.apply(new RescorerRetriever.Builder()).build());
+		}
+
+		public ObjectBuilder<Retriever> linear(LinearRetriever v) {
+			this._kind = Kind.Linear;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<Retriever> linear(Function<LinearRetriever.Builder, ObjectBuilder<LinearRetriever>> fn) {
+			return this.linear(fn.apply(new LinearRetriever.Builder()).build());
+		}
+
+		public ObjectBuilder<Retriever> pinned(PinnedRetriever v) {
+			this._kind = Kind.Pinned;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<Retriever> pinned(Function<PinnedRetriever.Builder, ObjectBuilder<PinnedRetriever>> fn) {
+			return this.pinned(fn.apply(new PinnedRetriever.Builder()).build());
+		}
+
 		public Retriever build() {
 			_checkSingleUse();
 			return new Retriever(this);
@@ -306,6 +394,9 @@ protected static void setupRetrieverDeserializer(ObjectDeserializer<Builder> op)
 		op.add(Builder::rrf, RRFRetriever._DESERIALIZER, "rrf");
 		op.add(Builder::textSimilarityReranker, TextSimilarityReranker._DESERIALIZER, "text_similarity_reranker");
 		op.add(Builder::rule, RuleRetriever._DESERIALIZER, "rule");
+		op.add(Builder::rescorer, RescorerRetriever._DESERIALIZER, "rescorer");
+		op.add(Builder::linear, LinearRetriever._DESERIALIZER, "linear");
+		op.add(Builder::pinned, PinnedRetriever._DESERIALIZER, "pinned");
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBase.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBase.java
index d73b206a7..50bc64281 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBase.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBase.java
@@ -33,6 +33,7 @@
 import co.elastic.clients.util.WithJsonObjectBuilderBase;
 import jakarta.json.stream.JsonGenerator;
 import java.lang.Float;
+import java.lang.String;
 import java.util.List;
 import java.util.Objects;
 import java.util.function.Function;
@@ -67,12 +68,16 @@ public abstract class RetrieverBase implements JsonpSerializable {
 	@Nullable
 	private final Float minScore;
 
+	@Nullable
+	private final String name;
+
 	// ---------------------------------------------------------------------------------------------
 
 	protected RetrieverBase(AbstractBuilder<?> builder) {
 
 		this.filter = ApiTypeHelper.unmodifiable(builder.filter);
 		this.minScore = builder.minScore;
+		this.name = builder.name;
 
 	}
 
@@ -96,6 +101,16 @@ public final Float minScore() {
 		return this.minScore;
 	}
 
+	/**
+	 * Retriever name.
+	 * <p>
+	 * API name: {@code _name}
+	 */
+	@Nullable
+	public final String name() {
+		return this.name;
+	}
+
 	/**
 	 * Serialize this object to JSON.
 	 */
@@ -122,6 +137,11 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
 			generator.write(this.minScore);
 
 		}
+		if (this.name != null) {
+			generator.writeKey("_name");
+			generator.write(this.name);
+
+		}
 
 	}
 
@@ -139,6 +159,9 @@ public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<Bu
 		@Nullable
 		private Float minScore;
 
+		@Nullable
+		private String name;
+
 		/**
 		 * Query to filter the documents that can match.
 		 * <p>
@@ -200,6 +223,16 @@ public final BuilderT minScore(@Nullable Float value) {
 			return self();
 		}
 
+		/**
+		 * Retriever name.
+		 * <p>
+		 * API name: {@code _name}
+		 */
+		public final BuilderT name(@Nullable String value) {
+			this.name = value;
+			return self();
+		}
+
 		protected abstract BuilderT self();
 
 	}
@@ -210,6 +243,7 @@ protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupRetrieve
 
 		op.add(AbstractBuilder::filter, JsonpDeserializer.arrayDeserializer(Query._DESERIALIZER), "filter");
 		op.add(AbstractBuilder::minScore, JsonpDeserializer.floatDeserializer(), "min_score");
+		op.add(AbstractBuilder::name, JsonpDeserializer.stringDeserializer(), "_name");
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBuilders.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBuilders.java
index b3d22f0ba..9766e80b7 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBuilders.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/RetrieverBuilders.java
@@ -133,4 +133,58 @@ public static Retriever rule(Function<RuleRetriever.Builder, ObjectBuilder<RuleR
 		return builder.build();
 	}
 
+	/**
+	 * Creates a builder for the {@link RescorerRetriever rescorer}
+	 * {@code Retriever} variant.
+	 */
+	public static RescorerRetriever.Builder rescorer() {
+		return new RescorerRetriever.Builder();
+	}
+
+	/**
+	 * Creates a Retriever of the {@link RescorerRetriever rescorer}
+	 * {@code Retriever} variant.
+	 */
+	public static Retriever rescorer(Function<RescorerRetriever.Builder, ObjectBuilder<RescorerRetriever>> fn) {
+		Retriever.Builder builder = new Retriever.Builder();
+		builder.rescorer(fn.apply(new RescorerRetriever.Builder()).build());
+		return builder.build();
+	}
+
+	/**
+	 * Creates a builder for the {@link LinearRetriever linear} {@code Retriever}
+	 * variant.
+	 */
+	public static LinearRetriever.Builder linear() {
+		return new LinearRetriever.Builder();
+	}
+
+	/**
+	 * Creates a Retriever of the {@link LinearRetriever linear} {@code Retriever}
+	 * variant.
+	 */
+	public static Retriever linear(Function<LinearRetriever.Builder, ObjectBuilder<LinearRetriever>> fn) {
+		Retriever.Builder builder = new Retriever.Builder();
+		builder.linear(fn.apply(new LinearRetriever.Builder()).build());
+		return builder.build();
+	}
+
+	/**
+	 * Creates a builder for the {@link PinnedRetriever pinned} {@code Retriever}
+	 * variant.
+	 */
+	public static PinnedRetriever.Builder pinned() {
+		return new PinnedRetriever.Builder();
+	}
+
+	/**
+	 * Creates a Retriever of the {@link PinnedRetriever pinned} {@code Retriever}
+	 * variant.
+	 */
+	public static Retriever pinned(Function<PinnedRetriever.Builder, ObjectBuilder<PinnedRetriever>> fn) {
+		Retriever.Builder builder = new Retriever.Builder();
+		builder.pinned(fn.apply(new PinnedRetriever.Builder()).build());
+		return builder.build();
+	}
+
 }
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/ScoreNormalizer.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/ScoreNormalizer.java
new file mode 100644
index 000000000..2895621cb
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/ScoreNormalizer.java
@@ -0,0 +1,66 @@
+/*
+ * 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._types;
+
+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 <a href="../doc-files/api-spec.html#_types.ScoreNormalizer">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum ScoreNormalizer implements JsonEnum {
+	None("none"),
+
+	Minmax("minmax"),
+
+	;
+
+	private final String jsonValue;
+
+	ScoreNormalizer(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<ScoreNormalizer> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			ScoreNormalizer.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/SpecifiedDocument.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/SpecifiedDocument.java
new file mode 100644
index 000000000..84f98d512
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/SpecifiedDocument.java
@@ -0,0 +1,182 @@
+/*
+ * 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._types;
+
+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.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+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: _types.SpecifiedDocument
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#_types.SpecifiedDocument">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class SpecifiedDocument implements JsonpSerializable {
+	@Nullable
+	private final String index;
+
+	private final String id;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private SpecifiedDocument(Builder builder) {
+
+		this.index = builder.index;
+		this.id = ApiTypeHelper.requireNonNull(builder.id, this, "id");
+
+	}
+
+	public static SpecifiedDocument of(Function<Builder, ObjectBuilder<SpecifiedDocument>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * API name: {@code index}
+	 */
+	@Nullable
+	public final String index() {
+		return this.index;
+	}
+
+	/**
+	 * Required - API name: {@code id}
+	 */
+	public final String id() {
+		return this.id;
+	}
+
+	/**
+	 * 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.index != null) {
+			generator.writeKey("index");
+			generator.write(this.index);
+
+		}
+		generator.writeKey("id");
+		generator.write(this.id);
+
+	}
+
+	@Override
+	public String toString() {
+		return JsonpUtils.toString(this);
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link SpecifiedDocument}.
+	 */
+
+	public static class Builder extends WithJsonObjectBuilderBase<Builder> implements ObjectBuilder<SpecifiedDocument> {
+		@Nullable
+		private String index;
+
+		private String id;
+
+		/**
+		 * API name: {@code index}
+		 */
+		public final Builder index(@Nullable String value) {
+			this.index = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code id}
+		 */
+		public final Builder id(String value) {
+			this.id = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link SpecifiedDocument}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public SpecifiedDocument build() {
+			_checkSingleUse();
+
+			return new SpecifiedDocument(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link SpecifiedDocument}
+	 */
+	public static final JsonpDeserializer<SpecifiedDocument> _DESERIALIZER = ObjectBuilderDeserializer
+			.lazy(Builder::new, SpecifiedDocument::setupSpecifiedDocumentDeserializer);
+
+	protected static void setupSpecifiedDocumentDeserializer(ObjectDeserializer<SpecifiedDocument.Builder> op) {
+
+		op.add(Builder::index, JsonpDeserializer.stringDeserializer(), "index");
+		op.add(Builder::id, JsonpDeserializer.stringDeserializer(), "id");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/CategorizeTextAggregation.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/CategorizeTextAggregation.java
index 00dc3ffb4..dbdd92980 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/CategorizeTextAggregation.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/CategorizeTextAggregation.java
@@ -192,10 +192,8 @@ public final List<String> categorizationFilters() {
 	/**
 	 * The categorization analyzer specifies how the text is analyzed and tokenized
 	 * before being categorized. The syntax is very similar to that used to define
-	 * the analyzer in the <a href=
-	 * "https://www.elastic.co/guide/en/elasticsearch/reference/8.0/indices-analyze.html">Analyze
-	 * endpoint</a>. This property cannot be used at the same time as
-	 * categorization_filters.
+	 * the analyzer in the <code>_analyze</code> endpoint. This property cannot be
+	 * used at the same time as categorization_filters.
 	 * <p>
 	 * API name: {@code categorization_analyzer}
 	 */
@@ -451,10 +449,8 @@ public final Builder categorizationFilters(String value, String... values) {
 		/**
 		 * The categorization analyzer specifies how the text is analyzed and tokenized
 		 * before being categorized. The syntax is very similar to that used to define
-		 * the analyzer in the <a href=
-		 * "https://www.elastic.co/guide/en/elasticsearch/reference/8.0/indices-analyze.html">Analyze
-		 * endpoint</a>. This property cannot be used at the same time as
-		 * categorization_filters.
+		 * the analyzer in the <code>_analyze</code> endpoint. This property cannot be
+		 * used at the same time as categorization_filters.
 		 * <p>
 		 * API name: {@code categorization_analyzer}
 		 */
@@ -466,10 +462,8 @@ public final Builder categorizationAnalyzer(@Nullable CategorizeTextAnalyzer val
 		/**
 		 * The categorization analyzer specifies how the text is analyzed and tokenized
 		 * before being categorized. The syntax is very similar to that used to define
-		 * the analyzer in the <a href=
-		 * "https://www.elastic.co/guide/en/elasticsearch/reference/8.0/indices-analyze.html">Analyze
-		 * endpoint</a>. This property cannot be used at the same time as
-		 * categorization_filters.
+		 * the analyzer in the <code>_analyze</code> endpoint. This property cannot be
+		 * used at the same time as categorization_filters.
 		 * <p>
 		 * API name: {@code categorization_analyzer}
 		 */
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQuery.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQuery.java
index f1551cd19..8325dab86 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQuery.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQuery.java
@@ -77,7 +77,7 @@ public class GeoGridQuery extends QueryBase
 	 */
 
 	public enum Kind implements JsonEnum {
-		Geogrid("geogrid"),
+		Geotile("geotile"),
 
 		Geohash("geohash"),
 
@@ -142,20 +142,20 @@ public final String field() {
 	}
 
 	/**
-	 * Is this variant instance of kind {@code geogrid}?
+	 * Is this variant instance of kind {@code geotile}?
 	 */
-	public boolean isGeogrid() {
-		return _kind == Kind.Geogrid;
+	public boolean isGeotile() {
+		return _kind == Kind.Geotile;
 	}
 
 	/**
-	 * Get the {@code geogrid} variant value.
+	 * Get the {@code geotile} variant value.
 	 *
 	 * @throws IllegalStateException
-	 *             if the current variant is not of the {@code geogrid} kind.
+	 *             if the current variant is not of the {@code geotile} kind.
 	 */
-	public String geogrid() {
-		return TaggedUnionUtils.get(this, Kind.Geogrid);
+	public String geotile() {
+		return TaggedUnionUtils.get(this, Kind.Geotile);
 	}
 
 	/**
@@ -206,7 +206,7 @@ public void serialize(JsonGenerator generator, JsonpMapper mapper) {
 			((JsonpSerializable) _value).serialize(generator, mapper);
 		} else {
 			switch (_kind) {
-				case Geogrid :
+				case Geotile :
 					generator.write(((String) this._value));
 
 					break;
@@ -250,8 +250,8 @@ public final Builder field(String value) {
 		protected Builder self() {
 			return this;
 		}
-		public ObjectBuilder<GeoGridQuery> geogrid(String v) {
-			this._kind = Kind.Geogrid;
+		public ObjectBuilder<GeoGridQuery> geotile(String v) {
+			this._kind = Kind.Geotile;
 			this._value = v;
 			return this;
 		}
@@ -277,7 +277,7 @@ public GeoGridQuery build() {
 
 	protected static void setupGeoGridQueryDeserializer(ObjectDeserializer<Builder> op) {
 		QueryBase.setupQueryBaseDeserializer(op);
-		op.add(Builder::geogrid, JsonpDeserializer.stringDeserializer(), "geogrid");
+		op.add(Builder::geotile, JsonpDeserializer.stringDeserializer(), "geotile");
 		op.add(Builder::geohash, JsonpDeserializer.stringDeserializer(), "geohash");
 		op.add(Builder::geohex, JsonpDeserializer.stringDeserializer(), "geohex");
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQueryBuilders.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQueryBuilders.java
index ac50148d6..2ebcce265 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQueryBuilders.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/GeoGridQueryBuilders.java
@@ -40,7 +40,7 @@
 /**
  * Builders for {@link GeoGridQuery} variants.
  * <p>
- * Variants <code>geogrid</code>, <code>geohash</code>, <code>geohex</code> are
+ * Variants <code>geotile</code>, <code>geohash</code>, <code>geohex</code> are
  * not available here as they don't have a dedicated class. Use
  * {@link GeoGridQuery}'s builder for these.
  * 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/Intervals.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/Intervals.java
index a550021f3..5de16ec96 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/Intervals.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/Intervals.java
@@ -83,6 +83,10 @@ public enum Kind implements JsonEnum {
 
 		Prefix("prefix"),
 
+		Range("range"),
+
+		Regexp("regexp"),
+
 		Wildcard("wildcard"),
 
 		;
@@ -223,6 +227,40 @@ public IntervalsPrefix prefix() {
 		return TaggedUnionUtils.get(this, Kind.Prefix);
 	}
 
+	/**
+	 * Is this variant instance of kind {@code range}?
+	 */
+	public boolean isRange() {
+		return _kind == Kind.Range;
+	}
+
+	/**
+	 * Get the {@code range} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code range} kind.
+	 */
+	public IntervalsRange range() {
+		return TaggedUnionUtils.get(this, Kind.Range);
+	}
+
+	/**
+	 * Is this variant instance of kind {@code regexp}?
+	 */
+	public boolean isRegexp() {
+		return _kind == Kind.Regexp;
+	}
+
+	/**
+	 * Get the {@code regexp} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code regexp} kind.
+	 */
+	public IntervalsRegexp regexp() {
+		return TaggedUnionUtils.get(this, Kind.Regexp);
+	}
+
 	/**
 	 * Is this variant instance of kind {@code wildcard}?
 	 */
@@ -318,6 +356,26 @@ public ObjectBuilder<Intervals> prefix(Function<IntervalsPrefix.Builder, ObjectB
 			return this.prefix(fn.apply(new IntervalsPrefix.Builder()).build());
 		}
 
+		public ObjectBuilder<Intervals> range(IntervalsRange v) {
+			this._kind = Kind.Range;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<Intervals> range(Function<IntervalsRange.Builder, ObjectBuilder<IntervalsRange>> fn) {
+			return this.range(fn.apply(new IntervalsRange.Builder()).build());
+		}
+
+		public ObjectBuilder<Intervals> regexp(IntervalsRegexp v) {
+			this._kind = Kind.Regexp;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<Intervals> regexp(Function<IntervalsRegexp.Builder, ObjectBuilder<IntervalsRegexp>> fn) {
+			return this.regexp(fn.apply(new IntervalsRegexp.Builder()).build());
+		}
+
 		public ObjectBuilder<Intervals> wildcard(IntervalsWildcard v) {
 			this._kind = Kind.Wildcard;
 			this._value = v;
@@ -343,6 +401,8 @@ protected static void setupIntervalsDeserializer(ObjectDeserializer<Builder> op)
 		op.add(Builder::fuzzy, IntervalsFuzzy._DESERIALIZER, "fuzzy");
 		op.add(Builder::match, IntervalsMatch._DESERIALIZER, "match");
 		op.add(Builder::prefix, IntervalsPrefix._DESERIALIZER, "prefix");
+		op.add(Builder::range, IntervalsRange._DESERIALIZER, "range");
+		op.add(Builder::regexp, IntervalsRegexp._DESERIALIZER, "regexp");
 		op.add(Builder::wildcard, IntervalsWildcard._DESERIALIZER, "wildcard");
 
 	}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsBuilders.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsBuilders.java
index 7904ee5e3..c56487b32 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsBuilders.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsBuilders.java
@@ -134,6 +134,42 @@ public static Intervals prefix(Function<IntervalsPrefix.Builder, ObjectBuilder<I
 		return builder.build();
 	}
 
+	/**
+	 * Creates a builder for the {@link IntervalsRange range} {@code Intervals}
+	 * variant.
+	 */
+	public static IntervalsRange.Builder range() {
+		return new IntervalsRange.Builder();
+	}
+
+	/**
+	 * Creates a Intervals of the {@link IntervalsRange range} {@code Intervals}
+	 * variant.
+	 */
+	public static Intervals range(Function<IntervalsRange.Builder, ObjectBuilder<IntervalsRange>> fn) {
+		Intervals.Builder builder = new Intervals.Builder();
+		builder.range(fn.apply(new IntervalsRange.Builder()).build());
+		return builder.build();
+	}
+
+	/**
+	 * Creates a builder for the {@link IntervalsRegexp regexp} {@code Intervals}
+	 * variant.
+	 */
+	public static IntervalsRegexp.Builder regexp() {
+		return new IntervalsRegexp.Builder();
+	}
+
+	/**
+	 * Creates a Intervals of the {@link IntervalsRegexp regexp} {@code Intervals}
+	 * variant.
+	 */
+	public static Intervals regexp(Function<IntervalsRegexp.Builder, ObjectBuilder<IntervalsRegexp>> fn) {
+		Intervals.Builder builder = new Intervals.Builder();
+		builder.regexp(fn.apply(new IntervalsRegexp.Builder()).build());
+		return builder.build();
+	}
+
 	/**
 	 * Creates a builder for the {@link IntervalsWildcard wildcard}
 	 * {@code Intervals} variant.
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQuery.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQuery.java
index 837e178a7..4cee275d8 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQuery.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQuery.java
@@ -87,6 +87,10 @@ public enum Kind implements JsonEnum {
 
 		Prefix("prefix"),
 
+		Range("range"),
+
+		Regexp("regexp"),
+
 		Wildcard("wildcard"),
 
 		;
@@ -232,6 +236,40 @@ public IntervalsPrefix prefix() {
 		return TaggedUnionUtils.get(this, Kind.Prefix);
 	}
 
+	/**
+	 * Is this variant instance of kind {@code range}?
+	 */
+	public boolean isRange() {
+		return _kind == Kind.Range;
+	}
+
+	/**
+	 * Get the {@code range} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code range} kind.
+	 */
+	public IntervalsRange range() {
+		return TaggedUnionUtils.get(this, Kind.Range);
+	}
+
+	/**
+	 * Is this variant instance of kind {@code regexp}?
+	 */
+	public boolean isRegexp() {
+		return _kind == Kind.Regexp;
+	}
+
+	/**
+	 * Get the {@code regexp} variant value.
+	 *
+	 * @throws IllegalStateException
+	 *             if the current variant is not of the {@code regexp} kind.
+	 */
+	public IntervalsRegexp regexp() {
+		return TaggedUnionUtils.get(this, Kind.Regexp);
+	}
+
 	/**
 	 * Is this variant instance of kind {@code wildcard}?
 	 */
@@ -343,6 +381,27 @@ public ObjectBuilder<IntervalsQuery> prefix(
 			return this.prefix(fn.apply(new IntervalsPrefix.Builder()).build());
 		}
 
+		public ObjectBuilder<IntervalsQuery> range(IntervalsRange v) {
+			this._kind = Kind.Range;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<IntervalsQuery> range(Function<IntervalsRange.Builder, ObjectBuilder<IntervalsRange>> fn) {
+			return this.range(fn.apply(new IntervalsRange.Builder()).build());
+		}
+
+		public ObjectBuilder<IntervalsQuery> regexp(IntervalsRegexp v) {
+			this._kind = Kind.Regexp;
+			this._value = v;
+			return this;
+		}
+
+		public ObjectBuilder<IntervalsQuery> regexp(
+				Function<IntervalsRegexp.Builder, ObjectBuilder<IntervalsRegexp>> fn) {
+			return this.regexp(fn.apply(new IntervalsRegexp.Builder()).build());
+		}
+
 		public ObjectBuilder<IntervalsQuery> wildcard(IntervalsWildcard v) {
 			this._kind = Kind.Wildcard;
 			this._value = v;
@@ -368,6 +427,8 @@ protected static void setupIntervalsQueryDeserializer(ObjectDeserializer<Builder
 		op.add(Builder::fuzzy, IntervalsFuzzy._DESERIALIZER, "fuzzy");
 		op.add(Builder::match, IntervalsMatch._DESERIALIZER, "match");
 		op.add(Builder::prefix, IntervalsPrefix._DESERIALIZER, "prefix");
+		op.add(Builder::range, IntervalsRange._DESERIALIZER, "range");
+		op.add(Builder::regexp, IntervalsRegexp._DESERIALIZER, "regexp");
 		op.add(Builder::wildcard, IntervalsWildcard._DESERIALIZER, "wildcard");
 
 		op.setKey(Builder::field, JsonpDeserializer.stringDeserializer());
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQueryBuilders.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQueryBuilders.java
index dd8980571..8620b4da4 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQueryBuilders.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsQueryBuilders.java
@@ -134,6 +134,42 @@ public static IntervalsQuery prefix(Function<IntervalsPrefix.Builder, ObjectBuil
 		return builder.build();
 	}
 
+	/**
+	 * Creates a builder for the {@link IntervalsRange range} {@code IntervalsQuery}
+	 * variant.
+	 */
+	public static IntervalsRange.Builder range() {
+		return new IntervalsRange.Builder();
+	}
+
+	/**
+	 * Creates a IntervalsQuery of the {@link IntervalsRange range}
+	 * {@code IntervalsQuery} variant.
+	 */
+	public static IntervalsQuery range(Function<IntervalsRange.Builder, ObjectBuilder<IntervalsRange>> fn) {
+		IntervalsQuery.Builder builder = new IntervalsQuery.Builder();
+		builder.range(fn.apply(new IntervalsRange.Builder()).build());
+		return builder.build();
+	}
+
+	/**
+	 * Creates a builder for the {@link IntervalsRegexp regexp}
+	 * {@code IntervalsQuery} variant.
+	 */
+	public static IntervalsRegexp.Builder regexp() {
+		return new IntervalsRegexp.Builder();
+	}
+
+	/**
+	 * Creates a IntervalsQuery of the {@link IntervalsRegexp regexp}
+	 * {@code IntervalsQuery} variant.
+	 */
+	public static IntervalsQuery regexp(Function<IntervalsRegexp.Builder, ObjectBuilder<IntervalsRegexp>> fn) {
+		IntervalsQuery.Builder builder = new IntervalsQuery.Builder();
+		builder.regexp(fn.apply(new IntervalsRegexp.Builder()).build());
+		return builder.build();
+	}
+
 	/**
 	 * Creates a builder for the {@link IntervalsWildcard wildcard}
 	 * {@code IntervalsQuery} variant.
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRange.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRange.java
new file mode 100644
index 000000000..66d6c5534
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRange.java
@@ -0,0 +1,348 @@
+/*
+ * 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._types.query_dsl;
+
+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.lang.String;
+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: _types.query_dsl.IntervalsRange
+
+/**
+ *
+ * @see <a href=
+ *      "../../doc-files/api-spec.html#_types.query_dsl.IntervalsRange">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class IntervalsRange implements IntervalsQueryVariant, IntervalsVariant, JsonpSerializable {
+	@Nullable
+	private final String analyzer;
+
+	@Nullable
+	private final String gte;
+
+	@Nullable
+	private final String gt;
+
+	@Nullable
+	private final String lte;
+
+	@Nullable
+	private final String lt;
+
+	@Nullable
+	private final String useField;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private IntervalsRange(Builder builder) {
+
+		this.analyzer = builder.analyzer;
+		this.gte = builder.gte;
+		this.gt = builder.gt;
+		this.lte = builder.lte;
+		this.lt = builder.lt;
+		this.useField = builder.useField;
+
+	}
+
+	public static IntervalsRange of(Function<Builder, ObjectBuilder<IntervalsRange>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * IntervalsQuery variant kind.
+	 */
+	@Override
+	public IntervalsQuery.Kind _intervalsQueryKind() {
+		return IntervalsQuery.Kind.Range;
+	}
+
+	/**
+	 * Intervals variant kind.
+	 */
+	@Override
+	public Intervals.Kind _intervalsKind() {
+		return Intervals.Kind.Range;
+	}
+
+	/**
+	 * Analyzer used to analyze the <code>prefix</code>.
+	 * <p>
+	 * API name: {@code analyzer}
+	 */
+	@Nullable
+	public final String analyzer() {
+		return this.analyzer;
+	}
+
+	/**
+	 * Lower term, either gte or gt must be provided.
+	 * <p>
+	 * API name: {@code gte}
+	 */
+	@Nullable
+	public final String gte() {
+		return this.gte;
+	}
+
+	/**
+	 * Lower term, either gte or gt must be provided.
+	 * <p>
+	 * API name: {@code gt}
+	 */
+	@Nullable
+	public final String gt() {
+		return this.gt;
+	}
+
+	/**
+	 * Upper term, either lte or lt must be provided.
+	 * <p>
+	 * API name: {@code lte}
+	 */
+	@Nullable
+	public final String lte() {
+		return this.lte;
+	}
+
+	/**
+	 * Upper term, either lte or lt must be provided.
+	 * <p>
+	 * API name: {@code lt}
+	 */
+	@Nullable
+	public final String lt() {
+		return this.lt;
+	}
+
+	/**
+	 * If specified, match intervals from this field rather than the top-level
+	 * field. The <code>prefix</code> is normalized using the search analyzer from
+	 * this field, unless <code>analyzer</code> is specified separately.
+	 * <p>
+	 * API name: {@code use_field}
+	 */
+	@Nullable
+	public final String useField() {
+		return this.useField;
+	}
+
+	/**
+	 * 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.analyzer != null) {
+			generator.writeKey("analyzer");
+			generator.write(this.analyzer);
+
+		}
+		if (this.gte != null) {
+			generator.writeKey("gte");
+			generator.write(this.gte);
+
+		}
+		if (this.gt != null) {
+			generator.writeKey("gt");
+			generator.write(this.gt);
+
+		}
+		if (this.lte != null) {
+			generator.writeKey("lte");
+			generator.write(this.lte);
+
+		}
+		if (this.lt != null) {
+			generator.writeKey("lt");
+			generator.write(this.lt);
+
+		}
+		if (this.useField != null) {
+			generator.writeKey("use_field");
+			generator.write(this.useField);
+
+		}
+
+	}
+
+	@Override
+	public String toString() {
+		return JsonpUtils.toString(this);
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link IntervalsRange}.
+	 */
+
+	public static class Builder extends WithJsonObjectBuilderBase<Builder> implements ObjectBuilder<IntervalsRange> {
+		@Nullable
+		private String analyzer;
+
+		@Nullable
+		private String gte;
+
+		@Nullable
+		private String gt;
+
+		@Nullable
+		private String lte;
+
+		@Nullable
+		private String lt;
+
+		@Nullable
+		private String useField;
+
+		/**
+		 * Analyzer used to analyze the <code>prefix</code>.
+		 * <p>
+		 * API name: {@code analyzer}
+		 */
+		public final Builder analyzer(@Nullable String value) {
+			this.analyzer = value;
+			return this;
+		}
+
+		/**
+		 * Lower term, either gte or gt must be provided.
+		 * <p>
+		 * API name: {@code gte}
+		 */
+		public final Builder gte(@Nullable String value) {
+			this.gte = value;
+			return this;
+		}
+
+		/**
+		 * Lower term, either gte or gt must be provided.
+		 * <p>
+		 * API name: {@code gt}
+		 */
+		public final Builder gt(@Nullable String value) {
+			this.gt = value;
+			return this;
+		}
+
+		/**
+		 * Upper term, either lte or lt must be provided.
+		 * <p>
+		 * API name: {@code lte}
+		 */
+		public final Builder lte(@Nullable String value) {
+			this.lte = value;
+			return this;
+		}
+
+		/**
+		 * Upper term, either lte or lt must be provided.
+		 * <p>
+		 * API name: {@code lt}
+		 */
+		public final Builder lt(@Nullable String value) {
+			this.lt = value;
+			return this;
+		}
+
+		/**
+		 * If specified, match intervals from this field rather than the top-level
+		 * field. The <code>prefix</code> is normalized using the search analyzer from
+		 * this field, unless <code>analyzer</code> is specified separately.
+		 * <p>
+		 * API name: {@code use_field}
+		 */
+		public final Builder useField(@Nullable String value) {
+			this.useField = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link IntervalsRange}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public IntervalsRange build() {
+			_checkSingleUse();
+
+			return new IntervalsRange(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link IntervalsRange}
+	 */
+	public static final JsonpDeserializer<IntervalsRange> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
+			IntervalsRange::setupIntervalsRangeDeserializer);
+
+	protected static void setupIntervalsRangeDeserializer(ObjectDeserializer<IntervalsRange.Builder> op) {
+
+		op.add(Builder::analyzer, JsonpDeserializer.stringDeserializer(), "analyzer");
+		op.add(Builder::gte, JsonpDeserializer.stringDeserializer(), "gte");
+		op.add(Builder::gt, JsonpDeserializer.stringDeserializer(), "gt");
+		op.add(Builder::lte, JsonpDeserializer.stringDeserializer(), "lte");
+		op.add(Builder::lt, JsonpDeserializer.stringDeserializer(), "lt");
+		op.add(Builder::useField, JsonpDeserializer.stringDeserializer(), "use_field");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRegexp.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRegexp.java
new file mode 100644
index 000000000..9b825b60b
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/IntervalsRegexp.java
@@ -0,0 +1,245 @@
+/*
+ * 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._types.query_dsl;
+
+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.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+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: _types.query_dsl.IntervalsRegexp
+
+/**
+ *
+ * @see <a href=
+ *      "../../doc-files/api-spec.html#_types.query_dsl.IntervalsRegexp">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class IntervalsRegexp implements IntervalsQueryVariant, IntervalsVariant, JsonpSerializable {
+	@Nullable
+	private final String analyzer;
+
+	private final String pattern;
+
+	@Nullable
+	private final String useField;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private IntervalsRegexp(Builder builder) {
+
+		this.analyzer = builder.analyzer;
+		this.pattern = ApiTypeHelper.requireNonNull(builder.pattern, this, "pattern");
+		this.useField = builder.useField;
+
+	}
+
+	public static IntervalsRegexp of(Function<Builder, ObjectBuilder<IntervalsRegexp>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * IntervalsQuery variant kind.
+	 */
+	@Override
+	public IntervalsQuery.Kind _intervalsQueryKind() {
+		return IntervalsQuery.Kind.Regexp;
+	}
+
+	/**
+	 * Intervals variant kind.
+	 */
+	@Override
+	public Intervals.Kind _intervalsKind() {
+		return Intervals.Kind.Regexp;
+	}
+
+	/**
+	 * Analyzer used to analyze the <code>prefix</code>.
+	 * <p>
+	 * API name: {@code analyzer}
+	 */
+	@Nullable
+	public final String analyzer() {
+		return this.analyzer;
+	}
+
+	/**
+	 * Required - Regex pattern.
+	 * <p>
+	 * API name: {@code pattern}
+	 */
+	public final String pattern() {
+		return this.pattern;
+	}
+
+	/**
+	 * If specified, match intervals from this field rather than the top-level
+	 * field. The <code>prefix</code> is normalized using the search analyzer from
+	 * this field, unless <code>analyzer</code> is specified separately.
+	 * <p>
+	 * API name: {@code use_field}
+	 */
+	@Nullable
+	public final String useField() {
+		return this.useField;
+	}
+
+	/**
+	 * 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.analyzer != null) {
+			generator.writeKey("analyzer");
+			generator.write(this.analyzer);
+
+		}
+		generator.writeKey("pattern");
+		generator.write(this.pattern);
+
+		if (this.useField != null) {
+			generator.writeKey("use_field");
+			generator.write(this.useField);
+
+		}
+
+	}
+
+	@Override
+	public String toString() {
+		return JsonpUtils.toString(this);
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link IntervalsRegexp}.
+	 */
+
+	public static class Builder extends WithJsonObjectBuilderBase<Builder> implements ObjectBuilder<IntervalsRegexp> {
+		@Nullable
+		private String analyzer;
+
+		private String pattern;
+
+		@Nullable
+		private String useField;
+
+		/**
+		 * Analyzer used to analyze the <code>prefix</code>.
+		 * <p>
+		 * API name: {@code analyzer}
+		 */
+		public final Builder analyzer(@Nullable String value) {
+			this.analyzer = value;
+			return this;
+		}
+
+		/**
+		 * Required - Regex pattern.
+		 * <p>
+		 * API name: {@code pattern}
+		 */
+		public final Builder pattern(String value) {
+			this.pattern = value;
+			return this;
+		}
+
+		/**
+		 * If specified, match intervals from this field rather than the top-level
+		 * field. The <code>prefix</code> is normalized using the search analyzer from
+		 * this field, unless <code>analyzer</code> is specified separately.
+		 * <p>
+		 * API name: {@code use_field}
+		 */
+		public final Builder useField(@Nullable String value) {
+			this.useField = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link IntervalsRegexp}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public IntervalsRegexp build() {
+			_checkSingleUse();
+
+			return new IntervalsRegexp(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link IntervalsRegexp}
+	 */
+	public static final JsonpDeserializer<IntervalsRegexp> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
+			IntervalsRegexp::setupIntervalsRegexpDeserializer);
+
+	protected static void setupIntervalsRegexpDeserializer(ObjectDeserializer<IntervalsRegexp.Builder> op) {
+
+		op.add(Builder::analyzer, JsonpDeserializer.stringDeserializer(), "analyzer");
+		op.add(Builder::pattern, JsonpDeserializer.stringDeserializer(), "pattern");
+		op.add(Builder::useField, JsonpDeserializer.stringDeserializer(), "use_field");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/RuleQuery.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/RuleQuery.java
index 655842172..b3080b2d0 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/RuleQuery.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_types/query_dsl/RuleQuery.java
@@ -62,6 +62,9 @@ public class RuleQuery extends QueryBase implements QueryVariant {
 
 	private final List<String> rulesetIds;
 
+	@Nullable
+	private final String rulesetId;
+
 	private final JsonData matchCriteria;
 
 	// ---------------------------------------------------------------------------------------------
@@ -70,7 +73,8 @@ private RuleQuery(Builder builder) {
 		super(builder);
 
 		this.organic = ApiTypeHelper.requireNonNull(builder.organic, this, "organic");
-		this.rulesetIds = ApiTypeHelper.unmodifiableRequired(builder.rulesetIds, this, "rulesetIds");
+		this.rulesetIds = ApiTypeHelper.unmodifiable(builder.rulesetIds);
+		this.rulesetId = builder.rulesetId;
 		this.matchCriteria = ApiTypeHelper.requireNonNull(builder.matchCriteria, this, "matchCriteria");
 
 	}
@@ -95,12 +99,20 @@ public final Query organic() {
 	}
 
 	/**
-	 * Required - API name: {@code ruleset_ids}
+	 * API name: {@code ruleset_ids}
 	 */
 	public final List<String> rulesetIds() {
 		return this.rulesetIds;
 	}
 
+	/**
+	 * API name: {@code ruleset_id}
+	 */
+	@Nullable
+	public final String rulesetId() {
+		return this.rulesetId;
+	}
+
 	/**
 	 * Required - API name: {@code match_criteria}
 	 */
@@ -123,6 +135,11 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
 			}
 			generator.writeEnd();
 
+		}
+		if (this.rulesetId != null) {
+			generator.writeKey("ruleset_id");
+			generator.write(this.rulesetId);
+
 		}
 		generator.writeKey("match_criteria");
 		this.matchCriteria.serialize(generator, mapper);
@@ -138,8 +155,12 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
 	public static class Builder extends QueryBase.AbstractBuilder<Builder> implements ObjectBuilder<RuleQuery> {
 		private Query organic;
 
+		@Nullable
 		private List<String> rulesetIds;
 
+		@Nullable
+		private String rulesetId;
+
 		private JsonData matchCriteria;
 
 		/**
@@ -166,7 +187,7 @@ public final Builder organic(QueryVariant value) {
 		}
 
 		/**
-		 * Required - API name: {@code ruleset_ids}
+		 * API name: {@code ruleset_ids}
 		 * <p>
 		 * Adds all elements of <code>list</code> to <code>rulesetIds</code>.
 		 */
@@ -176,7 +197,7 @@ public final Builder rulesetIds(List<String> list) {
 		}
 
 		/**
-		 * Required - API name: {@code ruleset_ids}
+		 * API name: {@code ruleset_ids}
 		 * <p>
 		 * Adds one or more values to <code>rulesetIds</code>.
 		 */
@@ -185,6 +206,14 @@ public final Builder rulesetIds(String value, String... values) {
 			return this;
 		}
 
+		/**
+		 * API name: {@code ruleset_id}
+		 */
+		public final Builder rulesetId(@Nullable String value) {
+			this.rulesetId = value;
+			return this;
+		}
+
 		/**
 		 * Required - API name: {@code match_criteria}
 		 */
@@ -224,6 +253,7 @@ protected static void setupRuleQueryDeserializer(ObjectDeserializer<RuleQuery.Bu
 		op.add(Builder::organic, Query._DESERIALIZER, "organic");
 		op.add(Builder::rulesetIds, JsonpDeserializer.arrayDeserializer(JsonpDeserializer.stringDeserializer()),
 				"ruleset_ids");
+		op.add(Builder::rulesetId, JsonpDeserializer.stringDeserializer(), "ruleset_id");
 		op.add(Builder::matchCriteria, JsonData._DESERIALIZER, "match_criteria");
 
 	}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterAsyncClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterAsyncClient.java
index fe451a66a..9ebad63fb 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterAsyncClient.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterAsyncClient.java
@@ -913,9 +913,7 @@ public CompletableFuture<PutClusterSettingsResponse> putSettings() {
 	 * currently an open connection to it. Elasticsearch does not spontaneously try
 	 * to reconnect to a disconnected remote cluster. To trigger a reconnection,
 	 * attempt a cross-cluster search, ES|QL cross-cluster search, or try the
-	 * <a href=
-	 * "https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-resolve-cluster">resolve
-	 * cluster endpoint</a>.
+	 * <code>/_resolve/cluster</code> endpoint.
 	 * </p>
 	 * </blockquote>
 	 *
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterClient.java
index 6d4c7dfb1..8ba73aec6 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterClient.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/ElasticsearchClusterClient.java
@@ -928,9 +928,7 @@ public PutClusterSettingsResponse putSettings() throws IOException, Elasticsearc
 	 * currently an open connection to it. Elasticsearch does not spontaneously try
 	 * to reconnect to a disconnected remote cluster. To trigger a reconnection,
 	 * attempt a cross-cluster search, ES|QL cross-cluster search, or try the
-	 * <a href=
-	 * "https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-resolve-cluster">resolve
-	 * cluster endpoint</a>.
+	 * <code>/_resolve/cluster</code> endpoint.
 	 * </p>
 	 * </blockquote>
 	 *
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/GetClusterSettingsResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/GetClusterSettingsResponse.java
index f2a895fad..9237a2d46 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/GetClusterSettingsResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/GetClusterSettingsResponse.java
@@ -82,20 +82,26 @@ public static GetClusterSettingsResponse of(Function<Builder, ObjectBuilder<GetC
 	}
 
 	/**
-	 * Required - API name: {@code persistent}
+	 * Required - The settings that persist after the cluster restarts.
+	 * <p>
+	 * API name: {@code persistent}
 	 */
 	public final Map<String, JsonData> persistent() {
 		return this.persistent;
 	}
 
 	/**
-	 * Required - API name: {@code transient}
+	 * Required - The settings that do not persist after the cluster restarts.
+	 * <p>
+	 * API name: {@code transient}
 	 */
 	public final Map<String, JsonData> transient_() {
 		return this.transient_;
 	}
 
 	/**
+	 * The default setting values.
+	 * <p>
 	 * API name: {@code defaults}
 	 */
 	public final Map<String, JsonData> defaults() {
@@ -171,7 +177,9 @@ public static class Builder extends WithJsonObjectBuilderBase<Builder>
 		private Map<String, JsonData> defaults;
 
 		/**
-		 * Required - API name: {@code persistent}
+		 * Required - The settings that persist after the cluster restarts.
+		 * <p>
+		 * API name: {@code persistent}
 		 * <p>
 		 * Adds all entries of <code>map</code> to <code>persistent</code>.
 		 */
@@ -181,7 +189,9 @@ public final Builder persistent(Map<String, JsonData> map) {
 		}
 
 		/**
-		 * Required - API name: {@code persistent}
+		 * Required - The settings that persist after the cluster restarts.
+		 * <p>
+		 * API name: {@code persistent}
 		 * <p>
 		 * Adds an entry to <code>persistent</code>.
 		 */
@@ -191,7 +201,9 @@ public final Builder persistent(String key, JsonData value) {
 		}
 
 		/**
-		 * Required - API name: {@code transient}
+		 * Required - The settings that do not persist after the cluster restarts.
+		 * <p>
+		 * API name: {@code transient}
 		 * <p>
 		 * Adds all entries of <code>map</code> to <code>transient_</code>.
 		 */
@@ -201,7 +213,9 @@ public final Builder transient_(Map<String, JsonData> map) {
 		}
 
 		/**
-		 * Required - API name: {@code transient}
+		 * Required - The settings that do not persist after the cluster restarts.
+		 * <p>
+		 * API name: {@code transient}
 		 * <p>
 		 * Adds an entry to <code>transient_</code>.
 		 */
@@ -211,6 +225,8 @@ public final Builder transient_(String key, JsonData value) {
 		}
 
 		/**
+		 * The default setting values.
+		 * <p>
 		 * API name: {@code defaults}
 		 * <p>
 		 * Adds all entries of <code>map</code> to <code>defaults</code>.
@@ -221,6 +237,8 @@ public final Builder defaults(Map<String, JsonData> map) {
 		}
 
 		/**
+		 * The default setting values.
+		 * <p>
 		 * API name: {@code defaults}
 		 * <p>
 		 * Adds an entry to <code>defaults</code>.
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/PutClusterSettingsRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/PutClusterSettingsRequest.java
index d1d0f6cfd..ca4bbfd12 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/PutClusterSettingsRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/PutClusterSettingsRequest.java
@@ -144,6 +144,8 @@ public final Time masterTimeout() {
 	}
 
 	/**
+	 * The settings that persist after the cluster restarts.
+	 * <p>
 	 * API name: {@code persistent}
 	 */
 	public final Map<String, JsonData> persistent() {
@@ -161,6 +163,8 @@ public final Time timeout() {
 	}
 
 	/**
+	 * The settings that do not persist after the cluster restarts.
+	 * <p>
 	 * API name: {@code transient}
 	 */
 	public final Map<String, JsonData> transient_() {
@@ -257,6 +261,8 @@ public final Builder masterTimeout(Function<Time.Builder, ObjectBuilder<Time>> f
 		}
 
 		/**
+		 * The settings that persist after the cluster restarts.
+		 * <p>
 		 * API name: {@code persistent}
 		 * <p>
 		 * Adds all entries of <code>map</code> to <code>persistent</code>.
@@ -267,6 +273,8 @@ public final Builder persistent(Map<String, JsonData> map) {
 		}
 
 		/**
+		 * The settings that persist after the cluster restarts.
+		 * <p>
 		 * API name: {@code persistent}
 		 * <p>
 		 * Adds an entry to <code>persistent</code>.
@@ -296,6 +304,8 @@ public final Builder timeout(Function<Time.Builder, ObjectBuilder<Time>> fn) {
 		}
 
 		/**
+		 * The settings that do not persist after the cluster restarts.
+		 * <p>
 		 * API name: {@code transient}
 		 * <p>
 		 * Adds all entries of <code>map</code> to <code>transient_</code>.
@@ -306,6 +316,8 @@ public final Builder transient_(Map<String, JsonData> map) {
 		}
 
 		/**
+		 * The settings that do not persist after the cluster restarts.
+		 * <p>
 		 * API name: {@code transient}
 		 * <p>
 		 * Adds an entry to <code>transient_</code>.
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/RemoteInfoRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/RemoteInfoRequest.java
index 53ce6e1f9..944b3eeab 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/RemoteInfoRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/cluster/RemoteInfoRequest.java
@@ -62,9 +62,7 @@
  * currently an open connection to it. Elasticsearch does not spontaneously try
  * to reconnect to a disconnected remote cluster. To trigger a reconnection,
  * attempt a cross-cluster search, ES|QL cross-cluster search, or try the
- * <a href=
- * "https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-resolve-cluster">resolve
- * cluster endpoint</a>.
+ * <code>/_resolve/cluster</code> endpoint.
  * </p>
  * </blockquote>
  *
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/OpenPointInTimeRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/OpenPointInTimeRequest.java
index e3e5bf978..07e9867e6 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/OpenPointInTimeRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/OpenPointInTimeRequest.java
@@ -190,9 +190,7 @@ public final Boolean allowPartialSearchResults() {
 	 * The type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. It supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -344,9 +342,7 @@ public final Builder allowPartialSearchResults(@Nullable Boolean value) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. It supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -361,9 +357,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. It supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchShardsRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchShardsRequest.java
index 7814cb784..d0dad28e8 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchShardsRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchShardsRequest.java
@@ -136,9 +136,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -265,9 +263,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -282,9 +278,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchTemplateRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchTemplateRequest.java
index 73c98d090..e81ffb20f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchTemplateRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/SearchTemplateRequest.java
@@ -169,9 +169,7 @@ public final Boolean ccsMinimizeRoundtrips() {
 	 * The type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -440,9 +438,7 @@ public final Builder ccsMinimizeRoundtrips(@Nullable Boolean value) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -457,9 +453,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/UpdateByQueryRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/UpdateByQueryRequest.java
index bd1ebd1a8..643cdc0b0 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/UpdateByQueryRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/UpdateByQueryRequest.java
@@ -440,9 +440,7 @@ public final String df() {
 	 * The type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. It supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -992,9 +990,7 @@ public final Builder df(@Nullable String value) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. It supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -1009,9 +1005,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * The type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. It supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html b/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html
index 7589c2939..feac24c90 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html
@@ -235,11 +235,11 @@
 '_global.search_mvt.Response': '_global/search_mvt/SearchMvtResponse.ts#L22-L25',
 '_global.search_mvt._types.GridAggregationType': '_global/search_mvt/_types/GridType.ts#L30-L33',
 '_global.search_mvt._types.GridType': '_global/search_mvt/_types/GridType.ts#L20-L28',
-'_global.search_shards.Request': '_global/search_shards/SearchShardsRequest.ts#L24-L100',
+'_global.search_shards.Request': '_global/search_shards/SearchShardsRequest.ts#L24-L99',
 '_global.search_shards.Response': '_global/search_shards/SearchShardsResponse.ts#L34-L40',
 '_global.search_shards.SearchShardsNodeAttributes': '_global/search_shards/SearchShardsResponse.ts#L42-L60',
 '_global.search_shards.ShardStoreIndex': '_global/search_shards/SearchShardsResponse.ts#L62-L65',
-'_global.search_template.Request': '_global/search_template/SearchTemplateRequest.ts#L32-L153',
+'_global.search_template.Request': '_global/search_template/SearchTemplateRequest.ts#L32-L152',
 '_global.search_template.Response': '_global/search_template/SearchTemplateResponse.ts#L30-L48',
 '_global.terms_enum.Request': '_global/terms_enum/TermsEnumRequest.ts#L26-L93',
 '_global.terms_enum.Response': '_global/terms_enum/TermsEnumResponse.ts#L22-L32',
@@ -253,7 +253,7 @@
 '_global.update.Request': '_global/update/UpdateRequest.ts#L38-L194',
 '_global.update.Response': '_global/update/UpdateResponse.ts#L27-L29',
 '_global.update.UpdateWriteResponseBase': '_global/update/UpdateResponse.ts#L23-L25',
-'_global.update_by_query.Request': '_global/update_by_query/UpdateByQueryRequest.ts#L37-L340',
+'_global.update_by_query.Request': '_global/update_by_query/UpdateByQueryRequest.ts#L37-L339',
 '_global.update_by_query.Response': '_global/update_by_query/UpdateByQueryResponse.ts#L26-L67',
 '_global.update_by_query_rethrottle.Request': '_global/update_by_query_rethrottle/UpdateByQueryRethrottleRequest.ts#L24-L56',
 '_global.update_by_query_rethrottle.Response': '_global/update_by_query_rethrottle/UpdateByQueryRethrottleResponse.ts#L23-L25',
@@ -303,12 +303,14 @@
 '_types.IndicesOptions': '_types/common.ts#L339-L366',
 '_types.IndicesResponseBase': '_types/Base.ts#L138-L140',
 '_types.InlineGet': '_types/common.ts#L324-L337',
+'_types.InnerRetriever': '_types/Retriever.ts#L82-L86',
 '_types.KnnQuery': '_types/Knn.ts#L64-L87',
-'_types.KnnRetriever': '_types/Retriever.ts#L64-L82',
+'_types.KnnRetriever': '_types/Retriever.ts#L111-L129',
 '_types.KnnSearch': '_types/Knn.ts#L35-L62',
 '_types.LatLonGeoLocation': '_types/Geo.ts#L120-L129',
 '_types.Level': '_types/common.ts#L253-L257',
 '_types.LifecycleOperationMode': '_types/Lifecycle.ts#L20-L24',
+'_types.LinearRetriever': '_types/Retriever.ts#L68-L72',
 '_types.MergesStats': '_types/Stats.ts#L164-L181',
 '_types.NestedSortValue': '_types/sort.ts#L29-L34',
 '_types.NodeAttributes': '_types/Node.ts#L41-L52',
@@ -317,10 +319,11 @@
 '_types.NodeStatistics': '_types/Node.ts#L28-L39',
 '_types.Normalization': '_types/Similarity.ts#L52-L58',
 '_types.OpType': '_types/common.ts#L259-L268',
+'_types.PinnedRetriever': '_types/Retriever.ts#L74-L80',
 '_types.PluginStats': '_types/Stats.ts#L183-L193',
 '_types.QueryCacheStats': '_types/Stats.ts#L195-L229',
 '_types.QueryVectorBuilder': '_types/Knn.ts#L89-L92',
-'_types.RRFRetriever': '_types/Retriever.ts#L84-L91',
+'_types.RRFRetriever': '_types/Retriever.ts#L131-L138',
 '_types.RankBase': '_types/Rank.ts#L30-L30',
 '_types.RankContainer': '_types/Rank.ts#L22-L28',
 '_types.RecoveryStats': '_types/Stats.ts#L231-L236',
@@ -330,12 +333,14 @@
 '_types.RequestBase': '_types/Base.ts#L34-L34',
 '_types.RequestCacheStats': '_types/Stats.ts#L247-L253',
 '_types.RescoreVector': '_types/Knn.ts#L30-L33',
+'_types.RescorerRetriever': '_types/Retriever.ts#L62-L66',
 '_types.Result': '_types/Result.ts#L20-L26',
 '_types.Retries': '_types/Retries.ts#L22-L31',
-'_types.RetrieverBase': '_types/Retriever.ts#L44-L49',
-'_types.RetrieverContainer': '_types/Retriever.ts#L28-L42',
+'_types.RetrieverBase': '_types/Retriever.ts#L53-L60',
+'_types.RetrieverContainer': '_types/Retriever.ts#L28-L51',
 '_types.RrfRank': '_types/Rank.ts#L32-L37',
-'_types.RuleRetriever': '_types/Retriever.ts#L106-L115',
+'_types.RuleRetriever': '_types/Retriever.ts#L153-L162',
+'_types.ScoreNormalizer': '_types/Retriever.ts#L88-L91',
 '_types.ScoreSort': '_types/sort.ts#L54-L56',
 '_types.Script': '_types/Scripting.ts#L75-L99',
 '_types.ScriptField': '_types/Scripting.ts#L101-L104',
@@ -356,13 +361,14 @@
 '_types.SortMode': '_types/sort.ts#L108-L117',
 '_types.SortOptions': '_types/sort.ts#L86-L96',
 '_types.SortOrder': '_types/sort.ts#L119-L128',
-'_types.StandardRetriever': '_types/Retriever.ts#L51-L62',
+'_types.SpecifiedDocument': '_types/Retriever.ts#L93-L96',
+'_types.StandardRetriever': '_types/Retriever.ts#L98-L109',
 '_types.StoreStats': '_types/Stats.ts#L371-L398',
 '_types.StoredScript': '_types/Scripting.ts#L47-L59',
 '_types.SuggestMode': '_types/common.ts#L286-L299',
 '_types.TaskFailure': '_types/Errors.ts#L67-L72',
 '_types.TextEmbedding': '_types/Knn.ts#L94-L97',
-'_types.TextSimilarityReranker': '_types/Retriever.ts#L93-L104',
+'_types.TextSimilarityReranker': '_types/Retriever.ts#L140-L151',
 '_types.ThreadType': '_types/common.ts#L301-L307',
 '_types.TimeUnit': '_types/Time.ts#L69-L77',
 '_types.TopLeftBottomRightGeoBounds': '_types/Geo.ts#L161-L164',
@@ -409,8 +415,8 @@
 '_types.aggregations.CardinalityAggregate': '_types/aggregations/Aggregate.ts#L140-L143',
 '_types.aggregations.CardinalityAggregation': '_types/aggregations/metric.ts#L87-L99',
 '_types.aggregations.CardinalityExecutionMode': '_types/aggregations/metric.ts#L64-L85',
-'_types.aggregations.CategorizeTextAggregation': '_types/aggregations/bucket.ts#L1117-L1182',
-'_types.aggregations.CategorizeTextAnalyzer': '_types/aggregations/bucket.ts#L1184-L1187',
+'_types.aggregations.CategorizeTextAggregation': '_types/aggregations/bucket.ts#L1117-L1183',
+'_types.aggregations.CategorizeTextAnalyzer': '_types/aggregations/bucket.ts#L1185-L1188',
 '_types.aggregations.ChiSquareHeuristic': '_types/aggregations/bucket.ts#L782-L791',
 '_types.aggregations.ChildrenAggregate': '_types/aggregations/Aggregate.ts#L888-L892',
 '_types.aggregations.ChildrenAggregation': '_types/aggregations/bucket.ts#L121-L126',
@@ -426,7 +432,7 @@
 '_types.aggregations.CumulativeCardinalityAggregate': '_types/aggregations/Aggregate.ts#L856-L864',
 '_types.aggregations.CumulativeCardinalityAggregation': '_types/aggregations/pipeline.ts#L206-L209',
 '_types.aggregations.CumulativeSumAggregation': '_types/aggregations/pipeline.ts#L211-L214',
-'_types.aggregations.CustomCategorizeTextAnalyzer': '_types/aggregations/bucket.ts#L1189-L1193',
+'_types.aggregations.CustomCategorizeTextAnalyzer': '_types/aggregations/bucket.ts#L1190-L1194',
 '_types.aggregations.DateHistogramAggregate': '_types/aggregations/Aggregate.ts#L383-L386',
 '_types.aggregations.DateHistogramAggregation': '_types/aggregations/bucket.ts#L202-L260',
 '_types.aggregations.DateHistogramBucket': '_types/aggregations/Aggregate.ts#L388-L391',
@@ -453,9 +459,9 @@
 '_types.aggregations.FormatMetricAggregationBase': '_types/aggregations/metric.ts#L47-L49',
 '_types.aggregations.FormattableMetricAggregation': '_types/aggregations/metric.ts#L51-L53',
 '_types.aggregations.FrequentItemSetsAggregate': '_types/aggregations/Aggregate.ts#L722-L723',
-'_types.aggregations.FrequentItemSetsAggregation': '_types/aggregations/bucket.ts#L1240-L1267',
+'_types.aggregations.FrequentItemSetsAggregation': '_types/aggregations/bucket.ts#L1241-L1268',
 '_types.aggregations.FrequentItemSetsBucket': '_types/aggregations/Aggregate.ts#L725-L728',
-'_types.aggregations.FrequentItemSetsField': '_types/aggregations/bucket.ts#L1226-L1238',
+'_types.aggregations.FrequentItemSetsField': '_types/aggregations/bucket.ts#L1227-L1239',
 '_types.aggregations.GapPolicy': '_types/aggregations/pipeline.ts#L61-L76',
 '_types.aggregations.GeoBoundsAggregate': '_types/aggregations/Aggregate.ts#L327-L333',
 '_types.aggregations.GeoBoundsAggregation': '_types/aggregations/metric.ts#L108-L117',
@@ -497,7 +503,7 @@
 '_types.aggregations.InferenceFeatureImportance': '_types/aggregations/Aggregate.ts#L778-L782',
 '_types.aggregations.InferenceTopClassEntry': '_types/aggregations/Aggregate.ts#L772-L776',
 '_types.aggregations.IpPrefixAggregate': '_types/aggregations/Aggregate.ts#L709-L713',
-'_types.aggregations.IpPrefixAggregation': '_types/aggregations/bucket.ts#L1195-L1224',
+'_types.aggregations.IpPrefixAggregation': '_types/aggregations/bucket.ts#L1196-L1225',
 '_types.aggregations.IpPrefixBucket': '_types/aggregations/Aggregate.ts#L715-L720',
 '_types.aggregations.IpRangeAggregate': '_types/aggregations/Aggregate.ts#L624-L629',
 '_types.aggregations.IpRangeAggregation': '_types/aggregations/bucket.ts#L567-L576',
@@ -937,23 +943,25 @@
 '_types.query_dsl.IdsQuery': '_types/query_dsl/term.ts#L88-L96',
 '_types.query_dsl.IntervalsAllOf': '_types/query_dsl/fulltext.ts#L50-L70',
 '_types.query_dsl.IntervalsAnyOf': '_types/query_dsl/fulltext.ts#L72-L81',
-'_types.query_dsl.IntervalsContainer': '_types/query_dsl/fulltext.ts#L83-L110',
-'_types.query_dsl.IntervalsFilter': '_types/query_dsl/fulltext.ts#L112-L152',
-'_types.query_dsl.IntervalsFuzzy': '_types/query_dsl/fulltext.ts#L154-L184',
-'_types.query_dsl.IntervalsMatch': '_types/query_dsl/fulltext.ts#L186-L216',
-'_types.query_dsl.IntervalsPrefix': '_types/query_dsl/fulltext.ts#L218-L233',
-'_types.query_dsl.IntervalsQuery': '_types/query_dsl/fulltext.ts#L235-L266',
-'_types.query_dsl.IntervalsWildcard': '_types/query_dsl/fulltext.ts#L268-L283',
+'_types.query_dsl.IntervalsContainer': '_types/query_dsl/fulltext.ts#L83-L112',
+'_types.query_dsl.IntervalsFilter': '_types/query_dsl/fulltext.ts#L114-L154',
+'_types.query_dsl.IntervalsFuzzy': '_types/query_dsl/fulltext.ts#L156-L186',
+'_types.query_dsl.IntervalsMatch': '_types/query_dsl/fulltext.ts#L188-L218',
+'_types.query_dsl.IntervalsPrefix': '_types/query_dsl/fulltext.ts#L220-L235',
+'_types.query_dsl.IntervalsQuery': '_types/query_dsl/fulltext.ts#L283-L317',
+'_types.query_dsl.IntervalsRange': '_types/query_dsl/fulltext.ts#L237-L264',
+'_types.query_dsl.IntervalsRegexp': '_types/query_dsl/fulltext.ts#L266-L281',
+'_types.query_dsl.IntervalsWildcard': '_types/query_dsl/fulltext.ts#L319-L334',
 '_types.query_dsl.Like': '_types/query_dsl/specialized.ts#L198-L203',
 '_types.query_dsl.LikeDocument': '_types/query_dsl/specialized.ts#L174-L196',
 '_types.query_dsl.MatchAllQuery': '_types/query_dsl/MatchAllQuery.ts#L22-L25',
-'_types.query_dsl.MatchBoolPrefixQuery': '_types/query_dsl/fulltext.ts#L355-L412',
+'_types.query_dsl.MatchBoolPrefixQuery': '_types/query_dsl/fulltext.ts#L406-L463',
 '_types.query_dsl.MatchNoneQuery': '_types/query_dsl/MatchNoneQuery.ts#L22-L25',
-'_types.query_dsl.MatchPhrasePrefixQuery': '_types/query_dsl/fulltext.ts#L440-L469',
-'_types.query_dsl.MatchPhraseQuery': '_types/query_dsl/fulltext.ts#L414-L438',
-'_types.query_dsl.MatchQuery': '_types/query_dsl/fulltext.ts#L285-L353',
+'_types.query_dsl.MatchPhrasePrefixQuery': '_types/query_dsl/fulltext.ts#L491-L520',
+'_types.query_dsl.MatchPhraseQuery': '_types/query_dsl/fulltext.ts#L465-L489',
+'_types.query_dsl.MatchQuery': '_types/query_dsl/fulltext.ts#L336-L404',
 '_types.query_dsl.MoreLikeThisQuery': '_types/query_dsl/specialized.ts#L87-L172',
-'_types.query_dsl.MultiMatchQuery': '_types/query_dsl/fulltext.ts#L471-L557',
+'_types.query_dsl.MultiMatchQuery': '_types/query_dsl/fulltext.ts#L522-L608',
 '_types.query_dsl.MultiValueMode': '_types/query_dsl/compound.ts#L368-L385',
 '_types.query_dsl.NestedQuery': '_types/query_dsl/joining.ts#L112-L139',
 '_types.query_dsl.NumberRangeQuery': '_types/query_dsl/term.ts#L172-L172',
@@ -966,7 +974,7 @@
 '_types.query_dsl.PrefixQuery': '_types/query_dsl/term.ts#L98-L120',
 '_types.query_dsl.QueryBase': '_types/query_dsl/abstractions.ts#L459-L470',
 '_types.query_dsl.QueryContainer': '_types/query_dsl/abstractions.ts#L103-L434',
-'_types.query_dsl.QueryStringQuery': '_types/query_dsl/fulltext.ts#L598-L721',
+'_types.query_dsl.QueryStringQuery': '_types/query_dsl/fulltext.ts#L649-L772',
 '_types.query_dsl.RandomScoreFunction': '_types/query_dsl/compound.ts#L144-L147',
 '_types.query_dsl.RangeQuery': '_types/query_dsl/term.ts#L176-L186',
 '_types.query_dsl.RangeQueryBase': '_types/query_dsl/term.ts#L122-L148',
@@ -978,15 +986,15 @@
 '_types.query_dsl.RankFeatureFunctionSigmoid': '_types/query_dsl/specialized.ts#L298-L307',
 '_types.query_dsl.RankFeatureQuery': '_types/query_dsl/specialized.ts#L309-L335',
 '_types.query_dsl.RegexpQuery': '_types/query_dsl/term.ts#L203-L236',
-'_types.query_dsl.RuleQuery': '_types/query_dsl/specialized.ts#L398-L405',
+'_types.query_dsl.RuleQuery': '_types/query_dsl/specialized.ts#L398-L406',
 '_types.query_dsl.ScriptQuery': '_types/query_dsl/specialized.ts#L337-L346',
 '_types.query_dsl.ScriptScoreFunction': '_types/query_dsl/compound.ts#L137-L142',
 '_types.query_dsl.ScriptScoreQuery': '_types/query_dsl/specialized.ts#L348-L365',
 '_types.query_dsl.SemanticQuery': '_types/query_dsl/SemanticQuery.ts#L22-L30',
 '_types.query_dsl.ShapeFieldQuery': '_types/query_dsl/specialized.ts#L383-L396',
 '_types.query_dsl.ShapeQuery': '_types/query_dsl/specialized.ts#L367-L381',
-'_types.query_dsl.SimpleQueryStringFlag': '_types/query_dsl/fulltext.ts#L729-L784',
-'_types.query_dsl.SimpleQueryStringQuery': '_types/query_dsl/fulltext.ts#L786-L854',
+'_types.query_dsl.SimpleQueryStringFlag': '_types/query_dsl/fulltext.ts#L780-L835',
+'_types.query_dsl.SimpleQueryStringQuery': '_types/query_dsl/fulltext.ts#L837-L905',
 '_types.query_dsl.SpanContainingQuery': '_types/query_dsl/span.ts#L25-L39',
 '_types.query_dsl.SpanFieldMaskingQuery': '_types/query_dsl/span.ts#L41-L47',
 '_types.query_dsl.SpanFirstQuery': '_types/query_dsl/span.ts#L49-L61',
@@ -1005,7 +1013,7 @@
 '_types.query_dsl.TermsQueryField': '_types/query_dsl/term.ts#L265-L268',
 '_types.query_dsl.TermsSetQuery': '_types/query_dsl/term.ts#L277-L299',
 '_types.query_dsl.TextExpansionQuery': '_types/query_dsl/TextExpansionQuery.ts#L23-L36',
-'_types.query_dsl.TextQueryType': '_types/query_dsl/fulltext.ts#L559-L585',
+'_types.query_dsl.TextQueryType': '_types/query_dsl/fulltext.ts#L610-L636',
 '_types.query_dsl.TokenPruningConfig': '_types/query_dsl/TokenPruningConfig.ts#L22-L35',
 '_types.query_dsl.TypeQuery': '_types/query_dsl/term.ts#L301-L303',
 '_types.query_dsl.UntypedDecayFunction': '_types/query_dsl/compound.ts#L204-L207',
@@ -1014,7 +1022,7 @@
 '_types.query_dsl.WeightedTokensQuery': '_types/query_dsl/WeightedTokensQuery.ts#L25-L33',
 '_types.query_dsl.WildcardQuery': '_types/query_dsl/term.ts#L305-L325',
 '_types.query_dsl.WrapperQuery': '_types/query_dsl/abstractions.ts#L508-L517',
-'_types.query_dsl.ZeroTermsQuery': '_types/query_dsl/fulltext.ts#L587-L596',
+'_types.query_dsl.ZeroTermsQuery': '_types/query_dsl/fulltext.ts#L638-L647',
 'async_search._types.AsyncSearch': 'async_search/_types/AsyncSearch.ts#L30-L56',
 'async_search._types.AsyncSearchDocumentResponseBase': 'async_search/_types/AsyncSearchResponseBase.ts#L52-L56',
 'async_search._types.AsyncSearchResponseBase': 'async_search/_types/AsyncSearchResponseBase.ts#L24-L51',
@@ -1185,8 +1193,8 @@
 'cluster.exists_component_template.Request': 'cluster/exists_component_template/ClusterComponentTemplateExistsRequest.ts#L24-L62',
 'cluster.get_component_template.Request': 'cluster/get_component_template/ClusterGetComponentTemplateRequest.ts#L24-L77',
 'cluster.get_component_template.Response': 'cluster/get_component_template/ClusterGetComponentTemplateResponse.ts#L22-L24',
-'cluster.get_settings.Request': 'cluster/get_settings/ClusterGetSettingsRequest.ts#L23-L63',
-'cluster.get_settings.Response': 'cluster/get_settings/ClusterGetSettingsResponse.ts#L23-L29',
+'cluster.get_settings.Request': 'cluster/get_settings/ClusterGetSettingsRequest.ts#L23-L64',
+'cluster.get_settings.Response': 'cluster/get_settings/ClusterGetSettingsResponse.ts#L23-L32',
 'cluster.health.HealthResponseBody': 'cluster/health/ClusterHealthResponse.ts#L39-L76',
 'cluster.health.IndexHealthStats': 'cluster/health/types.ts#L24-L35',
 'cluster.health.Request': 'cluster/health/ClusterHealthRequest.ts#L32-L117',
@@ -1200,7 +1208,7 @@
 'cluster.post_voting_config_exclusions.Request': 'cluster/post_voting_config_exclusions/ClusterPostVotingConfigExclusionsRequest.ts#L24-L80',
 'cluster.put_component_template.Request': 'cluster/put_component_template/ClusterPutComponentTemplateRequest.ts#L25-L105',
 'cluster.put_component_template.Response': 'cluster/put_component_template/ClusterPutComponentTemplateResponse.ts#L22-L24',
-'cluster.put_settings.Request': 'cluster/put_settings/ClusterPutSettingsRequest.ts#L25-L67',
+'cluster.put_settings.Request': 'cluster/put_settings/ClusterPutSettingsRequest.ts#L25-L70',
 'cluster.put_settings.Response': 'cluster/put_settings/ClusterPutSettingsResponse.ts#L23-L29',
 'cluster.remote_info.ClusterRemoteInfo': 'cluster/remote_info/ClusterRemoteInfoResponse.ts#L29-L30',
 'cluster.remote_info.ClusterRemoteProxyInfo': 'cluster/remote_info/ClusterRemoteInfoResponse.ts#L58-L83',
@@ -1397,7 +1405,7 @@
 'features.get_features.Response': 'features/get_features/GetFeaturesResponse.ts#L22-L26',
 'features.reset_features.Request': 'features/reset_features/ResetFeaturesRequest.ts#L23-L60',
 'features.reset_features.Response': 'features/reset_features/ResetFeaturesResponse.ts#L22-L26',
-'fleet.search.Request': 'fleet/search/SearchRequest.ts#L55-L267',
+'fleet.search.Request': 'fleet/search/SearchRequest.ts#L55-L268',
 'fleet.search.Response': 'fleet/search/SearchResponse.ts#L33-L50',
 'graph._types.Connection': 'graph/_types/Connection.ts#L22-L27',
 'graph._types.ExploreControls': 'graph/_types/ExploreControls.ts#L24-L49',
@@ -1547,13 +1555,13 @@
 'indices.analyze.TokenDetail': 'indices/analyze/types.ts#L71-L74',
 'indices.cancel_migrate_reindex.Request': 'indices/cancel_migrate_reindex/MigrateCancelReindexRequest.ts#L23-L38',
 'indices.cancel_migrate_reindex.Response': 'indices/cancel_migrate_reindex/MigrateCancelReindexResponse.ts#L22-L24',
-'indices.clear_cache.Request': 'indices/clear_cache/IndicesClearCacheRequest.ts#L23-L100',
+'indices.clear_cache.Request': 'indices/clear_cache/IndicesClearCacheRequest.ts#L23-L99',
 'indices.clear_cache.Response': 'indices/clear_cache/IndicesClearCacheResponse.ts#L22-L24',
 'indices.clone.Request': 'indices/clone/IndicesCloneRequest.ts#L27-L127',
 'indices.clone.Response': 'indices/clone/IndicesCloneResponse.ts#L22-L28',
 'indices.close.CloseIndexResult': 'indices/close/CloseIndexResponse.ts#L32-L35',
 'indices.close.CloseShardResult': 'indices/close/CloseIndexResponse.ts#L37-L39',
-'indices.close.Request': 'indices/close/CloseIndexRequest.ts#L24-L101',
+'indices.close.Request': 'indices/close/CloseIndexRequest.ts#L24-L100',
 'indices.close.Response': 'indices/close/CloseIndexResponse.ts#L24-L30',
 'indices.create.Request': 'indices/create/IndicesCreateRequest.ts#L28-L108',
 'indices.create.Response': 'indices/create/IndicesCreateResponse.ts#L22-L28',
@@ -1565,11 +1573,11 @@
 'indices.data_streams_stats.DataStreamsStatsItem': 'indices/data_streams_stats/IndicesDataStreamsStatsResponse.ts#L45-L65',
 'indices.data_streams_stats.Request': 'indices/data_streams_stats/IndicesDataStreamsStatsRequest.ts#L23-L61',
 'indices.data_streams_stats.Response': 'indices/data_streams_stats/IndicesDataStreamsStatsResponse.ts#L25-L43',
-'indices.delete.Request': 'indices/delete/IndicesDeleteRequest.ts#L24-L87',
+'indices.delete.Request': 'indices/delete/IndicesDeleteRequest.ts#L24-L86',
 'indices.delete.Response': 'indices/delete/IndicesDeleteResponse.ts#L22-L24',
 'indices.delete_alias.Request': 'indices/delete_alias/IndicesDeleteAliasRequest.ts#L24-L70',
 'indices.delete_alias.Response': 'indices/delete_alias/IndicesDeleteAliasResponse.ts#L22-L24',
-'indices.delete_data_lifecycle.Request': 'indices/delete_data_lifecycle/IndicesDeleteDataLifecycleRequest.ts#L24-L47',
+'indices.delete_data_lifecycle.Request': 'indices/delete_data_lifecycle/IndicesDeleteDataLifecycleRequest.ts#L24-L48',
 'indices.delete_data_lifecycle.Response': 'indices/delete_data_lifecycle/IndicesDeleteDataLifecycleResponse.ts#L22-L24',
 'indices.delete_data_stream.Request': 'indices/delete_data_stream/IndicesDeleteDataStreamRequest.ts#L24-L59',
 'indices.delete_data_stream.Response': 'indices/delete_data_stream/IndicesDeleteDataStreamResponse.ts#L22-L24',
@@ -1581,12 +1589,12 @@
 'indices.disk_usage.Response': 'indices/disk_usage/IndicesDiskUsageResponse.ts#L22-L25',
 'indices.downsample.Request': 'indices/downsample/Request.ts#L24-L58',
 'indices.downsample.Response': 'indices/downsample/Response.ts#L22-L25',
-'indices.exists.Request': 'indices/exists/IndicesExistsRequest.ts#L23-L80',
-'indices.exists_alias.Request': 'indices/exists_alias/IndicesExistsAliasRequest.ts#L23-L81',
+'indices.exists.Request': 'indices/exists/IndicesExistsRequest.ts#L23-L79',
+'indices.exists_alias.Request': 'indices/exists_alias/IndicesExistsAliasRequest.ts#L23-L80',
 'indices.exists_index_template.Request': 'indices/exists_index_template/IndicesExistsIndexTemplateRequest.ts#L24-L61',
 'indices.exists_template.Request': 'indices/exists_template/IndicesExistsTemplateRequest.ts#L24-L69',
 'indices.explain_data_lifecycle.DataStreamLifecycleExplain': 'indices/explain_data_lifecycle/IndicesExplainDataLifecycleResponse.ts#L31-L41',
-'indices.explain_data_lifecycle.Request': 'indices/explain_data_lifecycle/IndicesExplainDataLifecycleRequest.ts#L24-L47',
+'indices.explain_data_lifecycle.Request': 'indices/explain_data_lifecycle/IndicesExplainDataLifecycleRequest.ts#L24-L48',
 'indices.explain_data_lifecycle.Response': 'indices/explain_data_lifecycle/IndicesExplainDataLifecycleResponse.ts#L25-L29',
 'indices.field_usage_stats.FieldSummary': 'indices/field_usage_stats/IndicesFieldUsageStatsResponse.ts#L57-L66',
 'indices.field_usage_stats.FieldsUsageBody': 'indices/field_usage_stats/IndicesFieldUsageStatsResponse.ts#L32-L39',
@@ -1596,7 +1604,7 @@
 'indices.field_usage_stats.ShardsStats': 'indices/field_usage_stats/IndicesFieldUsageStatsResponse.ts#L52-L55',
 'indices.field_usage_stats.UsageStatsIndex': 'indices/field_usage_stats/IndicesFieldUsageStatsResponse.ts#L41-L43',
 'indices.field_usage_stats.UsageStatsShards': 'indices/field_usage_stats/IndicesFieldUsageStatsResponse.ts#L45-L50',
-'indices.flush.Request': 'indices/flush/IndicesFlushRequest.ts#L23-L92',
+'indices.flush.Request': 'indices/flush/IndicesFlushRequest.ts#L23-L91',
 'indices.flush.Response': 'indices/flush/IndicesFlushResponse.ts#L22-L24',
 'indices.forcemerge.Request': 'indices/forcemerge/IndicesForceMergeRequest.ts#L24-L108',
 'indices.forcemerge.Response': 'indices/forcemerge/IndicesForceMergeResponse.ts#L22-L24',
@@ -1605,24 +1613,24 @@
 'indices.get.Request': 'indices/get/IndicesGetRequest.ts#L24-L96',
 'indices.get.Response': 'indices/get/IndicesGetResponse.ts#L24-L27',
 'indices.get_alias.IndexAliases': 'indices/get_alias/IndicesGetAliasResponse.ts#L37-L39',
-'indices.get_alias.Request': 'indices/get_alias/IndicesGetAliasRequest.ts#L23-L92',
+'indices.get_alias.Request': 'indices/get_alias/IndicesGetAliasRequest.ts#L23-L91',
 'indices.get_alias.Response': 'indices/get_alias/IndicesGetAliasResponse.ts#L26-L35',
 'indices.get_data_lifecycle.DataStreamWithLifecycle': 'indices/get_data_lifecycle/IndicesGetDataLifecycleResponse.ts#L27-L30',
 'indices.get_data_lifecycle.Request': 'indices/get_data_lifecycle/IndicesGetDataLifecycleRequest.ts#L24-L68',
 'indices.get_data_lifecycle.Response': 'indices/get_data_lifecycle/IndicesGetDataLifecycleResponse.ts#L23-L25',
 'indices.get_data_lifecycle_stats.DataStreamStats': 'indices/get_data_lifecycle_stats/IndicesGetDataLifecycleStatsResponse.ts#L46-L59',
-'indices.get_data_lifecycle_stats.Request': 'indices/get_data_lifecycle_stats/IndicesGetDataLifecycleStatsRequest.ts#L22-L38',
+'indices.get_data_lifecycle_stats.Request': 'indices/get_data_lifecycle_stats/IndicesGetDataLifecycleStatsRequest.ts#L22-L39',
 'indices.get_data_lifecycle_stats.Response': 'indices/get_data_lifecycle_stats/IndicesGetDataLifecycleStatsResponse.ts#L24-L44',
 'indices.get_data_stream.Request': 'indices/get_data_stream/IndicesGetDataStreamRequest.ts#L24-L78',
 'indices.get_data_stream.Response': 'indices/get_data_stream/IndicesGetDataStreamResponse.ts#L22-L24',
-'indices.get_field_mapping.Request': 'indices/get_field_mapping/IndicesGetFieldMappingRequest.ts#L23-L89',
+'indices.get_field_mapping.Request': 'indices/get_field_mapping/IndicesGetFieldMappingRequest.ts#L23-L88',
 'indices.get_field_mapping.Response': 'indices/get_field_mapping/IndicesGetFieldMappingResponse.ts#L24-L27',
 'indices.get_field_mapping.TypeFieldMappings': 'indices/get_field_mapping/types.ts#L24-L26',
 'indices.get_index_template.IndexTemplateItem': 'indices/get_index_template/IndicesGetIndexTemplateResponse.ts#L29-L32',
 'indices.get_index_template.Request': 'indices/get_index_template/IndicesGetIndexTemplateRequest.ts#L24-L72',
 'indices.get_index_template.Response': 'indices/get_index_template/IndicesGetIndexTemplateResponse.ts#L23-L27',
 'indices.get_mapping.IndexMappingRecord': 'indices/get_mapping/IndicesGetMappingResponse.ts#L29-L32',
-'indices.get_mapping.Request': 'indices/get_mapping/IndicesGetMappingRequest.ts#L24-L85',
+'indices.get_mapping.Request': 'indices/get_mapping/IndicesGetMappingRequest.ts#L24-L84',
 'indices.get_mapping.Response': 'indices/get_mapping/IndicesGetMappingResponse.ts#L24-L27',
 'indices.get_migrate_reindex_status.Request': 'indices/get_migrate_reindex_status/MigrateGetReindexStatusRequest.ts#L23-L38',
 'indices.get_migrate_reindex_status.Response': 'indices/get_migrate_reindex_status/MigrateGetReindexStatusResponse.ts#L23-L36',
@@ -1643,7 +1651,7 @@
 'indices.modify_data_stream.IndexAndDataStreamAction': 'indices/modify_data_stream/types.ts#L39-L44',
 'indices.modify_data_stream.Request': 'indices/modify_data_stream/IndicesModifyDataStreamRequest.ts#L23-L45',
 'indices.modify_data_stream.Response': 'indices/modify_data_stream/IndicesModifyDataStreamResponse.ts#L22-L24',
-'indices.open.Request': 'indices/open/IndicesOpenRequest.ts#L24-L111',
+'indices.open.Request': 'indices/open/IndicesOpenRequest.ts#L24-L110',
 'indices.open.Response': 'indices/open/IndicesOpenResponse.ts#L20-L25',
 'indices.promote_data_stream.Request': 'indices/promote_data_stream/IndicesPromoteDataStreamRequest.ts#L24-L58',
 'indices.promote_data_stream.Response': 'indices/promote_data_stream/IndicesPromoteDataStreamResponse.ts#L22-L25',
@@ -1654,9 +1662,9 @@
 'indices.put_index_template.IndexTemplateMapping': 'indices/put_index_template/IndicesPutIndexTemplateRequest.ts#L159-L181',
 'indices.put_index_template.Request': 'indices/put_index_template/IndicesPutIndexTemplateRequest.ts#L37-L157',
 'indices.put_index_template.Response': 'indices/put_index_template/IndicesPutIndexTemplateResponse.ts#L22-L24',
-'indices.put_mapping.Request': 'indices/put_mapping/IndicesPutMappingRequest.ts#L41-L181',
+'indices.put_mapping.Request': 'indices/put_mapping/IndicesPutMappingRequest.ts#L41-L180',
 'indices.put_mapping.Response': 'indices/put_mapping/IndicesPutMappingResponse.ts#L22-L24',
-'indices.put_settings.Request': 'indices/put_settings/IndicesPutSettingsRequest.ts#L25-L125',
+'indices.put_settings.Request': 'indices/put_settings/IndicesPutSettingsRequest.ts#L25-L162',
 'indices.put_settings.Response': 'indices/put_settings/IndicesPutSettingsResponse.ts#L22-L24',
 'indices.put_template.Request': 'indices/put_template/IndicesPutTemplateRequest.ts#L29-L125',
 'indices.put_template.Response': 'indices/put_template/IndicesPutTemplateResponse.ts#L22-L24',
@@ -1672,16 +1680,16 @@
 'indices.recovery.ShardRecovery': 'indices/recovery/types.ts#L118-L135',
 'indices.recovery.TranslogStatus': 'indices/recovery/types.ts#L102-L109',
 'indices.recovery.VerifyIndex': 'indices/recovery/types.ts#L111-L116',
-'indices.refresh.Request': 'indices/refresh/IndicesRefreshRequest.ts#L23-L84',
+'indices.refresh.Request': 'indices/refresh/IndicesRefreshRequest.ts#L23-L83',
 'indices.refresh.Response': 'indices/refresh/IndicesRefreshResponse.ts#L22-L24',
 'indices.reload_search_analyzers.ReloadDetails': 'indices/reload_search_analyzers/types.ts#L27-L31',
 'indices.reload_search_analyzers.ReloadResult': 'indices/reload_search_analyzers/types.ts#L22-L25',
 'indices.reload_search_analyzers.Request': 'indices/reload_search_analyzers/ReloadSearchAnalyzersRequest.ts#L23-L63',
 'indices.reload_search_analyzers.Response': 'indices/reload_search_analyzers/ReloadSearchAnalyzersResponse.ts#L22-L24',
-'indices.resolve_cluster.Request': 'indices/resolve_cluster/ResolveClusterRequest.ts#L24-L144',
+'indices.resolve_cluster.Request': 'indices/resolve_cluster/ResolveClusterRequest.ts#L24-L143',
 'indices.resolve_cluster.ResolveClusterInfo': 'indices/resolve_cluster/ResolveClusterResponse.ts#L29-L55',
 'indices.resolve_cluster.Response': 'indices/resolve_cluster/ResolveClusterResponse.ts#L24-L27',
-'indices.resolve_index.Request': 'indices/resolve_index/ResolveIndexRequest.ts#L23-L69',
+'indices.resolve_index.Request': 'indices/resolve_index/ResolveIndexRequest.ts#L23-L68',
 'indices.resolve_index.ResolveIndexAliasItem': 'indices/resolve_index/ResolveIndexResponse.ts#L37-L40',
 'indices.resolve_index.ResolveIndexDataStreamsItem': 'indices/resolve_index/ResolveIndexResponse.ts#L42-L46',
 'indices.resolve_index.ResolveIndexItem': 'indices/resolve_index/ResolveIndexResponse.ts#L30-L35',
@@ -1690,7 +1698,7 @@
 'indices.rollover.Response': 'indices/rollover/IndicesRolloverResponse.ts#L22-L32',
 'indices.rollover.RolloverConditions': 'indices/rollover/types.ts#L24-L40',
 'indices.segments.IndexSegment': 'indices/segments/types.ts#L24-L26',
-'indices.segments.Request': 'indices/segments/IndicesSegmentsRequest.ts#L23-L78',
+'indices.segments.Request': 'indices/segments/IndicesSegmentsRequest.ts#L23-L77',
 'indices.segments.Response': 'indices/segments/IndicesSegmentsResponse.ts#L24-L29',
 'indices.segments.Segment': 'indices/segments/types.ts#L28-L38',
 'indices.segments.ShardSegmentRouting': 'indices/segments/types.ts#L40-L44',
@@ -1740,104 +1748,134 @@
 'indices.update_aliases.Request': 'indices/update_aliases/IndicesUpdateAliasesRequest.ts#L24-L59',
 'indices.update_aliases.Response': 'indices/update_aliases/IndicesUpdateAliasesResponse.ts#L22-L24',
 'indices.validate_query.IndicesValidationExplanation': 'indices/validate_query/IndicesValidateQueryResponse.ts#L32-L37',
-'indices.validate_query.Request': 'indices/validate_query/IndicesValidateQueryRequest.ts#L25-L123',
+'indices.validate_query.Request': 'indices/validate_query/IndicesValidateQueryRequest.ts#L25-L122',
 'indices.validate_query.Response': 'indices/validate_query/IndicesValidateQueryResponse.ts#L23-L30',
-'inference._types.AdaptiveAllocations': 'inference/_types/CommonTypes.ts#L62-L79',
-'inference._types.AlibabaCloudServiceSettings': 'inference/_types/CommonTypes.ts#L221-L266',
-'inference._types.AlibabaCloudServiceType': 'inference/_types/CommonTypes.ts#L291-L293',
-'inference._types.AlibabaCloudTaskSettings': 'inference/_types/CommonTypes.ts#L268-L282',
-'inference._types.AlibabaCloudTaskType': 'inference/_types/CommonTypes.ts#L284-L289',
-'inference._types.AmazonBedrockServiceSettings': 'inference/_types/CommonTypes.ts#L295-L337',
-'inference._types.AmazonBedrockServiceType': 'inference/_types/CommonTypes.ts#L370-L372',
-'inference._types.AmazonBedrockTaskSettings': 'inference/_types/CommonTypes.ts#L339-L363',
-'inference._types.AmazonBedrockTaskType': 'inference/_types/CommonTypes.ts#L365-L368',
-'inference._types.AnthropicServiceSettings': 'inference/_types/CommonTypes.ts#L374-L390',
-'inference._types.AnthropicServiceType': 'inference/_types/CommonTypes.ts#L423-L425',
-'inference._types.AnthropicTaskSettings': 'inference/_types/CommonTypes.ts#L392-L417',
-'inference._types.AnthropicTaskType': 'inference/_types/CommonTypes.ts#L419-L421',
-'inference._types.AzureAiStudioServiceSettings': 'inference/_types/CommonTypes.ts#L427-L469',
-'inference._types.AzureAiStudioServiceType': 'inference/_types/CommonTypes.ts#L506-L508',
-'inference._types.AzureAiStudioTaskSettings': 'inference/_types/CommonTypes.ts#L471-L499',
-'inference._types.AzureAiStudioTaskType': 'inference/_types/CommonTypes.ts#L501-L504',
-'inference._types.AzureOpenAIServiceSettings': 'inference/_types/CommonTypes.ts#L510-L555',
-'inference._types.AzureOpenAIServiceType': 'inference/_types/CommonTypes.ts#L570-L572',
-'inference._types.AzureOpenAITaskSettings': 'inference/_types/CommonTypes.ts#L557-L563',
-'inference._types.AzureOpenAITaskType': 'inference/_types/CommonTypes.ts#L565-L568',
-'inference._types.CohereEmbeddingType': 'inference/_types/CommonTypes.ts#L627-L631',
-'inference._types.CohereInputType': 'inference/_types/CommonTypes.ts#L633-L638',
-'inference._types.CohereServiceSettings': 'inference/_types/CommonTypes.ts#L574-L615',
-'inference._types.CohereServiceType': 'inference/_types/CommonTypes.ts#L623-L625',
-'inference._types.CohereSimilarityType': 'inference/_types/CommonTypes.ts#L640-L644',
-'inference._types.CohereTaskSettings': 'inference/_types/CommonTypes.ts#L652-L684',
-'inference._types.CohereTaskType': 'inference/_types/CommonTypes.ts#L617-L621',
-'inference._types.CohereTruncateType': 'inference/_types/CommonTypes.ts#L646-L650',
+'inference._types.AdaptiveAllocations': 'inference/_types/CommonTypes.ts#L99-L116',
+'inference._types.AlibabaCloudServiceSettings': 'inference/_types/CommonTypes.ts#L292-L337',
+'inference._types.AlibabaCloudServiceType': 'inference/_types/CommonTypes.ts#L362-L364',
+'inference._types.AlibabaCloudTaskSettings': 'inference/_types/CommonTypes.ts#L339-L353',
+'inference._types.AlibabaCloudTaskType': 'inference/_types/CommonTypes.ts#L355-L360',
+'inference._types.AmazonBedrockServiceSettings': 'inference/_types/CommonTypes.ts#L366-L408',
+'inference._types.AmazonBedrockServiceType': 'inference/_types/CommonTypes.ts#L441-L443',
+'inference._types.AmazonBedrockTaskSettings': 'inference/_types/CommonTypes.ts#L410-L434',
+'inference._types.AmazonBedrockTaskType': 'inference/_types/CommonTypes.ts#L436-L439',
+'inference._types.AnthropicServiceSettings': 'inference/_types/CommonTypes.ts#L445-L461',
+'inference._types.AnthropicServiceType': 'inference/_types/CommonTypes.ts#L494-L496',
+'inference._types.AnthropicTaskSettings': 'inference/_types/CommonTypes.ts#L463-L488',
+'inference._types.AnthropicTaskType': 'inference/_types/CommonTypes.ts#L490-L492',
+'inference._types.AzureAiStudioServiceSettings': 'inference/_types/CommonTypes.ts#L498-L540',
+'inference._types.AzureAiStudioServiceType': 'inference/_types/CommonTypes.ts#L577-L579',
+'inference._types.AzureAiStudioTaskSettings': 'inference/_types/CommonTypes.ts#L542-L570',
+'inference._types.AzureAiStudioTaskType': 'inference/_types/CommonTypes.ts#L572-L575',
+'inference._types.AzureOpenAIServiceSettings': 'inference/_types/CommonTypes.ts#L581-L626',
+'inference._types.AzureOpenAIServiceType': 'inference/_types/CommonTypes.ts#L641-L643',
+'inference._types.AzureOpenAITaskSettings': 'inference/_types/CommonTypes.ts#L628-L634',
+'inference._types.AzureOpenAITaskType': 'inference/_types/CommonTypes.ts#L636-L639',
+'inference._types.CohereEmbeddingType': 'inference/_types/CommonTypes.ts#L698-L702',
+'inference._types.CohereInputType': 'inference/_types/CommonTypes.ts#L704-L709',
+'inference._types.CohereServiceSettings': 'inference/_types/CommonTypes.ts#L645-L686',
+'inference._types.CohereServiceType': 'inference/_types/CommonTypes.ts#L694-L696',
+'inference._types.CohereSimilarityType': 'inference/_types/CommonTypes.ts#L711-L715',
+'inference._types.CohereTaskSettings': 'inference/_types/CommonTypes.ts#L723-L755',
+'inference._types.CohereTaskType': 'inference/_types/CommonTypes.ts#L688-L692',
+'inference._types.CohereTruncateType': 'inference/_types/CommonTypes.ts#L717-L721',
 'inference._types.CompletionInferenceResult': 'inference/_types/Results.ts#L83-L88',
 'inference._types.CompletionResult': 'inference/_types/Results.ts#L76-L81',
-'inference._types.CompletionTool': 'inference/_types/CommonTypes.ts#L207-L219',
-'inference._types.CompletionToolChoice': 'inference/_types/CommonTypes.ts#L170-L182',
-'inference._types.CompletionToolChoiceFunction': 'inference/_types/CommonTypes.ts#L159-L168',
-'inference._types.CompletionToolFunction': 'inference/_types/CommonTypes.ts#L184-L205',
-'inference._types.CompletionToolType': 'inference/_types/CommonTypes.ts#L81-L84',
-'inference._types.ContentObject': 'inference/_types/CommonTypes.ts#L86-L98',
+'inference._types.CompletionTool': 'inference/_types/CommonTypes.ts#L278-L290',
+'inference._types.CompletionToolChoice': 'inference/_types/CommonTypes.ts#L241-L253',
+'inference._types.CompletionToolChoiceFunction': 'inference/_types/CommonTypes.ts#L230-L239',
+'inference._types.CompletionToolFunction': 'inference/_types/CommonTypes.ts#L255-L276',
+'inference._types.CompletionToolType': 'inference/_types/CommonTypes.ts#L118-L121',
+'inference._types.ContentObject': 'inference/_types/CommonTypes.ts#L123-L135',
 'inference._types.DeleteInferenceEndpointResult': 'inference/_types/Results.ts#L109-L114',
-'inference._types.ElasticsearchServiceSettings': 'inference/_types/CommonTypes.ts#L706-L740',
-'inference._types.ElasticsearchServiceType': 'inference/_types/CommonTypes.ts#L756-L758',
-'inference._types.ElasticsearchTaskSettings': 'inference/_types/CommonTypes.ts#L742-L748',
-'inference._types.ElasticsearchTaskType': 'inference/_types/CommonTypes.ts#L750-L754',
-'inference._types.ElserServiceSettings': 'inference/_types/CommonTypes.ts#L760-L786',
-'inference._types.ElserServiceType': 'inference/_types/CommonTypes.ts#L792-L794',
-'inference._types.ElserTaskType': 'inference/_types/CommonTypes.ts#L788-L790',
-'inference._types.GoogleAiServiceType': 'inference/_types/CommonTypes.ts#L819-L821',
-'inference._types.GoogleAiStudioServiceSettings': 'inference/_types/CommonTypes.ts#L796-L812',
-'inference._types.GoogleAiStudioTaskType': 'inference/_types/CommonTypes.ts#L814-L817',
-'inference._types.GoogleVertexAIServiceSettings': 'inference/_types/CommonTypes.ts#L823-L849',
-'inference._types.GoogleVertexAIServiceType': 'inference/_types/CommonTypes.ts#L867-L869',
-'inference._types.GoogleVertexAITaskSettings': 'inference/_types/CommonTypes.ts#L851-L860',
-'inference._types.GoogleVertexAITaskType': 'inference/_types/CommonTypes.ts#L862-L865',
-'inference._types.HuggingFaceServiceSettings': 'inference/_types/CommonTypes.ts#L871-L892',
-'inference._types.HuggingFaceServiceType': 'inference/_types/CommonTypes.ts#L898-L900',
-'inference._types.HuggingFaceTaskType': 'inference/_types/CommonTypes.ts#L894-L896',
-'inference._types.InferenceChunkingSettings': 'inference/_types/Services.ts#L71-L100',
-'inference._types.InferenceEndpoint': 'inference/_types/Services.ts#L24-L44',
-'inference._types.InferenceEndpointInfo': 'inference/_types/Services.ts#L46-L58',
-'inference._types.InferenceEndpointInfoJinaAi': 'inference/_types/Services.ts#L60-L69',
+'inference._types.ElasticsearchServiceSettings': 'inference/_types/CommonTypes.ts#L777-L811',
+'inference._types.ElasticsearchServiceType': 'inference/_types/CommonTypes.ts#L827-L829',
+'inference._types.ElasticsearchTaskSettings': 'inference/_types/CommonTypes.ts#L813-L819',
+'inference._types.ElasticsearchTaskType': 'inference/_types/CommonTypes.ts#L821-L825',
+'inference._types.ElserServiceSettings': 'inference/_types/CommonTypes.ts#L831-L857',
+'inference._types.ElserServiceType': 'inference/_types/CommonTypes.ts#L863-L865',
+'inference._types.ElserTaskType': 'inference/_types/CommonTypes.ts#L859-L861',
+'inference._types.GoogleAiServiceType': 'inference/_types/CommonTypes.ts#L890-L892',
+'inference._types.GoogleAiStudioServiceSettings': 'inference/_types/CommonTypes.ts#L867-L883',
+'inference._types.GoogleAiStudioTaskType': 'inference/_types/CommonTypes.ts#L885-L888',
+'inference._types.GoogleVertexAIServiceSettings': 'inference/_types/CommonTypes.ts#L894-L920',
+'inference._types.GoogleVertexAIServiceType': 'inference/_types/CommonTypes.ts#L938-L940',
+'inference._types.GoogleVertexAITaskSettings': 'inference/_types/CommonTypes.ts#L922-L931',
+'inference._types.GoogleVertexAITaskType': 'inference/_types/CommonTypes.ts#L933-L936',
+'inference._types.HuggingFaceServiceSettings': 'inference/_types/CommonTypes.ts#L942-L963',
+'inference._types.HuggingFaceServiceType': 'inference/_types/CommonTypes.ts#L969-L971',
+'inference._types.HuggingFaceTaskType': 'inference/_types/CommonTypes.ts#L965-L967',
+'inference._types.InferenceChunkingSettings': 'inference/_types/Services.ts#L254-L283',
+'inference._types.InferenceEndpoint': 'inference/_types/Services.ts#L42-L62',
+'inference._types.InferenceEndpointInfo': 'inference/_types/Services.ts#L64-L76',
+'inference._types.InferenceEndpointInfoAlibabaCloudAI': 'inference/_types/Services.ts#L89-L98',
+'inference._types.InferenceEndpointInfoAmazonBedrock': 'inference/_types/Services.ts#L100-L109',
+'inference._types.InferenceEndpointInfoAnthropic': 'inference/_types/Services.ts#L111-L120',
+'inference._types.InferenceEndpointInfoAzureAIStudio': 'inference/_types/Services.ts#L122-L131',
+'inference._types.InferenceEndpointInfoAzureOpenAI': 'inference/_types/Services.ts#L133-L142',
+'inference._types.InferenceEndpointInfoCohere': 'inference/_types/Services.ts#L144-L153',
+'inference._types.InferenceEndpointInfoELSER': 'inference/_types/Services.ts#L166-L175',
+'inference._types.InferenceEndpointInfoElasticsearch': 'inference/_types/Services.ts#L155-L164',
+'inference._types.InferenceEndpointInfoGoogleAIStudio': 'inference/_types/Services.ts#L177-L186',
+'inference._types.InferenceEndpointInfoGoogleVertexAI': 'inference/_types/Services.ts#L188-L197',
+'inference._types.InferenceEndpointInfoHuggingFace': 'inference/_types/Services.ts#L199-L208',
+'inference._types.InferenceEndpointInfoJinaAi': 'inference/_types/Services.ts#L78-L87',
+'inference._types.InferenceEndpointInfoMistral': 'inference/_types/Services.ts#L210-L219',
+'inference._types.InferenceEndpointInfoOpenAI': 'inference/_types/Services.ts#L221-L230',
+'inference._types.InferenceEndpointInfoVoyageAI': 'inference/_types/Services.ts#L232-L241',
+'inference._types.InferenceEndpointInfoWatsonx': 'inference/_types/Services.ts#L243-L252',
 'inference._types.InferenceResult': 'inference/_types/Results.ts#L116-L127',
-'inference._types.JinaAIServiceSettings': 'inference/_types/CommonTypes.ts#L902-L931',
-'inference._types.JinaAIServiceType': 'inference/_types/CommonTypes.ts#L961-L963',
-'inference._types.JinaAISimilarityType': 'inference/_types/CommonTypes.ts#L965-L969',
-'inference._types.JinaAITaskSettings': 'inference/_types/CommonTypes.ts#L933-L954',
-'inference._types.JinaAITaskType': 'inference/_types/CommonTypes.ts#L956-L959',
-'inference._types.JinaAITextEmbeddingTask': 'inference/_types/CommonTypes.ts#L971-L976',
-'inference._types.Message': 'inference/_types/CommonTypes.ts#L137-L157',
-'inference._types.MessageContent': 'inference/_types/CommonTypes.ts#L132-L135',
-'inference._types.MistralServiceSettings': 'inference/_types/CommonTypes.ts#L978-L1005',
-'inference._types.MistralServiceType': 'inference/_types/CommonTypes.ts#L1011-L1013',
-'inference._types.MistralTaskType': 'inference/_types/CommonTypes.ts#L1007-L1009',
-'inference._types.OpenAIServiceSettings': 'inference/_types/CommonTypes.ts#L1015-L1057',
-'inference._types.OpenAIServiceType': 'inference/_types/CommonTypes.ts#L1073-L1075',
-'inference._types.OpenAITaskSettings': 'inference/_types/CommonTypes.ts#L1059-L1065',
-'inference._types.OpenAITaskType': 'inference/_types/CommonTypes.ts#L1067-L1071',
+'inference._types.JinaAIServiceSettings': 'inference/_types/CommonTypes.ts#L973-L1002',
+'inference._types.JinaAIServiceType': 'inference/_types/CommonTypes.ts#L1032-L1034',
+'inference._types.JinaAISimilarityType': 'inference/_types/CommonTypes.ts#L1036-L1040',
+'inference._types.JinaAITaskSettings': 'inference/_types/CommonTypes.ts#L1004-L1025',
+'inference._types.JinaAITaskType': 'inference/_types/CommonTypes.ts#L1027-L1030',
+'inference._types.JinaAITextEmbeddingTask': 'inference/_types/CommonTypes.ts#L1042-L1047',
+'inference._types.Message': 'inference/_types/CommonTypes.ts#L174-L228',
+'inference._types.MessageContent': 'inference/_types/CommonTypes.ts#L169-L172',
+'inference._types.MistralServiceSettings': 'inference/_types/CommonTypes.ts#L1049-L1076',
+'inference._types.MistralServiceType': 'inference/_types/CommonTypes.ts#L1082-L1084',
+'inference._types.MistralTaskType': 'inference/_types/CommonTypes.ts#L1078-L1080',
+'inference._types.OpenAIServiceSettings': 'inference/_types/CommonTypes.ts#L1086-L1128',
+'inference._types.OpenAIServiceType': 'inference/_types/CommonTypes.ts#L1144-L1146',
+'inference._types.OpenAITaskSettings': 'inference/_types/CommonTypes.ts#L1130-L1136',
+'inference._types.OpenAITaskType': 'inference/_types/CommonTypes.ts#L1138-L1142',
 'inference._types.RankedDocument': 'inference/_types/Results.ts#L90-L100',
-'inference._types.RateLimitSetting': 'inference/_types/Services.ts#L106-L111',
-'inference._types.RequestChatCompletion': 'inference/_types/CommonTypes.ts#L25-L60',
+'inference._types.RateLimitSetting': 'inference/_types/Services.ts#L289-L294',
+'inference._types.RequestChatCompletion': 'inference/_types/CommonTypes.ts#L25-L97',
 'inference._types.RerankedInferenceResult': 'inference/_types/Results.ts#L102-L107',
 'inference._types.SparseEmbeddingInferenceResult': 'inference/_types/Results.ts#L40-L45',
 'inference._types.SparseEmbeddingResult': 'inference/_types/Results.ts#L36-L38',
 'inference._types.TaskType': 'inference/_types/TaskType.ts#L20-L29',
+'inference._types.TaskTypeAlibabaCloudAI': 'inference/_types/TaskType.ts#L36-L41',
+'inference._types.TaskTypeAmazonBedrock': 'inference/_types/TaskType.ts#L43-L46',
+'inference._types.TaskTypeAnthropic': 'inference/_types/TaskType.ts#L48-L50',
+'inference._types.TaskTypeAzureAIStudio': 'inference/_types/TaskType.ts#L52-L55',
+'inference._types.TaskTypeAzureOpenAI': 'inference/_types/TaskType.ts#L57-L60',
+'inference._types.TaskTypeCohere': 'inference/_types/TaskType.ts#L62-L66',
+'inference._types.TaskTypeELSER': 'inference/_types/TaskType.ts#L74-L76',
+'inference._types.TaskTypeElasticsearch': 'inference/_types/TaskType.ts#L68-L72',
+'inference._types.TaskTypeGoogleAIStudio': 'inference/_types/TaskType.ts#L78-L81',
+'inference._types.TaskTypeGoogleVertexAI': 'inference/_types/TaskType.ts#L83-L86',
+'inference._types.TaskTypeHuggingFace': 'inference/_types/TaskType.ts#L88-L90',
 'inference._types.TaskTypeJinaAi': 'inference/_types/TaskType.ts#L31-L34',
+'inference._types.TaskTypeMistral': 'inference/_types/TaskType.ts#L92-L94',
+'inference._types.TaskTypeOpenAI': 'inference/_types/TaskType.ts#L96-L100',
+'inference._types.TaskTypeVoyageAI': 'inference/_types/TaskType.ts#L102-L105',
+'inference._types.TaskTypeWatsonx': 'inference/_types/TaskType.ts#L107-L109',
 'inference._types.TextEmbeddingByteResult': 'inference/_types/Results.ts#L53-L58',
 'inference._types.TextEmbeddingInferenceResult': 'inference/_types/Results.ts#L67-L74',
 'inference._types.TextEmbeddingResult': 'inference/_types/Results.ts#L60-L65',
-'inference._types.ToolCall': 'inference/_types/CommonTypes.ts#L114-L130',
-'inference._types.ToolCallFunction': 'inference/_types/CommonTypes.ts#L100-L112',
-'inference._types.VoyageAIServiceSettings': 'inference/_types/CommonTypes.ts#L1077-L1108',
-'inference._types.VoyageAIServiceType': 'inference/_types/CommonTypes.ts#L1141-L1143',
-'inference._types.VoyageAITaskSettings': 'inference/_types/CommonTypes.ts#L1110-L1134',
-'inference._types.VoyageAITaskType': 'inference/_types/CommonTypes.ts#L1136-L1139',
-'inference._types.WatsonxServiceSettings': 'inference/_types/CommonTypes.ts#L1145-L1182',
-'inference._types.WatsonxServiceType': 'inference/_types/CommonTypes.ts#L1188-L1190',
-'inference._types.WatsonxTaskType': 'inference/_types/CommonTypes.ts#L1184-L1186',
-'inference.chat_completion_unified.Request': 'inference/chat_completion_unified/UnifiedRequest.ts#L24-L64',
+'inference._types.ToolCall': 'inference/_types/CommonTypes.ts#L151-L167',
+'inference._types.ToolCallFunction': 'inference/_types/CommonTypes.ts#L137-L149',
+'inference._types.VoyageAIServiceSettings': 'inference/_types/CommonTypes.ts#L1148-L1179',
+'inference._types.VoyageAIServiceType': 'inference/_types/CommonTypes.ts#L1212-L1214',
+'inference._types.VoyageAITaskSettings': 'inference/_types/CommonTypes.ts#L1181-L1205',
+'inference._types.VoyageAITaskType': 'inference/_types/CommonTypes.ts#L1207-L1210',
+'inference._types.WatsonxServiceSettings': 'inference/_types/CommonTypes.ts#L1216-L1253',
+'inference._types.WatsonxServiceType': 'inference/_types/CommonTypes.ts#L1259-L1261',
+'inference._types.WatsonxTaskType': 'inference/_types/CommonTypes.ts#L1255-L1257',
+'inference.chat_completion_unified.Request': 'inference/chat_completion_unified/UnifiedRequest.ts#L24-L61',
 'inference.chat_completion_unified.Response': 'inference/chat_completion_unified/UnifiedResponse.ts#L22-L24',
 'inference.completion.Request': 'inference/completion/CompletionRequest.ts#L25-L63',
 'inference.completion.Response': 'inference/completion/CompletionResponse.ts#L22-L24',
@@ -1847,40 +1885,40 @@
 'inference.get.Response': 'inference/get/GetResponse.ts#L22-L26',
 'inference.inference.Request': 'inference/inference/InferenceRequest.ts#L26-L91',
 'inference.inference.Response': 'inference/inference/InferenceResponse.ts#L22-L25',
-'inference.put.Request': 'inference/put/PutRequest.ts#L25-L60',
+'inference.put.Request': 'inference/put/PutRequest.ts#L25-L78',
 'inference.put.Response': 'inference/put/PutResponse.ts#L22-L24',
 'inference.put_alibabacloud.Request': 'inference/put_alibabacloud/PutAlibabaCloudRequest.ts#L30-L77',
 'inference.put_alibabacloud.Response': 'inference/put_alibabacloud/PutAlibabaCloudResponse.ts#L22-L24',
 'inference.put_amazonbedrock.Request': 'inference/put_amazonbedrock/PutAmazonBedrockRequest.ts#L30-L80',
-'inference.put_amazonbedrock.Response': 'inference/put_amazonbedrock/PutAmazonBedrockResponse.ts#L22-L24',
+'inference.put_amazonbedrock.Response': 'inference/put_amazonbedrock/PutAmazonBedrockResponse.ts#L22-L25',
 'inference.put_anthropic.Request': 'inference/put_anthropic/PutAnthropicRequest.ts#L30-L78',
-'inference.put_anthropic.Response': 'inference/put_anthropic/PutAnthropicResponse.ts#L22-L24',
+'inference.put_anthropic.Response': 'inference/put_anthropic/PutAnthropicResponse.ts#L22-L25',
 'inference.put_azureaistudio.Request': 'inference/put_azureaistudio/PutAzureAiStudioRequest.ts#L30-L77',
-'inference.put_azureaistudio.Response': 'inference/put_azureaistudio/PutAzureAiStudioResponse.ts#L22-L24',
+'inference.put_azureaistudio.Response': 'inference/put_azureaistudio/PutAzureAiStudioResponse.ts#L22-L25',
 'inference.put_azureopenai.Request': 'inference/put_azureopenai/PutAzureOpenAiRequest.ts#L30-L85',
-'inference.put_azureopenai.Response': 'inference/put_azureopenai/PutAzureOpenAiResponse.ts#L22-L24',
+'inference.put_azureopenai.Response': 'inference/put_azureopenai/PutAzureOpenAiResponse.ts#L22-L25',
 'inference.put_cohere.Request': 'inference/put_cohere/PutCohereRequest.ts#L30-L78',
-'inference.put_cohere.Response': 'inference/put_cohere/PutCohereResponse.ts#L22-L24',
+'inference.put_cohere.Response': 'inference/put_cohere/PutCohereResponse.ts#L22-L25',
 'inference.put_elasticsearch.Request': 'inference/put_elasticsearch/PutElasticsearchRequest.ts#L30-L91',
-'inference.put_elasticsearch.Response': 'inference/put_elasticsearch/PutElasticsearchResponse.ts#L22-L24',
+'inference.put_elasticsearch.Response': 'inference/put_elasticsearch/PutElasticsearchResponse.ts#L22-L25',
 'inference.put_elser.Request': 'inference/put_elser/PutElserRequest.ts#L29-L86',
-'inference.put_elser.Response': 'inference/put_elser/PutElserResponse.ts#L22-L24',
+'inference.put_elser.Response': 'inference/put_elser/PutElserResponse.ts#L22-L25',
 'inference.put_googleaistudio.Request': 'inference/put_googleaistudio/PutGoogleAiStudioRequest.ts#L29-L71',
-'inference.put_googleaistudio.Response': 'inference/put_googleaistudio/PutGoogleAiStudioResponse.ts#L22-L24',
+'inference.put_googleaistudio.Response': 'inference/put_googleaistudio/PutGoogleAiStudioResponse.ts#L22-L25',
 'inference.put_googlevertexai.Request': 'inference/put_googlevertexai/PutGoogleVertexAiRequest.ts#L30-L77',
-'inference.put_googlevertexai.Response': 'inference/put_googlevertexai/PutGoogleVertexAiResponse.ts#L22-L24',
+'inference.put_googlevertexai.Response': 'inference/put_googlevertexai/PutGoogleVertexAiResponse.ts#L22-L25',
 'inference.put_hugging_face.Request': 'inference/put_hugging_face/PutHuggingFaceRequest.ts#L29-L85',
-'inference.put_hugging_face.Response': 'inference/put_hugging_face/PutHuggingFaceResponse.ts#L22-L24',
+'inference.put_hugging_face.Response': 'inference/put_hugging_face/PutHuggingFaceResponse.ts#L22-L25',
 'inference.put_jinaai.Request': 'inference/put_jinaai/PutJinaAiRequest.ts#L30-L80',
 'inference.put_jinaai.Response': 'inference/put_jinaai/PutJinaAiResponse.ts#L22-L24',
 'inference.put_mistral.Request': 'inference/put_mistral/PutMistralRequest.ts#L29-L72',
-'inference.put_mistral.Response': 'inference/put_mistral/PutMistralResponse.ts#L22-L24',
+'inference.put_mistral.Response': 'inference/put_mistral/PutMistralResponse.ts#L22-L25',
 'inference.put_openai.Request': 'inference/put_openai/PutOpenAiRequest.ts#L30-L78',
-'inference.put_openai.Response': 'inference/put_openai/PutOpenAiResponse.ts#L22-L24',
+'inference.put_openai.Response': 'inference/put_openai/PutOpenAiResponse.ts#L22-L25',
 'inference.put_voyageai.Request': 'inference/put_voyageai/PutVoyageAIRequest.ts#L30-L79',
-'inference.put_voyageai.Response': 'inference/put_voyageai/PutVoyageAIResponse.ts#L22-L24',
+'inference.put_voyageai.Response': 'inference/put_voyageai/PutVoyageAIResponse.ts#L22-L25',
 'inference.put_watsonx.Request': 'inference/put_watsonx/PutWatsonxRequest.ts#L28-L68',
-'inference.put_watsonx.Response': 'inference/put_watsonx/PutWatsonxResponse.ts#L22-L24',
+'inference.put_watsonx.Response': 'inference/put_watsonx/PutWatsonxResponse.ts#L22-L25',
 'inference.rerank.Request': 'inference/rerank/RerankRequest.ts#L25-L72',
 'inference.rerank.Response': 'inference/rerank/RerankResponse.ts#L22-L24',
 'inference.sparse_embedding.Request': 'inference/sparse_embedding/SparseEmbeddingRequest.ts#L25-L63',
@@ -2326,7 +2364,7 @@
 'ml.put_datafeed.Response': 'ml/put_datafeed/MlPutDatafeedResponse.ts#L31-L49',
 'ml.put_filter.Request': 'ml/put_filter/MlPutFilterRequest.ts#L23-L58',
 'ml.put_filter.Response': 'ml/put_filter/MlPutFilterResponse.ts#L22-L28',
-'ml.put_job.Request': 'ml/put_job/MlPutJobRequest.ts#L30-L157',
+'ml.put_job.Request': 'ml/put_job/MlPutJobRequest.ts#L30-L151',
 'ml.put_job.Response': 'ml/put_job/MlPutJobResponse.ts#L29-L52',
 'ml.put_trained_model.AggregateOutput': 'ml/put_trained_model/types.ts#L101-L106',
 'ml.put_trained_model.Definition': 'ml/put_trained_model/types.ts#L24-L29',
@@ -2368,7 +2406,7 @@
 'ml.stop_trained_model_deployment.Response': 'ml/stop_trained_model_deployment/MlStopTrainedModelDeploymentResponse.ts#L20-L22',
 'ml.update_data_frame_analytics.Request': 'ml/update_data_frame_analytics/MlUpdateDataFrameAnalyticsRequest.ts#L24-L80',
 'ml.update_data_frame_analytics.Response': 'ml/update_data_frame_analytics/MlUpdateDataFrameAnalyticsResponse.ts#L30-L45',
-'ml.update_datafeed.Request': 'ml/update_datafeed/MlUpdateDatafeedRequest.ts#L31-L170',
+'ml.update_datafeed.Request': 'ml/update_datafeed/MlUpdateDatafeedRequest.ts#L31-L164',
 'ml.update_datafeed.Response': 'ml/update_datafeed/MlUpdateDatafeedResponse.ts#L31-L49',
 'ml.update_filter.Request': 'ml/update_filter/MlUpdateFilterRequest.ts#L23-L60',
 'ml.update_filter.Response': 'ml/update_filter/MlUpdateFilterResponse.ts#L22-L28',
@@ -2449,7 +2487,7 @@
 'nodes.clear_repositories_metering_archive.Request': 'nodes/clear_repositories_metering_archive/ClearRepositoriesMeteringArchiveRequest.ts#L24-L52',
 'nodes.clear_repositories_metering_archive.Response': 'nodes/clear_repositories_metering_archive/ClearRepositoriesMeteringArchiveResponse.ts#L37-L39',
 'nodes.clear_repositories_metering_archive.ResponseBase': 'nodes/clear_repositories_metering_archive/ClearRepositoriesMeteringArchiveResponse.ts#L25-L35',
-'nodes.get_repositories_metering_info.Request': 'nodes/get_repositories_metering_info/GetRepositoriesMeteringInfoRequest.ts#L23-L49',
+'nodes.get_repositories_metering_info.Request': 'nodes/get_repositories_metering_info/GetRepositoriesMeteringInfoRequest.ts#L23-L50',
 'nodes.get_repositories_metering_info.Response': 'nodes/get_repositories_metering_info/GetRepositoriesMeteringInfoResponse.ts#L36-L38',
 'nodes.get_repositories_metering_info.ResponseBase': 'nodes/get_repositories_metering_info/GetRepositoriesMeteringInfoResponse.ts#L25-L34',
 'nodes.hot_threads.Request': 'nodes/hot_threads/NodesHotThreadsRequest.ts#L25-L88',
@@ -2837,6 +2875,7 @@
 'slm._types.Policy': 'slm/_types/SnapshotLifecycle.ts#L86-L92',
 'slm._types.Retention': 'slm/_types/SnapshotLifecycle.ts#L94-L107',
 'slm._types.SnapshotLifecycle': 'slm/_types/SnapshotLifecycle.ts#L38-L59',
+'slm._types.SnapshotPolicyStats': 'slm/_types/SnapshotLifecycle.ts#L153-L159',
 'slm._types.Statistics': 'slm/_types/SnapshotLifecycle.ts#L61-L84',
 'slm.delete_lifecycle.Request': 'slm/delete_lifecycle/DeleteSnapshotLifecycleRequest.ts#L24-L58',
 'slm.delete_lifecycle.Response': 'slm/delete_lifecycle/DeleteSnapshotLifecycleResponse.ts#L22-L24',
@@ -2847,7 +2886,7 @@
 'slm.get_lifecycle.Request': 'slm/get_lifecycle/GetSnapshotLifecycleRequest.ts#L24-L64',
 'slm.get_lifecycle.Response': 'slm/get_lifecycle/GetSnapshotLifecycleResponse.ts#L24-L27',
 'slm.get_stats.Request': 'slm/get_stats/GetSnapshotLifecycleStatsRequest.ts#L23-L51',
-'slm.get_stats.Response': 'slm/get_stats/GetSnapshotLifecycleStatsResponse.ts#L23-L36',
+'slm.get_stats.Response': 'slm/get_stats/GetSnapshotLifecycleStatsResponse.ts#L24-L37',
 'slm.get_status.Request': 'slm/get_status/GetSnapshotLifecycleManagementStatusRequest.ts#L23-L54',
 'slm.get_status.Response': 'slm/get_status/GetSnapshotLifecycleManagementStatusResponse.ts#L22-L24',
 'slm.put_lifecycle.Request': 'slm/put_lifecycle/PutSnapshotLifecycleRequest.ts#L26-L89',
@@ -3226,10 +3265,10 @@
         if (hash.length > 1) {
             hash = hash.substring(1);
         }
-        window.location = "https://github.com/elastic/elasticsearch-specification/tree/0b326d89a5dc4013a2ef7239e58fe98f3db2639a/specification/" + (paths[hash] || "");
+        window.location = "https://github.com/elastic/elasticsearch-specification/tree/677be69e834d82b476020348dfba6289dcf84847/specification/" + (paths[hash] || "");
     </script>
 </head>
 <body>
-    Please see the <a href="https://github.com/elastic/elasticsearch-specification/tree/0b326d89a5dc4013a2ef7239e58fe98f3db2639a/specification/">Elasticsearch API specification</a>.
+    Please see the <a href="https://github.com/elastic/elasticsearch-specification/tree/677be69e834d82b476020348dfba6289dcf84847/specification/">Elasticsearch API specification</a>.
 </body>
 </html>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/fleet/FleetSearchRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/fleet/FleetSearchRequest.java
index ab1a1cd54..e4659fa0f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/fleet/FleetSearchRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/fleet/FleetSearchRequest.java
@@ -335,12 +335,10 @@ public final Boolean allowNoIndices() {
 	}
 
 	/**
-	 * If true, returns partial results if there are shard request timeouts or
-	 * <a href=
-	 * "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html#shard-failures">shard
-	 * failures</a>. If false, returns an error with no partial results. Defaults to
-	 * the configured cluster setting
-	 * <code>search.default_allow_partial_results</code> which is true by default.
+	 * If true, returns partial results if there are shard request timeouts or shard
+	 * failures. If false, returns an error with no partial results. Defaults to the
+	 * configured cluster setting <code>search.default_allow_partial_results</code>
+	 * which is true by default.
 	 * <p>
 	 * API name: {@code allow_partial_search_results}
 	 */
@@ -1290,12 +1288,10 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		}
 
 		/**
-		 * If true, returns partial results if there are shard request timeouts or
-		 * <a href=
-		 * "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html#shard-failures">shard
-		 * failures</a>. If false, returns an error with no partial results. Defaults to
-		 * the configured cluster setting
-		 * <code>search.default_allow_partial_results</code> which is true by default.
+		 * If true, returns partial results if there are shard request timeouts or shard
+		 * failures. If false, returns an error with no partial results. Defaults to the
+		 * configured cluster setting <code>search.default_allow_partial_results</code>
+		 * which is true by default.
 		 * <p>
 		 * API name: {@code allow_partial_search_results}
 		 */
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ClearCacheRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ClearCacheRequest.java
index ec70832cd..684822b89 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ClearCacheRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ClearCacheRequest.java
@@ -129,9 +129,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -252,9 +250,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -269,9 +265,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/CloseIndexRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/CloseIndexRequest.java
index ae7f21fc6..c9805a72b 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/CloseIndexRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/CloseIndexRequest.java
@@ -148,9 +148,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -259,9 +257,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -276,9 +272,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DeleteIndexRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DeleteIndexRequest.java
index e32305f49..9a339ff77 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DeleteIndexRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DeleteIndexRequest.java
@@ -123,9 +123,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -222,9 +220,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -239,9 +235,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
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 061724fc1..9c4eede91 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
@@ -120,7 +120,7 @@ public final CompletableFuture<AddBlockResponse> addBlock(
 	 * specified index will always use <code>10000</code> as its limit.
 	 * 
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -145,7 +145,7 @@ public CompletableFuture<AnalyzeResponse> analyze(AnalyzeRequest request) {
 	 *            a function that initializes a builder to create the
 	 *            {@link AnalyzeRequest}
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -165,7 +165,7 @@ public final CompletableFuture<AnalyzeResponse> analyze(
 	 * specified index will always use <code>10000</code> as its limit.
 	 * 
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -2754,10 +2754,54 @@ public final CompletableFuture<PutMappingResponse> putMapping(
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
@@ -2787,10 +2831,54 @@ public CompletableFuture<PutIndicesSettingsResponse> putSettings(PutIndicesSetti
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
@@ -2821,10 +2909,54 @@ public final CompletableFuture<PutIndicesSettingsResponse> putSettings(
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
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 6a239feb3..7cc7ef692 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
@@ -118,7 +118,7 @@ public final AddBlockResponse addBlock(Function<AddBlockRequest.Builder, ObjectB
 	 * specified index will always use <code>10000</code> as its limit.
 	 * 
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -143,7 +143,7 @@ public AnalyzeResponse analyze(AnalyzeRequest request) throws IOException, Elast
 	 *            a function that initializes a builder to create the
 	 *            {@link AnalyzeRequest}
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -163,7 +163,7 @@ public final AnalyzeResponse analyze(Function<AnalyzeRequest.Builder, ObjectBuil
 	 * specified index will always use <code>10000</code> as its limit.
 	 * 
 	 * @see <a href=
-	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/indices-analyze.html">Documentation
+	 *      "https://www.elastic.co/docs/api/doc/elasticsearch/v8/operation/operation-indices-analyze">Documentation
 	 *      on elastic.co</a>
 	 */
 
@@ -2799,10 +2799,54 @@ public final PutMappingResponse putMapping(Function<PutMappingRequest.Builder, O
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
@@ -2833,10 +2877,54 @@ public PutIndicesSettingsResponse putSettings(PutIndicesSettingsRequest request)
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
@@ -2868,10 +2956,54 @@ public final PutIndicesSettingsResponse putSettings(
 	 * <p>
 	 * To revert a setting to the default value, use a null value. The list of
 	 * per-index settings that can be updated dynamically on live indices can be
-	 * found in index module documentation. To preserve existing settings from being
-	 * updated, set the <code>preserve_existing</code> parameter to
+	 * found in index settings documentation. To preserve existing settings from
+	 * being updated, set the <code>preserve_existing</code> parameter to
 	 * <code>true</code>.
 	 * <p>
+	 * There are multiple valid ways to represent index settings in the request
+	 * body. You can specify only the setting, for example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use an <code>index</code> setting object:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index&quot;: {
+	 *     &quot;number_of_replicas&quot;: 1
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can use dot annotation:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;index.number_of_replicas&quot;: 1
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Or you can embed any of the aforementioned options in a <code>settings</code>
+	 * object. For example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;settings&quot;: {
+	 *     &quot;index&quot;: {
+	 *       &quot;number_of_replicas&quot;: 1
+	 *     }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * NOTE: You can only define new analyzers on closed indices. To add an
 	 * analyzer, you must close the index, define the analyzer, and reopen the
 	 * index. You cannot close the write index of a data stream. To update the
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsAliasRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsAliasRequest.java
index 9c103ab0c..e4cad9e40 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsAliasRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsAliasRequest.java
@@ -119,9 +119,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -218,9 +216,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -235,9 +231,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsRequest.java
index 57b1ed678..3c547ae1f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ExistsRequest.java
@@ -123,9 +123,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -229,9 +227,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -246,9 +242,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/FlushRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/FlushRequest.java
index f23846239..5d1fae1ad 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/FlushRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/FlushRequest.java
@@ -135,9 +135,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -232,9 +230,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -249,9 +245,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetAliasRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetAliasRequest.java
index d8d19b1c5..401d1bbaf 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetAliasRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetAliasRequest.java
@@ -116,9 +116,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -215,9 +213,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -232,9 +228,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleRequest.java
index 5760e21a6..738bc9cbf 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleRequest.java
@@ -97,9 +97,7 @@ public static GetDataLifecycleRequest of(Function<Builder, ObjectBuilder<GetData
 
 	/**
 	 * Type of data stream that wildcard patterns can match. Supports
-	 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-	 * <code>all</code>, <code>open</code>, <code>closed</code>,
-	 * <code>hidden</code>, <code>none</code>.
+	 * comma-separated values, such as <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -161,9 +159,7 @@ public static class Builder extends RequestBase.AbstractBuilder<Builder>
 
 		/**
 		 * Type of data stream that wildcard patterns can match. Supports
-		 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-		 * <code>all</code>, <code>open</code>, <code>closed</code>,
-		 * <code>hidden</code>, <code>none</code>.
+		 * comma-separated values, such as <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -176,9 +172,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 
 		/**
 		 * Type of data stream that wildcard patterns can match. Supports
-		 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-		 * <code>all</code>, <code>open</code>, <code>closed</code>,
-		 * <code>hidden</code>, <code>none</code>.
+		 * comma-separated values, such as <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetFieldMappingRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetFieldMappingRequest.java
index ff9755e24..4bd42f08d 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetFieldMappingRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetFieldMappingRequest.java
@@ -125,9 +125,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -234,9 +232,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -251,9 +247,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetMappingRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetMappingRequest.java
index e9f08c307..052e64203 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetMappingRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetMappingRequest.java
@@ -118,9 +118,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -220,9 +218,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -237,9 +233,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/OpenRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/OpenRequest.java
index 26ec2d8d0..ccb97d05f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/OpenRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/OpenRequest.java
@@ -154,9 +154,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -268,9 +266,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -285,9 +281,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutDataLifecycleRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutDataLifecycleRequest.java
index c94cff317..7da94aa13 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutDataLifecycleRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutDataLifecycleRequest.java
@@ -147,9 +147,7 @@ public final Boolean enabled() {
 
 	/**
 	 * Type of data stream that wildcard patterns can match. Supports
-	 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-	 * <code>all</code>, <code>hidden</code>, <code>open</code>,
-	 * <code>closed</code>, <code>none</code>.
+	 * comma-separated values, such as <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -310,9 +308,7 @@ public final Builder enabled(@Nullable Boolean value) {
 
 		/**
 		 * Type of data stream that wildcard patterns can match. Supports
-		 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-		 * <code>all</code>, <code>hidden</code>, <code>open</code>,
-		 * <code>closed</code>, <code>none</code>.
+		 * comma-separated values, such as <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -325,9 +321,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 
 		/**
 		 * Type of data stream that wildcard patterns can match. Supports
-		 * comma-separated values, such as <code>open,hidden</code>. Valid values are:
-		 * <code>all</code>, <code>hidden</code>, <code>open</code>,
-		 * <code>closed</code>, <code>none</code>.
+		 * comma-separated values, such as <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutIndicesSettingsRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutIndicesSettingsRequest.java
index bef17864d..4ce7d0910 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutIndicesSettingsRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutIndicesSettingsRequest.java
@@ -68,10 +68,54 @@
  * <p>
  * To revert a setting to the default value, use a null value. The list of
  * per-index settings that can be updated dynamically on live indices can be
- * found in index module documentation. To preserve existing settings from being
- * updated, set the <code>preserve_existing</code> parameter to
+ * found in index settings documentation. To preserve existing settings from
+ * being updated, set the <code>preserve_existing</code> parameter to
  * <code>true</code>.
  * <p>
+ * There are multiple valid ways to represent index settings in the request
+ * body. You can specify only the setting, for example:
+ * 
+ * <pre>
+ * <code>{
+ *   &quot;number_of_replicas&quot;: 1
+ * }
+ * </code>
+ * </pre>
+ * <p>
+ * Or you can use an <code>index</code> setting object:
+ * 
+ * <pre>
+ * <code>{
+ *   &quot;index&quot;: {
+ *     &quot;number_of_replicas&quot;: 1
+ *   }
+ * }
+ * </code>
+ * </pre>
+ * <p>
+ * Or you can use dot annotation:
+ * 
+ * <pre>
+ * <code>{
+ *   &quot;index.number_of_replicas&quot;: 1
+ * }
+ * </code>
+ * </pre>
+ * <p>
+ * Or you can embed any of the aforementioned options in a <code>settings</code>
+ * object. For example:
+ * 
+ * <pre>
+ * <code>{
+ *   &quot;settings&quot;: {
+ *     &quot;index&quot;: {
+ *       &quot;number_of_replicas&quot;: 1
+ *     }
+ *   }
+ * }
+ * </code>
+ * </pre>
+ * <p>
  * NOTE: You can only define new analyzers on closed indices. To add an
  * analyzer, you must close the index, define the analyzer, and reopen the
  * index. You cannot close the write index of a data stream. To update the
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutMappingRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutMappingRequest.java
index 977c716ee..5b3a30973 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutMappingRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/PutMappingRequest.java
@@ -286,9 +286,7 @@ public final List<NamedValue<DynamicTemplate>> dynamicTemplates() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -721,9 +719,7 @@ public final Builder dynamicTemplates(NamedValue<DynamicTemplate> value,
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -738,9 +734,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RefreshRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RefreshRequest.java
index d5f430450..d8cb94f97 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RefreshRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RefreshRequest.java
@@ -127,9 +127,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -195,9 +193,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -212,9 +208,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveClusterRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveClusterRequest.java
index f1a365d63..0fc69d581 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveClusterRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveClusterRequest.java
@@ -201,11 +201,10 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>. NOTE: This option is only supported when specifying an
-	 * index expression. You will get an error if you specify index options to the
-	 * <code>_resolve/cluster</code> API endpoint that takes no index expression.
+	 * <code>open,hidden</code>. NOTE: This option is only supported when specifying
+	 * an index expression. You will get an error if you specify index options to
+	 * the <code>_resolve/cluster</code> API endpoint that takes no index
+	 * expression.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -322,11 +321,10 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>. NOTE: This option is only supported when specifying an
-		 * index expression. You will get an error if you specify index options to the
-		 * <code>_resolve/cluster</code> API endpoint that takes no index expression.
+		 * <code>open,hidden</code>. NOTE: This option is only supported when specifying
+		 * an index expression. You will get an error if you specify index options to
+		 * the <code>_resolve/cluster</code> API endpoint that takes no index
+		 * expression.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -341,11 +339,10 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>. NOTE: This option is only supported when specifying an
-		 * index expression. You will get an error if you specify index options to the
-		 * <code>_resolve/cluster</code> API endpoint that takes no index expression.
+		 * <code>open,hidden</code>. NOTE: This option is only supported when specifying
+		 * an index expression. You will get an error if you specify index options to
+		 * the <code>_resolve/cluster</code> API endpoint that takes no index
+		 * expression.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveIndexRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveIndexRequest.java
index ec21ee58a..b4335231c 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveIndexRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ResolveIndexRequest.java
@@ -112,9 +112,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -184,9 +182,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -201,9 +197,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SegmentsRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SegmentsRequest.java
index 826c117d4..7897929ac 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SegmentsRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SegmentsRequest.java
@@ -114,9 +114,7 @@ public final Boolean allowNoIndices() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -195,9 +193,7 @@ public final Builder allowNoIndices(@Nullable Boolean value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -212,9 +208,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ValidateQueryRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ValidateQueryRequest.java
index b8035fe4a..fd5e25e27 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ValidateQueryRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ValidateQueryRequest.java
@@ -208,9 +208,7 @@ public final String df() {
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
 	 * hidden data streams. Supports comma-separated values, such as
-	 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-	 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-	 * <code>none</code>.
+	 * <code>open,hidden</code>.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -435,9 +433,7 @@ public final Builder df(@Nullable String value) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -452,9 +448,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
 		 * hidden data streams. Supports comma-separated values, such as
-		 * <code>open,hidden</code>. Valid values are: <code>all</code>,
-		 * <code>open</code>, <code>closed</code>, <code>hidden</code>,
-		 * <code>none</code>.
+		 * <code>open,hidden</code>.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ChatCompletionUnifiedRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ChatCompletionUnifiedRequest.java
index a1971f525..544c72f79 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ChatCompletionUnifiedRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ChatCompletionUnifiedRequest.java
@@ -66,16 +66,8 @@
  * The chat completion inference API enables real-time responses for chat
  * completion tasks by delivering answers incrementally, reducing response times
  * during computation. It only works with the <code>chat_completion</code> task
- * type for <code>openai</code> and <code>elastic</code> inference services.
- * <p>
- * IMPORTANT: The inference APIs enable you to use certain services, such as
- * built-in machine learning models (ELSER, E5), models uploaded through Eland,
- * Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic,
- * Watsonx.ai, or Hugging Face. For built-in models and models uploaded through
- * Eland, the inference APIs offer an alternative way to use and manage trained
- * models. However, if you do not plan to use the inference APIs to use these
- * models or if you want to use non-NLP models, use the machine learning trained
- * model APIs.
+ * type for <code>openai</code>, <code>elastic</code> and
+ * <code>googlevertexai</code> inference services.
  * <p>
  * NOTE: The <code>chat_completion</code> task type is only available within the
  * _stream API and only supports streaming. The Chat completion inference API
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceAsyncClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceAsyncClient.java
index e96df8193..ec8b2e05f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceAsyncClient.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceAsyncClient.java
@@ -76,16 +76,8 @@ public ElasticsearchInferenceAsyncClient withTransportOptions(@Nullable Transpor
 	 * The chat completion inference API enables real-time responses for chat
 	 * completion tasks by delivering answers incrementally, reducing response times
 	 * during computation. It only works with the <code>chat_completion</code> task
-	 * type for <code>openai</code> and <code>elastic</code> inference services.
-	 * <p>
-	 * IMPORTANT: The inference APIs enable you to use certain services, such as
-	 * built-in machine learning models (ELSER, E5), models uploaded through Eland,
-	 * Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic,
-	 * Watsonx.ai, or Hugging Face. For built-in models and models uploaded through
-	 * Eland, the inference APIs offer an alternative way to use and manage trained
-	 * models. However, if you do not plan to use the inference APIs to use these
-	 * models or if you want to use non-NLP models, use the machine learning trained
-	 * model APIs.
+	 * type for <code>openai</code>, <code>elastic</code> and
+	 * <code>googlevertexai</code> inference services.
 	 * <p>
 	 * NOTE: The <code>chat_completion</code> task type is only available within the
 	 * _stream API and only supports streaming. The Chat completion inference API
@@ -113,16 +105,8 @@ public CompletableFuture<BinaryResponse> chatCompletionUnified(ChatCompletionUni
 	 * The chat completion inference API enables real-time responses for chat
 	 * completion tasks by delivering answers incrementally, reducing response times
 	 * during computation. It only works with the <code>chat_completion</code> task
-	 * type for <code>openai</code> and <code>elastic</code> inference services.
-	 * <p>
-	 * IMPORTANT: The inference APIs enable you to use certain services, such as
-	 * built-in machine learning models (ELSER, E5), models uploaded through Eland,
-	 * Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic,
-	 * Watsonx.ai, or Hugging Face. For built-in models and models uploaded through
-	 * Eland, the inference APIs offer an alternative way to use and manage trained
-	 * models. However, if you do not plan to use the inference APIs to use these
-	 * models or if you want to use non-NLP models, use the machine learning trained
-	 * model APIs.
+	 * type for <code>openai</code>, <code>elastic</code> and
+	 * <code>googlevertexai</code> inference services.
 	 * <p>
 	 * NOTE: The <code>chat_completion</code> task type is only available within the
 	 * _stream API and only supports streaming. The Chat completion inference API
@@ -345,7 +329,36 @@ public final CompletableFuture<InferenceResponse> inference(
 	 * and manage trained models. However, if you do not plan to use the inference
 	 * APIs to use these models or if you want to use non-NLP models, use the
 	 * machine learning trained model APIs.
-	 * 
+	 * <p>
+	 * The following integrations are available through the inference API. You can
+	 * find the available task types next to the integration name:
+	 * <ul>
+	 * <li>AlibabaCloud AI Search (<code>completion</code>, <code>rerank</code>,
+	 * <code>sparse_embedding</code>, <code>text_embedding</code>)</li>
+	 * <li>Amazon Bedrock (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Anthropic (<code>completion</code>)</li>
+	 * <li>Azure AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Azure OpenAI (<code>completion</code>, <code>text_embedding</code>)</li>
+	 * <li>Cohere (<code>completion</code>, <code>rerank</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Elasticsearch (<code>rerank</code>, <code>sparse_embedding</code>,
+	 * <code>text_embedding</code> - this service is for built-in models and models
+	 * uploaded through Eland)</li>
+	 * <li>ELSER (<code>sparse_embedding</code>)</li>
+	 * <li>Google AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Google Vertex AI (<code>rerank</code>, <code>text_embedding</code>)</li>
+	 * <li>Hugging Face (<code>text_embedding</code>)</li>
+	 * <li>Mistral (<code>text_embedding</code>)</li>
+	 * <li>OpenAI (<code>chat_completion</code>, <code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>VoyageAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * <li>Watsonx inference integration (<code>text_embedding</code>)</li>
+	 * <li>JinaAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * </ul>
+	 *
 	 * @see <a href=
 	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-inference-api.html">Documentation
 	 *      on elastic.co</a>
@@ -369,7 +382,36 @@ public CompletableFuture<PutResponse> put(PutRequest request) {
 	 * and manage trained models. However, if you do not plan to use the inference
 	 * APIs to use these models or if you want to use non-NLP models, use the
 	 * machine learning trained model APIs.
-	 * 
+	 * <p>
+	 * The following integrations are available through the inference API. You can
+	 * find the available task types next to the integration name:
+	 * <ul>
+	 * <li>AlibabaCloud AI Search (<code>completion</code>, <code>rerank</code>,
+	 * <code>sparse_embedding</code>, <code>text_embedding</code>)</li>
+	 * <li>Amazon Bedrock (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Anthropic (<code>completion</code>)</li>
+	 * <li>Azure AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Azure OpenAI (<code>completion</code>, <code>text_embedding</code>)</li>
+	 * <li>Cohere (<code>completion</code>, <code>rerank</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Elasticsearch (<code>rerank</code>, <code>sparse_embedding</code>,
+	 * <code>text_embedding</code> - this service is for built-in models and models
+	 * uploaded through Eland)</li>
+	 * <li>ELSER (<code>sparse_embedding</code>)</li>
+	 * <li>Google AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Google Vertex AI (<code>rerank</code>, <code>text_embedding</code>)</li>
+	 * <li>Hugging Face (<code>text_embedding</code>)</li>
+	 * <li>Mistral (<code>text_embedding</code>)</li>
+	 * <li>OpenAI (<code>chat_completion</code>, <code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>VoyageAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * <li>Watsonx inference integration (<code>text_embedding</code>)</li>
+	 * <li>JinaAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * </ul>
+	 *
 	 * @param fn
 	 *            a function that initializes a builder to create the
 	 *            {@link PutRequest}
@@ -426,7 +468,7 @@ public final CompletableFuture<PutAlibabacloudResponse> putAlibabacloud(
 	/**
 	 * Create an Amazon Bedrock inference endpoint.
 	 * <p>
-	 * Creates an inference endpoint to perform an inference task with the
+	 * Create an inference endpoint to perform an inference task with the
 	 * <code>amazonbedrock</code> service. <blockquote>
 	 * <p>
 	 * info You need to provide the access and secret keys only once, during the
@@ -453,7 +495,7 @@ public CompletableFuture<PutAmazonbedrockResponse> putAmazonbedrock(PutAmazonbed
 	/**
 	 * Create an Amazon Bedrock inference endpoint.
 	 * <p>
-	 * Creates an inference endpoint to perform an inference task with the
+	 * Create an inference endpoint to perform an inference task with the
 	 * <code>amazonbedrock</code> service. <blockquote>
 	 * <p>
 	 * info You need to provide the access and secret keys only once, during the
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceClient.java
index 906505bc3..1105159f0 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceClient.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/ElasticsearchInferenceClient.java
@@ -74,16 +74,8 @@ public ElasticsearchInferenceClient withTransportOptions(@Nullable TransportOpti
 	 * The chat completion inference API enables real-time responses for chat
 	 * completion tasks by delivering answers incrementally, reducing response times
 	 * during computation. It only works with the <code>chat_completion</code> task
-	 * type for <code>openai</code> and <code>elastic</code> inference services.
-	 * <p>
-	 * IMPORTANT: The inference APIs enable you to use certain services, such as
-	 * built-in machine learning models (ELSER, E5), models uploaded through Eland,
-	 * Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic,
-	 * Watsonx.ai, or Hugging Face. For built-in models and models uploaded through
-	 * Eland, the inference APIs offer an alternative way to use and manage trained
-	 * models. However, if you do not plan to use the inference APIs to use these
-	 * models or if you want to use non-NLP models, use the machine learning trained
-	 * model APIs.
+	 * type for <code>openai</code>, <code>elastic</code> and
+	 * <code>googlevertexai</code> inference services.
 	 * <p>
 	 * NOTE: The <code>chat_completion</code> task type is only available within the
 	 * _stream API and only supports streaming. The Chat completion inference API
@@ -112,16 +104,8 @@ public BinaryResponse chatCompletionUnified(ChatCompletionUnifiedRequest request
 	 * The chat completion inference API enables real-time responses for chat
 	 * completion tasks by delivering answers incrementally, reducing response times
 	 * during computation. It only works with the <code>chat_completion</code> task
-	 * type for <code>openai</code> and <code>elastic</code> inference services.
-	 * <p>
-	 * IMPORTANT: The inference APIs enable you to use certain services, such as
-	 * built-in machine learning models (ELSER, E5), models uploaded through Eland,
-	 * Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic,
-	 * Watsonx.ai, or Hugging Face. For built-in models and models uploaded through
-	 * Eland, the inference APIs offer an alternative way to use and manage trained
-	 * models. However, if you do not plan to use the inference APIs to use these
-	 * models or if you want to use non-NLP models, use the machine learning trained
-	 * model APIs.
+	 * type for <code>openai</code>, <code>elastic</code> and
+	 * <code>googlevertexai</code> inference services.
 	 * <p>
 	 * NOTE: The <code>chat_completion</code> task type is only available within the
 	 * _stream API and only supports streaming. The Chat completion inference API
@@ -346,7 +330,36 @@ public final InferenceResponse inference(Function<InferenceRequest.Builder, Obje
 	 * and manage trained models. However, if you do not plan to use the inference
 	 * APIs to use these models or if you want to use non-NLP models, use the
 	 * machine learning trained model APIs.
-	 * 
+	 * <p>
+	 * The following integrations are available through the inference API. You can
+	 * find the available task types next to the integration name:
+	 * <ul>
+	 * <li>AlibabaCloud AI Search (<code>completion</code>, <code>rerank</code>,
+	 * <code>sparse_embedding</code>, <code>text_embedding</code>)</li>
+	 * <li>Amazon Bedrock (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Anthropic (<code>completion</code>)</li>
+	 * <li>Azure AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Azure OpenAI (<code>completion</code>, <code>text_embedding</code>)</li>
+	 * <li>Cohere (<code>completion</code>, <code>rerank</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Elasticsearch (<code>rerank</code>, <code>sparse_embedding</code>,
+	 * <code>text_embedding</code> - this service is for built-in models and models
+	 * uploaded through Eland)</li>
+	 * <li>ELSER (<code>sparse_embedding</code>)</li>
+	 * <li>Google AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Google Vertex AI (<code>rerank</code>, <code>text_embedding</code>)</li>
+	 * <li>Hugging Face (<code>text_embedding</code>)</li>
+	 * <li>Mistral (<code>text_embedding</code>)</li>
+	 * <li>OpenAI (<code>chat_completion</code>, <code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>VoyageAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * <li>Watsonx inference integration (<code>text_embedding</code>)</li>
+	 * <li>JinaAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * </ul>
+	 *
 	 * @see <a href=
 	 *      "https://www.elastic.co/guide/en/elasticsearch/reference/8.18/put-inference-api.html">Documentation
 	 *      on elastic.co</a>
@@ -370,7 +383,36 @@ public PutResponse put(PutRequest request) throws IOException, ElasticsearchExce
 	 * and manage trained models. However, if you do not plan to use the inference
 	 * APIs to use these models or if you want to use non-NLP models, use the
 	 * machine learning trained model APIs.
-	 * 
+	 * <p>
+	 * The following integrations are available through the inference API. You can
+	 * find the available task types next to the integration name:
+	 * <ul>
+	 * <li>AlibabaCloud AI Search (<code>completion</code>, <code>rerank</code>,
+	 * <code>sparse_embedding</code>, <code>text_embedding</code>)</li>
+	 * <li>Amazon Bedrock (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Anthropic (<code>completion</code>)</li>
+	 * <li>Azure AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Azure OpenAI (<code>completion</code>, <code>text_embedding</code>)</li>
+	 * <li>Cohere (<code>completion</code>, <code>rerank</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Elasticsearch (<code>rerank</code>, <code>sparse_embedding</code>,
+	 * <code>text_embedding</code> - this service is for built-in models and models
+	 * uploaded through Eland)</li>
+	 * <li>ELSER (<code>sparse_embedding</code>)</li>
+	 * <li>Google AI Studio (<code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>Google Vertex AI (<code>rerank</code>, <code>text_embedding</code>)</li>
+	 * <li>Hugging Face (<code>text_embedding</code>)</li>
+	 * <li>Mistral (<code>text_embedding</code>)</li>
+	 * <li>OpenAI (<code>chat_completion</code>, <code>completion</code>,
+	 * <code>text_embedding</code>)</li>
+	 * <li>VoyageAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * <li>Watsonx inference integration (<code>text_embedding</code>)</li>
+	 * <li>JinaAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+	 * </ul>
+	 *
 	 * @param fn
 	 *            a function that initializes a builder to create the
 	 *            {@link PutRequest}
@@ -430,7 +472,7 @@ public final PutAlibabacloudResponse putAlibabacloud(
 	/**
 	 * Create an Amazon Bedrock inference endpoint.
 	 * <p>
-	 * Creates an inference endpoint to perform an inference task with the
+	 * Create an inference endpoint to perform an inference task with the
 	 * <code>amazonbedrock</code> service. <blockquote>
 	 * <p>
 	 * info You need to provide the access and secret keys only once, during the
@@ -458,7 +500,7 @@ public PutAmazonbedrockResponse putAmazonbedrock(PutAmazonbedrockRequest request
 	/**
 	 * Create an Amazon Bedrock inference endpoint.
 	 * <p>
-	 * Creates an inference endpoint to perform an inference task with the
+	 * Create an inference endpoint to perform an inference task with the
 	 * <code>amazonbedrock</code> service. <blockquote>
 	 * <p>
 	 * info You need to provide the access and secret keys only once, during the
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAlibabaCloudAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAlibabaCloudAI.java
new file mode 100644
index 000000000..fad57cc01
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAlibabaCloudAI.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoAlibabaCloudAI
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoAlibabaCloudAI">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoAlibabaCloudAI extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeAlibabaCloudAI taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoAlibabaCloudAI(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeAlibabaCloudAI taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeAlibabaCloudAI taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeAlibabaCloudAI value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoAlibabaCloudAIDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeAlibabaCloudAI._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAmazonBedrock.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAmazonBedrock.java
new file mode 100644
index 000000000..2d9aeef38
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAmazonBedrock.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoAmazonBedrock
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoAmazonBedrock">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoAmazonBedrock extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeAmazonBedrock taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoAmazonBedrock(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeAmazonBedrock taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeAmazonBedrock taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeAmazonBedrock value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoAmazonBedrockDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeAmazonBedrock._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAnthropic.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAnthropic.java
new file mode 100644
index 000000000..4fa149d08
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAnthropic.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoAnthropic
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoAnthropic">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoAnthropic extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeAnthropic taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoAnthropic(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeAnthropic taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeAnthropic taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeAnthropic value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoAnthropicDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeAnthropic._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureAIStudio.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureAIStudio.java
new file mode 100644
index 000000000..1cb261f21
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureAIStudio.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoAzureAIStudio
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoAzureAIStudio">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoAzureAIStudio extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeAzureAIStudio taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoAzureAIStudio(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeAzureAIStudio taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeAzureAIStudio taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeAzureAIStudio value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoAzureAIStudioDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeAzureAIStudio._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureOpenAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureOpenAI.java
new file mode 100644
index 000000000..8274779f1
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoAzureOpenAI.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoAzureOpenAI
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoAzureOpenAI">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoAzureOpenAI extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeAzureOpenAI taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoAzureOpenAI(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeAzureOpenAI taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeAzureOpenAI taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeAzureOpenAI value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoAzureOpenAIDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeAzureOpenAI._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoCohere.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoCohere.java
new file mode 100644
index 000000000..4bc52aa3a
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoCohere.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoCohere
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoCohere">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoCohere extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeCohere taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoCohere(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeCohere taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeCohere taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeCohere value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoCohereDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeCohere._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoELSER.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoELSER.java
new file mode 100644
index 000000000..c5388a490
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoELSER.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoELSER
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoELSER">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoELSER extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeELSER taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoELSER(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeELSER taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeELSER taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeELSER value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoELSERDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeELSER._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoElasticsearch.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoElasticsearch.java
new file mode 100644
index 000000000..f8d19ce3f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoElasticsearch.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoElasticsearch
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoElasticsearch">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoElasticsearch extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeElasticsearch taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoElasticsearch(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeElasticsearch taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeElasticsearch taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeElasticsearch value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoElasticsearchDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeElasticsearch._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleAIStudio.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleAIStudio.java
new file mode 100644
index 000000000..b2453f41c
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleAIStudio.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoGoogleAIStudio
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoGoogleAIStudio">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoGoogleAIStudio extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeGoogleAIStudio taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoGoogleAIStudio(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeGoogleAIStudio taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeGoogleAIStudio taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeGoogleAIStudio value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoGoogleAIStudioDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeGoogleAIStudio._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleVertexAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleVertexAI.java
new file mode 100644
index 000000000..962ee15e0
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoGoogleVertexAI.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoGoogleVertexAI
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoGoogleVertexAI">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoGoogleVertexAI extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeGoogleVertexAI taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoGoogleVertexAI(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeGoogleVertexAI taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeGoogleVertexAI taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeGoogleVertexAI value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoGoogleVertexAIDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeGoogleVertexAI._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoHuggingFace.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoHuggingFace.java
new file mode 100644
index 000000000..9fc80cd6d
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoHuggingFace.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoHuggingFace
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoHuggingFace">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoHuggingFace extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeHuggingFace taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoHuggingFace(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeHuggingFace taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeHuggingFace taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeHuggingFace value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoHuggingFaceDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeHuggingFace._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoMistral.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoMistral.java
new file mode 100644
index 000000000..df9f67ea0
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoMistral.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoMistral
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoMistral">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoMistral extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeMistral taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoMistral(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeMistral taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeMistral taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeMistral value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoMistralDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeMistral._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoOpenAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoOpenAI.java
new file mode 100644
index 000000000..938419db4
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoOpenAI.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoOpenAI
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoOpenAI">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoOpenAI extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeOpenAI taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoOpenAI(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeOpenAI taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeOpenAI taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeOpenAI value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoOpenAIDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeOpenAI._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoVoyageAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoVoyageAI.java
new file mode 100644
index 000000000..e9f472d24
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoVoyageAI.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoVoyageAI
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoVoyageAI">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoVoyageAI extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeVoyageAI taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoVoyageAI(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeVoyageAI taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeVoyageAI taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeVoyageAI value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoVoyageAIDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeVoyageAI._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoWatsonx.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoWatsonx.java
new file mode 100644
index 000000000..8dd0d9b14
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/InferenceEndpointInfoWatsonx.java
@@ -0,0 +1,141 @@
+/*
+ * 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.inference;
+
+import co.elastic.clients.json.JsonpDeserializable;
+import co.elastic.clients.json.JsonpDeserializer;
+import co.elastic.clients.json.JsonpMapper;
+import co.elastic.clients.json.ObjectBuilderDeserializer;
+import co.elastic.clients.json.ObjectDeserializer;
+import co.elastic.clients.util.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.String;
+import java.util.Objects;
+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: inference._types.InferenceEndpointInfoWatsonx
+
+/**
+ *
+ * @see <a href=
+ *      "../doc-files/api-spec.html#inference._types.InferenceEndpointInfoWatsonx">API
+ *      specification</a>
+ */
+
+public abstract class InferenceEndpointInfoWatsonx extends InferenceEndpoint {
+	private final String inferenceId;
+
+	private final TaskTypeWatsonx taskType;
+
+	// ---------------------------------------------------------------------------------------------
+
+	protected InferenceEndpointInfoWatsonx(AbstractBuilder<?> builder) {
+		super(builder);
+
+		this.inferenceId = ApiTypeHelper.requireNonNull(builder.inferenceId, this, "inferenceId");
+		this.taskType = ApiTypeHelper.requireNonNull(builder.taskType, this, "taskType");
+
+	}
+
+	/**
+	 * Required - The inference Id
+	 * <p>
+	 * API name: {@code inference_id}
+	 */
+	public final String inferenceId() {
+		return this.inferenceId;
+	}
+
+	/**
+	 * Required - The task type
+	 * <p>
+	 * API name: {@code task_type}
+	 */
+	public final TaskTypeWatsonx taskType() {
+		return this.taskType;
+	}
+
+	protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
+
+		super.serializeInternal(generator, mapper);
+		generator.writeKey("inference_id");
+		generator.write(this.inferenceId);
+
+		generator.writeKey("task_type");
+		this.taskType.serialize(generator, mapper);
+
+	}
+
+	public abstract static class AbstractBuilder<BuilderT extends AbstractBuilder<BuilderT>>
+			extends
+				InferenceEndpoint.AbstractBuilder<BuilderT> {
+		private String inferenceId;
+
+		private TaskTypeWatsonx taskType;
+
+		/**
+		 * Required - The inference Id
+		 * <p>
+		 * API name: {@code inference_id}
+		 */
+		public final BuilderT inferenceId(String value) {
+			this.inferenceId = value;
+			return self();
+		}
+
+		/**
+		 * Required - The task type
+		 * <p>
+		 * API name: {@code task_type}
+		 */
+		public final BuilderT taskType(TaskTypeWatsonx value) {
+			this.taskType = value;
+			return self();
+		}
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+	protected static <BuilderT extends AbstractBuilder<BuilderT>> void setupInferenceEndpointInfoWatsonxDeserializer(
+			ObjectDeserializer<BuilderT> op) {
+		InferenceEndpoint.setupInferenceEndpointDeserializer(op);
+		op.add(AbstractBuilder::inferenceId, JsonpDeserializer.stringDeserializer(), "inference_id");
+		op.add(AbstractBuilder::taskType, TaskTypeWatsonx._DESERIALIZER, "task_type");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/Message.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/Message.java
index 0bda860e8..38ca93c7c 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/Message.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/Message.java
@@ -89,6 +89,29 @@ public static Message of(Function<Builder, ObjectBuilder<Message>> fn) {
 	/**
 	 * The content of the message.
 	 * <p>
+	 * String example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *    &quot;content&quot;: &quot;Some string&quot;
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
+	 * Object example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;content&quot;: [
+	 *       {
+	 *        &quot;text&quot;: &quot;Some text&quot;,
+	 *        &quot;type&quot;: &quot;text&quot;
+	 *       }
+	 *    ]
+	 * }
+	 * </code>
+	 * </pre>
+	 * <p>
 	 * API name: {@code content}
 	 */
 	@Nullable
@@ -97,7 +120,9 @@ public final MessageContent content() {
 	}
 
 	/**
-	 * Required - The role of the message author.
+	 * Required - The role of the message author. Valid values are
+	 * <code>user</code>, <code>assistant</code>, <code>system</code>, and
+	 * <code>tool</code>.
 	 * <p>
 	 * API name: {@code role}
 	 */
@@ -106,7 +131,8 @@ public final String role() {
 	}
 
 	/**
-	 * The tool call that this message is responding to.
+	 * Only for <code>tool</code> role messages. The tool call that this message is
+	 * responding to.
 	 * <p>
 	 * API name: {@code tool_call_id}
 	 */
@@ -116,7 +142,25 @@ public final String toolCallId() {
 	}
 
 	/**
-	 * The tool calls generated by the model.
+	 * Only for <code>assistant</code> role messages. The tool calls generated by
+	 * the model. If it's specified, the <code>content</code> field is optional.
+	 * Example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;tool_calls&quot;: [
+	 *       {
+	 *           &quot;id&quot;: &quot;call_KcAjWtAww20AihPHphUh46Gd&quot;,
+	 *           &quot;type&quot;: &quot;function&quot;,
+	 *           &quot;function&quot;: {
+	 *               &quot;name&quot;: &quot;get_current_weather&quot;,
+	 *               &quot;arguments&quot;: &quot;{\&quot;location\&quot;:\&quot;Boston, MA\&quot;}&quot;
+	 *           }
+	 *       }
+	 *   ]
+	 * }
+	 * </code>
+	 * </pre>
 	 * <p>
 	 * API name: {@code tool_calls}
 	 */
@@ -187,6 +231,29 @@ public static class Builder extends WithJsonObjectBuilderBase<Builder> implement
 		/**
 		 * The content of the message.
 		 * <p>
+		 * String example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *    &quot;content&quot;: &quot;Some string&quot;
+		 * }
+		 * </code>
+		 * </pre>
+		 * <p>
+		 * Object example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;content&quot;: [
+		 *       {
+		 *        &quot;text&quot;: &quot;Some text&quot;,
+		 *        &quot;type&quot;: &quot;text&quot;
+		 *       }
+		 *    ]
+		 * }
+		 * </code>
+		 * </pre>
+		 * <p>
 		 * API name: {@code content}
 		 */
 		public final Builder content(@Nullable MessageContent value) {
@@ -197,6 +264,29 @@ public final Builder content(@Nullable MessageContent value) {
 		/**
 		 * The content of the message.
 		 * <p>
+		 * String example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *    &quot;content&quot;: &quot;Some string&quot;
+		 * }
+		 * </code>
+		 * </pre>
+		 * <p>
+		 * Object example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;content&quot;: [
+		 *       {
+		 *        &quot;text&quot;: &quot;Some text&quot;,
+		 *        &quot;type&quot;: &quot;text&quot;
+		 *       }
+		 *    ]
+		 * }
+		 * </code>
+		 * </pre>
+		 * <p>
 		 * API name: {@code content}
 		 */
 		public final Builder content(Function<MessageContent.Builder, ObjectBuilder<MessageContent>> fn) {
@@ -204,7 +294,9 @@ public final Builder content(Function<MessageContent.Builder, ObjectBuilder<Mess
 		}
 
 		/**
-		 * Required - The role of the message author.
+		 * Required - The role of the message author. Valid values are
+		 * <code>user</code>, <code>assistant</code>, <code>system</code>, and
+		 * <code>tool</code>.
 		 * <p>
 		 * API name: {@code role}
 		 */
@@ -214,7 +306,8 @@ public final Builder role(String value) {
 		}
 
 		/**
-		 * The tool call that this message is responding to.
+		 * Only for <code>tool</code> role messages. The tool call that this message is
+		 * responding to.
 		 * <p>
 		 * API name: {@code tool_call_id}
 		 */
@@ -224,7 +317,25 @@ public final Builder toolCallId(@Nullable String value) {
 		}
 
 		/**
-		 * The tool calls generated by the model.
+		 * Only for <code>assistant</code> role messages. The tool calls generated by
+		 * the model. If it's specified, the <code>content</code> field is optional.
+		 * Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tool_calls&quot;: [
+		 *       {
+		 *           &quot;id&quot;: &quot;call_KcAjWtAww20AihPHphUh46Gd&quot;,
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_current_weather&quot;,
+		 *               &quot;arguments&quot;: &quot;{\&quot;location\&quot;:\&quot;Boston, MA\&quot;}&quot;
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tool_calls}
 		 * <p>
@@ -236,7 +347,25 @@ public final Builder toolCalls(List<ToolCall> list) {
 		}
 
 		/**
-		 * The tool calls generated by the model.
+		 * Only for <code>assistant</code> role messages. The tool calls generated by
+		 * the model. If it's specified, the <code>content</code> field is optional.
+		 * Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tool_calls&quot;: [
+		 *       {
+		 *           &quot;id&quot;: &quot;call_KcAjWtAww20AihPHphUh46Gd&quot;,
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_current_weather&quot;,
+		 *               &quot;arguments&quot;: &quot;{\&quot;location\&quot;:\&quot;Boston, MA\&quot;}&quot;
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tool_calls}
 		 * <p>
@@ -248,7 +377,25 @@ public final Builder toolCalls(ToolCall value, ToolCall... values) {
 		}
 
 		/**
-		 * The tool calls generated by the model.
+		 * Only for <code>assistant</code> role messages. The tool calls generated by
+		 * the model. If it's specified, the <code>content</code> field is optional.
+		 * Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tool_calls&quot;: [
+		 *       {
+		 *           &quot;id&quot;: &quot;call_KcAjWtAww20AihPHphUh46Gd&quot;,
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_current_weather&quot;,
+		 *               &quot;arguments&quot;: &quot;{\&quot;location\&quot;:\&quot;Boston, MA\&quot;}&quot;
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tool_calls}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAlibabacloudResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAlibabacloudResponse.java
index b6c1d6132..a8367d5a4 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAlibabacloudResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAlibabacloudResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutAlibabacloudResponse extends InferenceEndpointInfo {
+public class PutAlibabacloudResponse extends InferenceEndpointInfoAlibabaCloudAI {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutAlibabacloudResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutAlibabacloudResponse of(Function<Builder, ObjectBuilder<PutAlib
 	 * Builder for {@link PutAlibabacloudResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoAlibabaCloudAI.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutAlibabacloudResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutAlibabacloudResponse build() {
 
 	protected static void setupPutAlibabacloudResponseDeserializer(
 			ObjectDeserializer<PutAlibabacloudResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoAlibabaCloudAI.setupInferenceEndpointInfoAlibabaCloudAIDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockRequest.java
index 7afaf21bf..b88751ef2 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockRequest.java
@@ -60,7 +60,7 @@
 /**
  * Create an Amazon Bedrock inference endpoint.
  * <p>
- * Creates an inference endpoint to perform an inference task with the
+ * Create an inference endpoint to perform an inference task with the
  * <code>amazonbedrock</code> service. <blockquote>
  * <p>
  * info You need to provide the access and secret keys only once, during the
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockResponse.java
index 2d0bc5d53..4777a45f5 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAmazonbedrockResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutAmazonbedrockResponse extends InferenceEndpointInfo {
+public class PutAmazonbedrockResponse extends InferenceEndpointInfoAmazonBedrock {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutAmazonbedrockResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutAmazonbedrockResponse of(Function<Builder, ObjectBuilder<PutAma
 	 * Builder for {@link PutAmazonbedrockResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoAmazonBedrock.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutAmazonbedrockResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutAmazonbedrockResponse build() {
 
 	protected static void setupPutAmazonbedrockResponseDeserializer(
 			ObjectDeserializer<PutAmazonbedrockResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoAmazonBedrock.setupInferenceEndpointInfoAmazonBedrockDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAnthropicResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAnthropicResponse.java
index ecf53c22a..1c8ca73e4 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAnthropicResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAnthropicResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutAnthropicResponse extends InferenceEndpointInfo {
+public class PutAnthropicResponse extends InferenceEndpointInfoAnthropic {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutAnthropicResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutAnthropicResponse of(Function<Builder, ObjectBuilder<PutAnthrop
 	 * Builder for {@link PutAnthropicResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoAnthropic.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutAnthropicResponse> {
 		@Override
@@ -100,7 +100,7 @@ public PutAnthropicResponse build() {
 			.lazy(Builder::new, PutAnthropicResponse::setupPutAnthropicResponseDeserializer);
 
 	protected static void setupPutAnthropicResponseDeserializer(ObjectDeserializer<PutAnthropicResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoAnthropic.setupInferenceEndpointInfoAnthropicDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureaistudioResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureaistudioResponse.java
index 1edb52050..8aa6dd67e 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureaistudioResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureaistudioResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutAzureaistudioResponse extends InferenceEndpointInfo {
+public class PutAzureaistudioResponse extends InferenceEndpointInfoAzureAIStudio {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutAzureaistudioResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutAzureaistudioResponse of(Function<Builder, ObjectBuilder<PutAzu
 	 * Builder for {@link PutAzureaistudioResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoAzureAIStudio.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutAzureaistudioResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutAzureaistudioResponse build() {
 
 	protected static void setupPutAzureaistudioResponseDeserializer(
 			ObjectDeserializer<PutAzureaistudioResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoAzureAIStudio.setupInferenceEndpointInfoAzureAIStudioDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureopenaiResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureopenaiResponse.java
index 3674a08b7..12814f9a7 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureopenaiResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutAzureopenaiResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutAzureopenaiResponse extends InferenceEndpointInfo {
+public class PutAzureopenaiResponse extends InferenceEndpointInfoAzureOpenAI {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutAzureopenaiResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutAzureopenaiResponse of(Function<Builder, ObjectBuilder<PutAzure
 	 * Builder for {@link PutAzureopenaiResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoAzureOpenAI.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutAzureopenaiResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutAzureopenaiResponse build() {
 
 	protected static void setupPutAzureopenaiResponseDeserializer(
 			ObjectDeserializer<PutAzureopenaiResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoAzureOpenAI.setupInferenceEndpointInfoAzureOpenAIDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutCohereResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutCohereResponse.java
index 8a3dbffeb..1ffdc356c 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutCohereResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutCohereResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutCohereResponse extends InferenceEndpointInfo {
+public class PutCohereResponse extends InferenceEndpointInfoCohere {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutCohereResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutCohereResponse of(Function<Builder, ObjectBuilder<PutCohereResp
 	 * Builder for {@link PutCohereResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoCohere.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutCohereResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutCohereResponse build() {
 			.lazy(Builder::new, PutCohereResponse::setupPutCohereResponseDeserializer);
 
 	protected static void setupPutCohereResponseDeserializer(ObjectDeserializer<PutCohereResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoCohere.setupInferenceEndpointInfoCohereDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElasticsearchResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElasticsearchResponse.java
index fcc1ec47b..08226bf85 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElasticsearchResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElasticsearchResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutElasticsearchResponse extends InferenceEndpointInfo {
+public class PutElasticsearchResponse extends InferenceEndpointInfoElasticsearch {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutElasticsearchResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutElasticsearchResponse of(Function<Builder, ObjectBuilder<PutEla
 	 * Builder for {@link PutElasticsearchResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoElasticsearch.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutElasticsearchResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutElasticsearchResponse build() {
 
 	protected static void setupPutElasticsearchResponseDeserializer(
 			ObjectDeserializer<PutElasticsearchResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoElasticsearch.setupInferenceEndpointInfoElasticsearchDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElserResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElserResponse.java
index 565d8f80b..0df99b246 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElserResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutElserResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutElserResponse extends InferenceEndpointInfo {
+public class PutElserResponse extends InferenceEndpointInfoELSER {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutElserResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutElserResponse of(Function<Builder, ObjectBuilder<PutElserRespon
 	 * Builder for {@link PutElserResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoELSER.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutElserResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutElserResponse build() {
 			PutElserResponse::setupPutElserResponseDeserializer);
 
 	protected static void setupPutElserResponseDeserializer(ObjectDeserializer<PutElserResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoELSER.setupInferenceEndpointInfoELSERDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGoogleaistudioResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGoogleaistudioResponse.java
index ec5b9255e..20e007b3b 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGoogleaistudioResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGoogleaistudioResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutGoogleaistudioResponse extends InferenceEndpointInfo {
+public class PutGoogleaistudioResponse extends InferenceEndpointInfoGoogleAIStudio {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutGoogleaistudioResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutGoogleaistudioResponse of(Function<Builder, ObjectBuilder<PutGo
 	 * Builder for {@link PutGoogleaistudioResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoGoogleAIStudio.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutGoogleaistudioResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutGoogleaistudioResponse build() {
 
 	protected static void setupPutGoogleaistudioResponseDeserializer(
 			ObjectDeserializer<PutGoogleaistudioResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoGoogleAIStudio.setupInferenceEndpointInfoGoogleAIStudioDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGooglevertexaiResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGooglevertexaiResponse.java
index 8eb2d84cb..e13e4f1e7 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGooglevertexaiResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutGooglevertexaiResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutGooglevertexaiResponse extends InferenceEndpointInfo {
+public class PutGooglevertexaiResponse extends InferenceEndpointInfoGoogleVertexAI {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutGooglevertexaiResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutGooglevertexaiResponse of(Function<Builder, ObjectBuilder<PutGo
 	 * Builder for {@link PutGooglevertexaiResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoGoogleVertexAI.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutGooglevertexaiResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutGooglevertexaiResponse build() {
 
 	protected static void setupPutGooglevertexaiResponseDeserializer(
 			ObjectDeserializer<PutGooglevertexaiResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoGoogleVertexAI.setupInferenceEndpointInfoGoogleVertexAIDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutHuggingFaceResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutHuggingFaceResponse.java
index 8ed26042f..79ee8756f 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutHuggingFaceResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutHuggingFaceResponse.java
@@ -52,7 +52,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutHuggingFaceResponse extends InferenceEndpointInfo {
+public class PutHuggingFaceResponse extends InferenceEndpointInfoHuggingFace {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutHuggingFaceResponse(Builder builder) {
@@ -70,7 +70,7 @@ public static PutHuggingFaceResponse of(Function<Builder, ObjectBuilder<PutHuggi
 	 * Builder for {@link PutHuggingFaceResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoHuggingFace.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutHuggingFaceResponse> {
 		@Override
@@ -101,7 +101,7 @@ public PutHuggingFaceResponse build() {
 
 	protected static void setupPutHuggingFaceResponseDeserializer(
 			ObjectDeserializer<PutHuggingFaceResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoHuggingFace.setupInferenceEndpointInfoHuggingFaceDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutMistralResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutMistralResponse.java
index 6774ddb62..8ff72f5d8 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutMistralResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutMistralResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutMistralResponse extends InferenceEndpointInfo {
+public class PutMistralResponse extends InferenceEndpointInfoMistral {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutMistralResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutMistralResponse of(Function<Builder, ObjectBuilder<PutMistralRe
 	 * Builder for {@link PutMistralResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoMistral.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutMistralResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutMistralResponse build() {
 			.lazy(Builder::new, PutMistralResponse::setupPutMistralResponseDeserializer);
 
 	protected static void setupPutMistralResponseDeserializer(ObjectDeserializer<PutMistralResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoMistral.setupInferenceEndpointInfoMistralDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutOpenaiResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutOpenaiResponse.java
index cb46d4b17..35efe1ec5 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutOpenaiResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutOpenaiResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutOpenaiResponse extends InferenceEndpointInfo {
+public class PutOpenaiResponse extends InferenceEndpointInfoOpenAI {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutOpenaiResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutOpenaiResponse of(Function<Builder, ObjectBuilder<PutOpenaiResp
 	 * Builder for {@link PutOpenaiResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoOpenAI.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutOpenaiResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutOpenaiResponse build() {
 			.lazy(Builder::new, PutOpenaiResponse::setupPutOpenaiResponseDeserializer);
 
 	protected static void setupPutOpenaiResponseDeserializer(ObjectDeserializer<PutOpenaiResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoOpenAI.setupInferenceEndpointInfoOpenAIDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutRequest.java
index 1336a1320..fb9bad362 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutRequest.java
@@ -69,7 +69,36 @@
  * and manage trained models. However, if you do not plan to use the inference
  * APIs to use these models or if you want to use non-NLP models, use the
  * machine learning trained model APIs.
- * 
+ * <p>
+ * The following integrations are available through the inference API. You can
+ * find the available task types next to the integration name:
+ * <ul>
+ * <li>AlibabaCloud AI Search (<code>completion</code>, <code>rerank</code>,
+ * <code>sparse_embedding</code>, <code>text_embedding</code>)</li>
+ * <li>Amazon Bedrock (<code>completion</code>,
+ * <code>text_embedding</code>)</li>
+ * <li>Anthropic (<code>completion</code>)</li>
+ * <li>Azure AI Studio (<code>completion</code>,
+ * <code>text_embedding</code>)</li>
+ * <li>Azure OpenAI (<code>completion</code>, <code>text_embedding</code>)</li>
+ * <li>Cohere (<code>completion</code>, <code>rerank</code>,
+ * <code>text_embedding</code>)</li>
+ * <li>Elasticsearch (<code>rerank</code>, <code>sparse_embedding</code>,
+ * <code>text_embedding</code> - this service is for built-in models and models
+ * uploaded through Eland)</li>
+ * <li>ELSER (<code>sparse_embedding</code>)</li>
+ * <li>Google AI Studio (<code>completion</code>,
+ * <code>text_embedding</code>)</li>
+ * <li>Google Vertex AI (<code>rerank</code>, <code>text_embedding</code>)</li>
+ * <li>Hugging Face (<code>text_embedding</code>)</li>
+ * <li>Mistral (<code>text_embedding</code>)</li>
+ * <li>OpenAI (<code>chat_completion</code>, <code>completion</code>,
+ * <code>text_embedding</code>)</li>
+ * <li>VoyageAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+ * <li>Watsonx inference integration (<code>text_embedding</code>)</li>
+ * <li>JinaAI (<code>text_embedding</code>, <code>rerank</code>)</li>
+ * </ul>
+ *
  * @see <a href="../doc-files/api-spec.html#inference.put.Request">API
  *      specification</a>
  */
@@ -106,7 +135,8 @@ public final String inferenceId() {
 	}
 
 	/**
-	 * The task type
+	 * The task type. Refer to the integration list in the API description for the
+	 * available task types.
 	 * <p>
 	 * API name: {@code task_type}
 	 */
@@ -155,7 +185,8 @@ public final Builder inferenceId(String value) {
 		}
 
 		/**
-		 * The task type
+		 * The task type. Refer to the integration list in the API description for the
+		 * available task types.
 		 * <p>
 		 * API name: {@code task_type}
 		 */
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutVoyageaiResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutVoyageaiResponse.java
index bda8463e7..57bd2f756 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutVoyageaiResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutVoyageaiResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutVoyageaiResponse extends InferenceEndpointInfo {
+public class PutVoyageaiResponse extends InferenceEndpointInfoVoyageAI {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutVoyageaiResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutVoyageaiResponse of(Function<Builder, ObjectBuilder<PutVoyageai
 	 * Builder for {@link PutVoyageaiResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoVoyageAI.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutVoyageaiResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutVoyageaiResponse build() {
 			.lazy(Builder::new, PutVoyageaiResponse::setupPutVoyageaiResponseDeserializer);
 
 	protected static void setupPutVoyageaiResponseDeserializer(ObjectDeserializer<PutVoyageaiResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoVoyageAI.setupInferenceEndpointInfoVoyageAIDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutWatsonxResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutWatsonxResponse.java
index 6bfff7621..1ef4a498c 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutWatsonxResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/PutWatsonxResponse.java
@@ -51,7 +51,7 @@
  *      specification</a>
  */
 @JsonpDeserializable
-public class PutWatsonxResponse extends InferenceEndpointInfo {
+public class PutWatsonxResponse extends InferenceEndpointInfoWatsonx {
 	// ---------------------------------------------------------------------------------------------
 
 	private PutWatsonxResponse(Builder builder) {
@@ -69,7 +69,7 @@ public static PutWatsonxResponse of(Function<Builder, ObjectBuilder<PutWatsonxRe
 	 * Builder for {@link PutWatsonxResponse}.
 	 */
 
-	public static class Builder extends InferenceEndpointInfo.AbstractBuilder<Builder>
+	public static class Builder extends InferenceEndpointInfoWatsonx.AbstractBuilder<Builder>
 			implements
 				ObjectBuilder<PutWatsonxResponse> {
 		@Override
@@ -99,7 +99,7 @@ public PutWatsonxResponse build() {
 			.lazy(Builder::new, PutWatsonxResponse::setupPutWatsonxResponseDeserializer);
 
 	protected static void setupPutWatsonxResponseDeserializer(ObjectDeserializer<PutWatsonxResponse.Builder> op) {
-		InferenceEndpointInfo.setupInferenceEndpointInfoDeserializer(op);
+		InferenceEndpointInfoWatsonx.setupInferenceEndpointInfoWatsonxDeserializer(op);
 
 	}
 
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/RequestChatCompletion.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/RequestChatCompletion.java
index 99628e8c0..293652b23 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/RequestChatCompletion.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/RequestChatCompletion.java
@@ -159,7 +159,24 @@ public final Float temperature() {
 	}
 
 	/**
-	 * Controls which tool is called by the model.
+	 * Controls which tool is called by the model. String representation: One of
+	 * <code>auto</code>, <code>none</code>, or <code>requrired</code>.
+	 * <code>auto</code> allows the model to choose between calling tools and
+	 * generating a message. <code>none</code> causes the model to not call any
+	 * tools. <code>required</code> forces the model to call one or more tools.
+	 * Example (object representation):
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;tool_choice&quot;: {
+	 *       &quot;type&quot;: &quot;function&quot;,
+	 *       &quot;function&quot;: {
+	 *           &quot;name&quot;: &quot;get_current_weather&quot;
+	 *       }
+	 *   }
+	 * }
+	 * </code>
+	 * </pre>
 	 * <p>
 	 * API name: {@code tool_choice}
 	 */
@@ -169,7 +186,33 @@ public final CompletionToolType toolChoice() {
 	}
 
 	/**
-	 * A list of tools that the model can call.
+	 * A list of tools that the model can call. Example:
+	 * 
+	 * <pre>
+	 * <code>{
+	 *   &quot;tools&quot;: [
+	 *       {
+	 *           &quot;type&quot;: &quot;function&quot;,
+	 *           &quot;function&quot;: {
+	 *               &quot;name&quot;: &quot;get_price_of_item&quot;,
+	 *               &quot;description&quot;: &quot;Get the current price of an item&quot;,
+	 *               &quot;parameters&quot;: {
+	 *                   &quot;type&quot;: &quot;object&quot;,
+	 *                   &quot;properties&quot;: {
+	 *                       &quot;item&quot;: {
+	 *                           &quot;id&quot;: &quot;12345&quot;
+	 *                       },
+	 *                       &quot;unit&quot;: {
+	 *                           &quot;type&quot;: &quot;currency&quot;
+	 *                       }
+	 *                   }
+	 *               }
+	 *           }
+	 *       }
+	 *   ]
+	 * }
+	 * </code>
+	 * </pre>
 	 * <p>
 	 * API name: {@code tools}
 	 */
@@ -401,7 +444,24 @@ public final Builder temperature(@Nullable Float value) {
 		}
 
 		/**
-		 * Controls which tool is called by the model.
+		 * Controls which tool is called by the model. String representation: One of
+		 * <code>auto</code>, <code>none</code>, or <code>requrired</code>.
+		 * <code>auto</code> allows the model to choose between calling tools and
+		 * generating a message. <code>none</code> causes the model to not call any
+		 * tools. <code>required</code> forces the model to call one or more tools.
+		 * Example (object representation):
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tool_choice&quot;: {
+		 *       &quot;type&quot;: &quot;function&quot;,
+		 *       &quot;function&quot;: {
+		 *           &quot;name&quot;: &quot;get_current_weather&quot;
+		 *       }
+		 *   }
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tool_choice}
 		 */
@@ -411,7 +471,24 @@ public final Builder toolChoice(@Nullable CompletionToolType value) {
 		}
 
 		/**
-		 * Controls which tool is called by the model.
+		 * Controls which tool is called by the model. String representation: One of
+		 * <code>auto</code>, <code>none</code>, or <code>requrired</code>.
+		 * <code>auto</code> allows the model to choose between calling tools and
+		 * generating a message. <code>none</code> causes the model to not call any
+		 * tools. <code>required</code> forces the model to call one or more tools.
+		 * Example (object representation):
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tool_choice&quot;: {
+		 *       &quot;type&quot;: &quot;function&quot;,
+		 *       &quot;function&quot;: {
+		 *           &quot;name&quot;: &quot;get_current_weather&quot;
+		 *       }
+		 *   }
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tool_choice}
 		 */
@@ -420,7 +497,33 @@ public final Builder toolChoice(Function<CompletionToolType.Builder, ObjectBuild
 		}
 
 		/**
-		 * A list of tools that the model can call.
+		 * A list of tools that the model can call. Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tools&quot;: [
+		 *       {
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_price_of_item&quot;,
+		 *               &quot;description&quot;: &quot;Get the current price of an item&quot;,
+		 *               &quot;parameters&quot;: {
+		 *                   &quot;type&quot;: &quot;object&quot;,
+		 *                   &quot;properties&quot;: {
+		 *                       &quot;item&quot;: {
+		 *                           &quot;id&quot;: &quot;12345&quot;
+		 *                       },
+		 *                       &quot;unit&quot;: {
+		 *                           &quot;type&quot;: &quot;currency&quot;
+		 *                       }
+		 *                   }
+		 *               }
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tools}
 		 * <p>
@@ -432,7 +535,33 @@ public final Builder tools(List<CompletionTool> list) {
 		}
 
 		/**
-		 * A list of tools that the model can call.
+		 * A list of tools that the model can call. Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tools&quot;: [
+		 *       {
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_price_of_item&quot;,
+		 *               &quot;description&quot;: &quot;Get the current price of an item&quot;,
+		 *               &quot;parameters&quot;: {
+		 *                   &quot;type&quot;: &quot;object&quot;,
+		 *                   &quot;properties&quot;: {
+		 *                       &quot;item&quot;: {
+		 *                           &quot;id&quot;: &quot;12345&quot;
+		 *                       },
+		 *                       &quot;unit&quot;: {
+		 *                           &quot;type&quot;: &quot;currency&quot;
+		 *                       }
+		 *                   }
+		 *               }
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tools}
 		 * <p>
@@ -444,7 +573,33 @@ public final Builder tools(CompletionTool value, CompletionTool... values) {
 		}
 
 		/**
-		 * A list of tools that the model can call.
+		 * A list of tools that the model can call. Example:
+		 * 
+		 * <pre>
+		 * <code>{
+		 *   &quot;tools&quot;: [
+		 *       {
+		 *           &quot;type&quot;: &quot;function&quot;,
+		 *           &quot;function&quot;: {
+		 *               &quot;name&quot;: &quot;get_price_of_item&quot;,
+		 *               &quot;description&quot;: &quot;Get the current price of an item&quot;,
+		 *               &quot;parameters&quot;: {
+		 *                   &quot;type&quot;: &quot;object&quot;,
+		 *                   &quot;properties&quot;: {
+		 *                       &quot;item&quot;: {
+		 *                           &quot;id&quot;: &quot;12345&quot;
+		 *                       },
+		 *                       &quot;unit&quot;: {
+		 *                           &quot;type&quot;: &quot;currency&quot;
+		 *                       }
+		 *                   }
+		 *               }
+		 *           }
+		 *       }
+		 *   ]
+		 * }
+		 * </code>
+		 * </pre>
 		 * <p>
 		 * API name: {@code tools}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAlibabaCloudAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAlibabaCloudAI.java
new file mode 100644
index 000000000..af8feb18f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAlibabaCloudAI.java
@@ -0,0 +1,71 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeAlibabaCloudAI">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeAlibabaCloudAI implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Rerank("rerank"),
+
+	Completion("completion"),
+
+	SparseEmbedding("sparse_embedding"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeAlibabaCloudAI(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeAlibabaCloudAI> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeAlibabaCloudAI.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAmazonBedrock.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAmazonBedrock.java
new file mode 100644
index 000000000..7ae1e077f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAmazonBedrock.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeAmazonBedrock">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeAmazonBedrock implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeAmazonBedrock(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeAmazonBedrock> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeAmazonBedrock.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAnthropic.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAnthropic.java
new file mode 100644
index 000000000..2c63b8fe8
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAnthropic.java
@@ -0,0 +1,65 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeAnthropic">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeAnthropic implements JsonEnum {
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeAnthropic(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeAnthropic> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeAnthropic.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureAIStudio.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureAIStudio.java
new file mode 100644
index 000000000..b22f091ea
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureAIStudio.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeAzureAIStudio">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeAzureAIStudio implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeAzureAIStudio(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeAzureAIStudio> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeAzureAIStudio.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureOpenAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureOpenAI.java
new file mode 100644
index 000000000..c91711a9a
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeAzureOpenAI.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeAzureOpenAI">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeAzureOpenAI implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeAzureOpenAI(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeAzureOpenAI> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeAzureOpenAI.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeCohere.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeCohere.java
new file mode 100644
index 000000000..772d1d4ab
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeCohere.java
@@ -0,0 +1,68 @@
+/*
+ * 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.inference;
+
+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 <a href="../doc-files/api-spec.html#inference._types.TaskTypeCohere">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeCohere implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Rerank("rerank"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeCohere(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeCohere> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeCohere.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeELSER.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeELSER.java
new file mode 100644
index 000000000..830dbc9bd
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeELSER.java
@@ -0,0 +1,64 @@
+/*
+ * 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.inference;
+
+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 <a href="../doc-files/api-spec.html#inference._types.TaskTypeELSER">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeELSER implements JsonEnum {
+	SparseEmbedding("sparse_embedding"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeELSER(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeELSER> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeELSER.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeElasticsearch.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeElasticsearch.java
new file mode 100644
index 000000000..716ea745f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeElasticsearch.java
@@ -0,0 +1,69 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeElasticsearch">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeElasticsearch implements JsonEnum {
+	SparseEmbedding("sparse_embedding"),
+
+	TextEmbedding("text_embedding"),
+
+	Rerank("rerank"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeElasticsearch(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeElasticsearch> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeElasticsearch.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleAIStudio.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleAIStudio.java
new file mode 100644
index 000000000..31147ace4
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleAIStudio.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeGoogleAIStudio">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeGoogleAIStudio implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeGoogleAIStudio(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeGoogleAIStudio> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeGoogleAIStudio.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleVertexAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleVertexAI.java
new file mode 100644
index 000000000..3a46cab37
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeGoogleVertexAI.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeGoogleVertexAI">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeGoogleVertexAI implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Rerank("rerank"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeGoogleVertexAI(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeGoogleVertexAI> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeGoogleVertexAI.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeHuggingFace.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeHuggingFace.java
new file mode 100644
index 000000000..59022b96f
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeHuggingFace.java
@@ -0,0 +1,65 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeHuggingFace">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeHuggingFace implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeHuggingFace(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeHuggingFace> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeHuggingFace.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeMistral.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeMistral.java
new file mode 100644
index 000000000..b42e6beb7
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeMistral.java
@@ -0,0 +1,65 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeMistral">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeMistral implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeMistral(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeMistral> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeMistral.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeOpenAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeOpenAI.java
new file mode 100644
index 000000000..795958e9e
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeOpenAI.java
@@ -0,0 +1,68 @@
+/*
+ * 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.inference;
+
+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 <a href="../doc-files/api-spec.html#inference._types.TaskTypeOpenAI">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeOpenAI implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	ChatCompletion("chat_completion"),
+
+	Completion("completion"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeOpenAI(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeOpenAI> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeOpenAI.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeVoyageAI.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeVoyageAI.java
new file mode 100644
index 000000000..51ffbec7d
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeVoyageAI.java
@@ -0,0 +1,67 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeVoyageAI">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeVoyageAI implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	Rerank("rerank"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeVoyageAI(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeVoyageAI> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeVoyageAI.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeWatsonx.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeWatsonx.java
new file mode 100644
index 000000000..ff96a60f8
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/inference/TaskTypeWatsonx.java
@@ -0,0 +1,65 @@
+/*
+ * 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.inference;
+
+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 <a href=
+ *      "../doc-files/api-spec.html#inference._types.TaskTypeWatsonx">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public enum TaskTypeWatsonx implements JsonEnum {
+	TextEmbedding("text_embedding"),
+
+	;
+
+	private final String jsonValue;
+
+	TaskTypeWatsonx(String jsonValue) {
+		this.jsonValue = jsonValue;
+	}
+
+	public String jsonValue() {
+		return this.jsonValue;
+	}
+
+	public static final JsonEnum.Deserializer<TaskTypeWatsonx> _DESERIALIZER = new JsonEnum.Deserializer<>(
+			TaskTypeWatsonx.values());
+}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/PutJobRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/PutJobRequest.java
index c462e70e0..110d14499 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/PutJobRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/PutJobRequest.java
@@ -295,18 +295,7 @@ public final String description() {
 	/**
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
-	 * hidden data streams. Supports comma-separated values. Valid values are:
-	 * <ul>
-	 * <li><code>all</code>: Match any data stream or index, including hidden
-	 * ones.</li>
-	 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-	 * non-hidden data stream. Data streams cannot be closed.</li>
-	 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-	 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-	 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-	 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-	 * non-hidden data stream.</li>
-	 * </ul>
+	 * hidden data streams. Supports comma-separated values.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -782,18 +771,7 @@ public final Builder description(@Nullable String value) {
 		/**
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
-		 * hidden data streams. Supports comma-separated values. Valid values are:
-		 * <ul>
-		 * <li><code>all</code>: Match any data stream or index, including hidden
-		 * ones.</li>
-		 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-		 * non-hidden data stream. Data streams cannot be closed.</li>
-		 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-		 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-		 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-		 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-		 * non-hidden data stream.</li>
-		 * </ul>
+		 * hidden data streams. Supports comma-separated values.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -807,18 +785,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		/**
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
-		 * hidden data streams. Supports comma-separated values. Valid values are:
-		 * <ul>
-		 * <li><code>all</code>: Match any data stream or index, including hidden
-		 * ones.</li>
-		 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-		 * non-hidden data stream. Data streams cannot be closed.</li>
-		 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-		 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-		 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-		 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-		 * non-hidden data stream.</li>
-		 * </ul>
+		 * hidden data streams. Supports comma-separated values.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/UpdateDatafeedRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/UpdateDatafeedRequest.java
index 8117e5564..14c53e1f4 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/UpdateDatafeedRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/ml/UpdateDatafeedRequest.java
@@ -224,18 +224,7 @@ public final DelayedDataCheckConfig delayedDataCheckConfig() {
 	/**
 	 * Type of index that wildcard patterns can match. If the request can target
 	 * data streams, this argument determines whether wildcard expressions match
-	 * hidden data streams. Supports comma-separated values. Valid values are:
-	 * <ul>
-	 * <li><code>all</code>: Match any data stream or index, including hidden
-	 * ones.</li>
-	 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-	 * non-hidden data stream. Data streams cannot be closed.</li>
-	 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-	 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-	 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-	 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-	 * non-hidden data stream.</li>
-	 * </ul>
+	 * hidden data streams. Supports comma-separated values.
 	 * <p>
 	 * API name: {@code expand_wildcards}
 	 */
@@ -693,18 +682,7 @@ public final Builder delayedDataCheckConfig(
 		/**
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
-		 * hidden data streams. Supports comma-separated values. Valid values are:
-		 * <ul>
-		 * <li><code>all</code>: Match any data stream or index, including hidden
-		 * ones.</li>
-		 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-		 * non-hidden data stream. Data streams cannot be closed.</li>
-		 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-		 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-		 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-		 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-		 * non-hidden data stream.</li>
-		 * </ul>
+		 * hidden data streams. Supports comma-separated values.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
@@ -718,18 +696,7 @@ public final Builder expandWildcards(List<ExpandWildcard> list) {
 		/**
 		 * Type of index that wildcard patterns can match. If the request can target
 		 * data streams, this argument determines whether wildcard expressions match
-		 * hidden data streams. Supports comma-separated values. Valid values are:
-		 * <ul>
-		 * <li><code>all</code>: Match any data stream or index, including hidden
-		 * ones.</li>
-		 * <li><code>closed</code>: Match closed, non-hidden indices. Also matches any
-		 * non-hidden data stream. Data streams cannot be closed.</li>
-		 * <li><code>hidden</code>: Match hidden data streams and hidden indices. Must
-		 * be combined with <code>open</code>, <code>closed</code>, or both.</li>
-		 * <li><code>none</code>: Wildcard patterns are not accepted.</li>
-		 * <li><code>open</code>: Match open, non-hidden indices. Also matches any
-		 * non-hidden data stream.</li>
-		 * </ul>
+		 * hidden data streams. Supports comma-separated values.
 		 * <p>
 		 * API name: {@code expand_wildcards}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/nodes/GetRepositoriesMeteringInfoRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/nodes/GetRepositoriesMeteringInfoRequest.java
index c5a7b5c38..5ffa9579a 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/nodes/GetRepositoriesMeteringInfoRequest.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/nodes/GetRepositoriesMeteringInfoRequest.java
@@ -88,8 +88,8 @@ public static GetRepositoriesMeteringInfoRequest of(
 
 	/**
 	 * Required - Comma-separated list of node IDs or names used to limit returned
-	 * information. All the nodes selective options are explained <a href=
-	 * "https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes">here</a>.
+	 * information. For more information about the nodes selective options, refer to
+	 * the node specification documentation.
 	 * <p>
 	 * API name: {@code node_id}
 	 */
@@ -110,8 +110,8 @@ public static class Builder extends RequestBase.AbstractBuilder<Builder>
 
 		/**
 		 * Required - Comma-separated list of node IDs or names used to limit returned
-		 * information. All the nodes selective options are explained <a href=
-		 * "https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes">here</a>.
+		 * information. For more information about the nodes selective options, refer to
+		 * the node specification documentation.
 		 * <p>
 		 * API name: {@code node_id}
 		 * <p>
@@ -124,8 +124,8 @@ public final Builder nodeId(List<String> list) {
 
 		/**
 		 * Required - Comma-separated list of node IDs or names used to limit returned
-		 * information. All the nodes selective options are explained <a href=
-		 * "https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html#cluster-nodes">here</a>.
+		 * information. For more information about the nodes selective options, refer to
+		 * the node specification documentation.
 		 * <p>
 		 * API name: {@code node_id}
 		 * <p>
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/GetStatsResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/GetStatsResponse.java
index 4504b5f85..7834428cb 100644
--- a/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/GetStatsResponse.java
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/GetStatsResponse.java
@@ -32,7 +32,6 @@
 import co.elastic.clients.util.WithJsonObjectBuilderBase;
 import jakarta.json.stream.JsonGenerator;
 import java.lang.Long;
-import java.lang.String;
 import java.util.List;
 import java.util.Objects;
 import java.util.function.Function;
@@ -80,7 +79,7 @@ public class GetStatsResponse implements JsonpSerializable {
 
 	private final long totalSnapshotsTaken;
 
-	private final List<String> policyStats;
+	private final List<SnapshotPolicyStats> policyStats;
 
 	// ---------------------------------------------------------------------------------------------
 
@@ -175,7 +174,7 @@ public final long totalSnapshotsTaken() {
 	/**
 	 * Required - API name: {@code policy_stats}
 	 */
-	public final List<String> policyStats() {
+	public final List<SnapshotPolicyStats> policyStats() {
 		return this.policyStats;
 	}
 
@@ -220,8 +219,8 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
 		if (ApiTypeHelper.isDefined(this.policyStats)) {
 			generator.writeKey("policy_stats");
 			generator.writeStartArray();
-			for (String item0 : this.policyStats) {
-				generator.write(item0);
+			for (SnapshotPolicyStats item0 : this.policyStats) {
+				item0.serialize(generator, mapper);
 
 			}
 			generator.writeEnd();
@@ -260,7 +259,7 @@ public static class Builder extends WithJsonObjectBuilderBase<Builder> implement
 
 		private Long totalSnapshotsTaken;
 
-		private List<String> policyStats;
+		private List<SnapshotPolicyStats> policyStats;
 
 		/**
 		 * Required - API name: {@code retention_deletion_time}
@@ -346,7 +345,7 @@ public final Builder totalSnapshotsTaken(long value) {
 		 * <p>
 		 * Adds all elements of <code>list</code> to <code>policyStats</code>.
 		 */
-		public final Builder policyStats(List<String> list) {
+		public final Builder policyStats(List<SnapshotPolicyStats> list) {
 			this.policyStats = _listAddAll(this.policyStats, list);
 			return this;
 		}
@@ -356,11 +355,20 @@ public final Builder policyStats(List<String> list) {
 		 * <p>
 		 * Adds one or more values to <code>policyStats</code>.
 		 */
-		public final Builder policyStats(String value, String... values) {
+		public final Builder policyStats(SnapshotPolicyStats value, SnapshotPolicyStats... values) {
 			this.policyStats = _listAdd(this.policyStats, value, values);
 			return this;
 		}
 
+		/**
+		 * Required - API name: {@code policy_stats}
+		 * <p>
+		 * Adds a value to <code>policyStats</code> using a builder lambda.
+		 */
+		public final Builder policyStats(Function<SnapshotPolicyStats.Builder, ObjectBuilder<SnapshotPolicyStats>> fn) {
+			return policyStats(fn.apply(new SnapshotPolicyStats.Builder()).build());
+		}
+
 		@Override
 		protected Builder self() {
 			return this;
@@ -400,7 +408,7 @@ protected static void setupGetStatsResponseDeserializer(ObjectDeserializer<GetSt
 				"total_snapshot_deletion_failures");
 		op.add(Builder::totalSnapshotsFailed, JsonpDeserializer.longDeserializer(), "total_snapshots_failed");
 		op.add(Builder::totalSnapshotsTaken, JsonpDeserializer.longDeserializer(), "total_snapshots_taken");
-		op.add(Builder::policyStats, JsonpDeserializer.arrayDeserializer(JsonpDeserializer.stringDeserializer()),
+		op.add(Builder::policyStats, JsonpDeserializer.arrayDeserializer(SnapshotPolicyStats._DESERIALIZER),
 				"policy_stats");
 
 	}
diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/SnapshotPolicyStats.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/SnapshotPolicyStats.java
new file mode 100644
index 000000000..e009306e5
--- /dev/null
+++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/slm/SnapshotPolicyStats.java
@@ -0,0 +1,253 @@
+/*
+ * 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.slm;
+
+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.ApiTypeHelper;
+import co.elastic.clients.util.ObjectBuilder;
+import co.elastic.clients.util.WithJsonObjectBuilderBase;
+import jakarta.json.stream.JsonGenerator;
+import java.lang.Long;
+import java.lang.String;
+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: slm._types.SnapshotPolicyStats
+
+/**
+ *
+ * @see <a href="../doc-files/api-spec.html#slm._types.SnapshotPolicyStats">API
+ *      specification</a>
+ */
+@JsonpDeserializable
+public class SnapshotPolicyStats implements JsonpSerializable {
+	private final String policy;
+
+	private final long snapshotsTaken;
+
+	private final long snapshotsFailed;
+
+	private final long snapshotsDeleted;
+
+	private final long snapshotDeletionFailures;
+
+	// ---------------------------------------------------------------------------------------------
+
+	private SnapshotPolicyStats(Builder builder) {
+
+		this.policy = ApiTypeHelper.requireNonNull(builder.policy, this, "policy");
+		this.snapshotsTaken = ApiTypeHelper.requireNonNull(builder.snapshotsTaken, this, "snapshotsTaken", 0);
+		this.snapshotsFailed = ApiTypeHelper.requireNonNull(builder.snapshotsFailed, this, "snapshotsFailed", 0);
+		this.snapshotsDeleted = ApiTypeHelper.requireNonNull(builder.snapshotsDeleted, this, "snapshotsDeleted", 0);
+		this.snapshotDeletionFailures = ApiTypeHelper.requireNonNull(builder.snapshotDeletionFailures, this,
+				"snapshotDeletionFailures", 0);
+
+	}
+
+	public static SnapshotPolicyStats of(Function<Builder, ObjectBuilder<SnapshotPolicyStats>> fn) {
+		return fn.apply(new Builder()).build();
+	}
+
+	/**
+	 * Required - API name: {@code policy}
+	 */
+	public final String policy() {
+		return this.policy;
+	}
+
+	/**
+	 * Required - API name: {@code snapshots_taken}
+	 */
+	public final long snapshotsTaken() {
+		return this.snapshotsTaken;
+	}
+
+	/**
+	 * Required - API name: {@code snapshots_failed}
+	 */
+	public final long snapshotsFailed() {
+		return this.snapshotsFailed;
+	}
+
+	/**
+	 * Required - API name: {@code snapshots_deleted}
+	 */
+	public final long snapshotsDeleted() {
+		return this.snapshotsDeleted;
+	}
+
+	/**
+	 * Required - API name: {@code snapshot_deletion_failures}
+	 */
+	public final long snapshotDeletionFailures() {
+		return this.snapshotDeletionFailures;
+	}
+
+	/**
+	 * 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) {
+
+		generator.writeKey("policy");
+		generator.write(this.policy);
+
+		generator.writeKey("snapshots_taken");
+		generator.write(this.snapshotsTaken);
+
+		generator.writeKey("snapshots_failed");
+		generator.write(this.snapshotsFailed);
+
+		generator.writeKey("snapshots_deleted");
+		generator.write(this.snapshotsDeleted);
+
+		generator.writeKey("snapshot_deletion_failures");
+		generator.write(this.snapshotDeletionFailures);
+
+	}
+
+	@Override
+	public String toString() {
+		return JsonpUtils.toString(this);
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder for {@link SnapshotPolicyStats}.
+	 */
+
+	public static class Builder extends WithJsonObjectBuilderBase<Builder>
+			implements
+				ObjectBuilder<SnapshotPolicyStats> {
+		private String policy;
+
+		private Long snapshotsTaken;
+
+		private Long snapshotsFailed;
+
+		private Long snapshotsDeleted;
+
+		private Long snapshotDeletionFailures;
+
+		/**
+		 * Required - API name: {@code policy}
+		 */
+		public final Builder policy(String value) {
+			this.policy = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code snapshots_taken}
+		 */
+		public final Builder snapshotsTaken(long value) {
+			this.snapshotsTaken = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code snapshots_failed}
+		 */
+		public final Builder snapshotsFailed(long value) {
+			this.snapshotsFailed = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code snapshots_deleted}
+		 */
+		public final Builder snapshotsDeleted(long value) {
+			this.snapshotsDeleted = value;
+			return this;
+		}
+
+		/**
+		 * Required - API name: {@code snapshot_deletion_failures}
+		 */
+		public final Builder snapshotDeletionFailures(long value) {
+			this.snapshotDeletionFailures = value;
+			return this;
+		}
+
+		@Override
+		protected Builder self() {
+			return this;
+		}
+
+		/**
+		 * Builds a {@link SnapshotPolicyStats}.
+		 *
+		 * @throws NullPointerException
+		 *             if some of the required fields are null.
+		 */
+		public SnapshotPolicyStats build() {
+			_checkSingleUse();
+
+			return new SnapshotPolicyStats(this);
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	/**
+	 * Json deserializer for {@link SnapshotPolicyStats}
+	 */
+	public static final JsonpDeserializer<SnapshotPolicyStats> _DESERIALIZER = ObjectBuilderDeserializer
+			.lazy(Builder::new, SnapshotPolicyStats::setupSnapshotPolicyStatsDeserializer);
+
+	protected static void setupSnapshotPolicyStatsDeserializer(ObjectDeserializer<SnapshotPolicyStats.Builder> op) {
+
+		op.add(Builder::policy, JsonpDeserializer.stringDeserializer(), "policy");
+		op.add(Builder::snapshotsTaken, JsonpDeserializer.longDeserializer(), "snapshots_taken");
+		op.add(Builder::snapshotsFailed, JsonpDeserializer.longDeserializer(), "snapshots_failed");
+		op.add(Builder::snapshotsDeleted, JsonpDeserializer.longDeserializer(), "snapshots_deleted");
+		op.add(Builder::snapshotDeletionFailures, JsonpDeserializer.longDeserializer(), "snapshot_deletion_failures");
+
+	}
+
+}
diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest_client/MultiBufferEntity.java b/java-client/src/main/java/co/elastic/clients/transport/rest_client/MultiBufferEntity.java
index f1a8e81db..cebbebd55 100644
--- a/java-client/src/main/java/co/elastic/clients/transport/rest_client/MultiBufferEntity.java
+++ b/java-client/src/main/java/co/elastic/clients/transport/rest_client/MultiBufferEntity.java
@@ -60,12 +60,13 @@ public void close() throws IOException {
     }
 
     private void init() {
-        this.iterator = buffers.iterator();
-        if (this.iterator.hasNext()) {
-            this.currentBuffer = this.iterator.next().duplicate();
+        Iterator<ByteBuffer> localIterator = this.buffers.iterator();
+        if (localIterator.hasNext()) {
+            this.currentBuffer = localIterator.next().duplicate();
         } else {
             this.currentBuffer = null;
         }
+        this.iterator = localIterator;
     }
 
     @Override
