diff --git a/build/scripts/scripts.fsproj b/build/scripts/scripts.fsproj
index 6cce8b04b6f..77bedfd1a2f 100644
--- a/build/scripts/scripts.fsproj
+++ b/build/scripts/scripts.fsproj
@@ -4,6 +4,7 @@
Exe
$(NoWarn);NU1701
+ true
@@ -34,17 +35,15 @@
make-release-notes.yml
+
-
-
-
diff --git a/src/Elastic.Clients.Elasticsearch/Types/Documents/MultiSearch/MultiSearchRequest.cs b/src/Elastic.Clients.Elasticsearch/Types/Documents/MultiSearch/MultiSearchRequest.cs
new file mode 100644
index 00000000000..939f89596f4
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/Types/Documents/MultiSearch/MultiSearchRequest.cs
@@ -0,0 +1,92 @@
+// Licensed to Elasticsearch B.V under one or more agreements.
+// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
+// See the LICENSE file in the project root for more information.
+
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+using Elastic.Transport;
+
+namespace Elastic.Clients.Elasticsearch
+{
+ public sealed partial class MultiSearchRequestDescriptor
+ {
+ internal override void BeforeRequest() => TypedKeys(true);
+ }
+
+ public sealed partial class MultiSearchRequestDescriptor
+ {
+ internal override void BeforeRequest() => TypedKeys(true);
+ }
+
+ public partial class MultiSearchRequest
+ {
+ internal override void BeforeRequest() => TypedKeys = true;
+ }
+
+ // POC - If we have more than one union doing this, can we autogenerate with correct ctors etc.
+ public class SearchRequestItem : IStreamSerializable
+ {
+ public SearchRequestItem(MultisearchBody body) => Body = body;
+
+ public SearchRequestItem(MultisearchHeader header, MultisearchBody body)
+ {
+ Header = header;
+ Body = body;
+ }
+
+ public MultisearchHeader Header { get; init; }
+ public MultisearchBody Body { get; init; }
+
+ void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (Body is null)
+ return;
+
+ if (settings.RequestResponseSerializer.TryGetJsonSerializerOptions(out var options))
+ {
+ JsonSerializer.Serialize(stream, Header, options);
+ stream.WriteByte((byte)'\n');
+ JsonSerializer.Serialize(stream, Body, options);
+ stream.WriteByte((byte)'\n');
+ }
+ }
+
+ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (Body is null)
+ return;
+
+ if (settings.RequestResponseSerializer.TryGetJsonSerializerOptions(out var options))
+ {
+ await JsonSerializer.SerializeAsync(stream, Header, options).ConfigureAwait(false);
+ stream.WriteByte((byte)'\n');
+ await JsonSerializer.SerializeAsync(stream, Body, options).ConfigureAwait(false);
+ stream.WriteByte((byte)'\n');
+ }
+ }
+ }
+
+ public partial class ResponseBody
+ {
+ [JsonIgnore]
+ public IReadOnlyCollection> Hits => HitsMetadata.Hits;
+
+ [JsonIgnore]
+ public IReadOnlyCollection Documents => HitsMetadata.Hits.Select(s => s.Source).ToReadOnlyCollection();
+
+ [JsonIgnore]
+ public long Total => HitsMetadata?.Total?.Value ?? -1;
+ }
+
+ public partial class MultiSearchResponse
+ {
+ public override bool IsValid => base.IsValid && (Responses?.All(b => b.Item1 is not null && b.Item1.Status == 200) ?? true);
+
+ [JsonIgnore]
+ public int TotalResponses => Responses.HasAny() ? Responses.Count() : 0;
+ }
+}
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlsLookup.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlsLookup.g.cs
index 8c1150269e5..6972c88dfbb 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlsLookup.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlsLookup.g.cs
@@ -216,6 +216,7 @@ internal static class ApiUrlsLookups
internal static ApiUrls MachineLearningValidateDetector = new ApiUrls(new[] { "/_ml/anomaly_detectors/_validate/detector" });
internal static ApiUrls MachineLearningValidate = new ApiUrls(new[] { "/_ml/anomaly_detectors/_validate" });
internal static ApiUrls NoNamespaceMget = new ApiUrls(new[] { "/_mget", "/{index}/_mget" });
+ internal static ApiUrls NoNamespaceMsearch = new ApiUrls(new[] { "/_msearch", "/{index}/_msearch" });
internal static ApiUrls NodesHotThreads = new ApiUrls(new[] { "/_nodes/hot_threads", "/_nodes/{node_id}/hot_threads" });
internal static ApiUrls NodesInfo = new ApiUrls(new[] { "/_nodes", "/_nodes/{node_id}", "/_nodes/{metric}", "/_nodes/{node_id}/{metric}" });
internal static ApiUrls NodesReloadSecureSettings = new ApiUrls(new[] { "/_nodes/reload_secure_settings", "/_nodes/{node_id}/reload_secure_settings" });
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchRequest.g.cs
new file mode 100644
index 00000000000..b947484071d
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchRequest.g.cs
@@ -0,0 +1,266 @@
+// Licensed to Elasticsearch B.V under one or more agreements.
+// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
+// See the LICENSE file in the project root for more information.
+//
+// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
+// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
+// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
+// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
+// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
+// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
+// ------------------------------------------------
+//
+// This file is automatically generated.
+// Please do not edit these files manually.
+//
+// ------------------------------------------------
+
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+#nullable restore
+namespace Elastic.Clients.Elasticsearch
+{
+ public sealed class MultiSearchRequestParameters : RequestParameters
+ {
+ [JsonIgnore]
+ public bool? AllowNoIndices { get => Q("allow_no_indices"); set => Q("allow_no_indices", value); }
+
+ [JsonIgnore]
+ public bool? CcsMinimizeRoundtrips { get => Q("ccs_minimize_roundtrips"); set => Q("ccs_minimize_roundtrips", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.ExpandWildcards? ExpandWildcards { get => Q("expand_wildcards"); set => Q("expand_wildcards", value); }
+
+ [JsonIgnore]
+ public bool? IgnoreThrottled { get => Q("ignore_throttled"); set => Q("ignore_throttled", value); }
+
+ [JsonIgnore]
+ public bool? IgnoreUnavailable { get => Q("ignore_unavailable"); set => Q("ignore_unavailable", value); }
+
+ [JsonIgnore]
+ public long? MaxConcurrentSearches { get => Q("max_concurrent_searches"); set => Q("max_concurrent_searches", value); }
+
+ [JsonIgnore]
+ public long? MaxConcurrentShardRequests { get => Q("max_concurrent_shard_requests"); set => Q("max_concurrent_shard_requests", value); }
+
+ [JsonIgnore]
+ public long? PreFilterShardSize { get => Q("pre_filter_shard_size"); set => Q("pre_filter_shard_size", value); }
+
+ [JsonIgnore]
+ public bool? RestTotalHitsAsInt { get => Q("rest_total_hits_as_int"); set => Q("rest_total_hits_as_int", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.SearchType? SearchType { get => Q("search_type"); set => Q("search_type", value); }
+
+ [JsonIgnore]
+ public bool? TypedKeys { get => Q("typed_keys"); set => Q("typed_keys", value); }
+ }
+
+ public partial class MultiSearchRequest : PlainRequestBase, IStreamSerializable
+ {
+ public MultiSearchRequest()
+ {
+ }
+
+ public MultiSearchRequest(Elastic.Clients.Elasticsearch.Indices? indices) : base(r => r.Optional("index", indices))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlsLookups.NoNamespaceMsearch;
+ protected override HttpMethod HttpMethod => HttpMethod.POST;
+ protected override bool SupportsBody => true;
+ [JsonIgnore]
+ public bool? AllowNoIndices { get => Q("allow_no_indices"); set => Q("allow_no_indices", value); }
+
+ [JsonIgnore]
+ public bool? CcsMinimizeRoundtrips { get => Q("ccs_minimize_roundtrips"); set => Q("ccs_minimize_roundtrips", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.ExpandWildcards? ExpandWildcards { get => Q("expand_wildcards"); set => Q("expand_wildcards", value); }
+
+ [JsonIgnore]
+ public bool? IgnoreThrottled { get => Q("ignore_throttled"); set => Q("ignore_throttled", value); }
+
+ [JsonIgnore]
+ public bool? IgnoreUnavailable { get => Q("ignore_unavailable"); set => Q("ignore_unavailable", value); }
+
+ [JsonIgnore]
+ public long? MaxConcurrentSearches { get => Q("max_concurrent_searches"); set => Q("max_concurrent_searches", value); }
+
+ [JsonIgnore]
+ public long? MaxConcurrentShardRequests { get => Q("max_concurrent_shard_requests"); set => Q("max_concurrent_shard_requests", value); }
+
+ [JsonIgnore]
+ public long? PreFilterShardSize { get => Q("pre_filter_shard_size"); set => Q("pre_filter_shard_size", value); }
+
+ [JsonIgnore]
+ public bool? RestTotalHitsAsInt { get => Q("rest_total_hits_as_int"); set => Q("rest_total_hits_as_int", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.SearchType? SearchType { get => Q("search_type"); set => Q("search_type", value); }
+
+ [JsonIgnore]
+ public bool? TypedKeys { get => Q("typed_keys"); set => Q("typed_keys", value); }
+
+ public List Searches { get; set; }
+
+ void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (Searches is null)
+ return;
+ foreach (var item in Searches)
+ {
+ if (item is IStreamSerializable serializable)
+ serializable.Serialize(stream, settings, formatting);
+ }
+ }
+
+ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (Searches is null)
+ return;
+ foreach (var item in Searches)
+ {
+ if (item is IStreamSerializable serializable)
+ await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
+ }
+ }
+ }
+
+ public sealed partial class MultiSearchRequestDescriptor : RequestDescriptorBase, MultiSearchRequestParameters>, IStreamSerializable
+ {
+ internal MultiSearchRequestDescriptor(Action> configure) => configure.Invoke(this);
+ public MultiSearchRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlsLookups.NoNamespaceMsearch;
+ protected override HttpMethod HttpMethod => HttpMethod.POST;
+ protected override bool SupportsBody => true;
+ public MultiSearchRequestDescriptor AllowNoIndices(bool? allowNoIndices = true) => Qs("allow_no_indices", allowNoIndices);
+ public MultiSearchRequestDescriptor CcsMinimizeRoundtrips(bool? ccsMinimizeRoundtrips = true) => Qs("ccs_minimize_roundtrips", ccsMinimizeRoundtrips);
+ public MultiSearchRequestDescriptor ExpandWildcards(Elastic.Clients.Elasticsearch.ExpandWildcards? expandWildcards) => Qs("expand_wildcards", expandWildcards);
+ public MultiSearchRequestDescriptor IgnoreThrottled(bool? ignoreThrottled = true) => Qs("ignore_throttled", ignoreThrottled);
+ public MultiSearchRequestDescriptor IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
+ public MultiSearchRequestDescriptor MaxConcurrentSearches(long? maxConcurrentSearches) => Qs("max_concurrent_searches", maxConcurrentSearches);
+ public MultiSearchRequestDescriptor MaxConcurrentShardRequests(long? maxConcurrentShardRequests) => Qs("max_concurrent_shard_requests", maxConcurrentShardRequests);
+ public MultiSearchRequestDescriptor PreFilterShardSize(long? preFilterShardSize) => Qs("pre_filter_shard_size", preFilterShardSize);
+ public MultiSearchRequestDescriptor RestTotalHitsAsInt(bool? restTotalHitsAsInt = true) => Qs("rest_total_hits_as_int", restTotalHitsAsInt);
+ public MultiSearchRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public MultiSearchRequestDescriptor SearchType(Elastic.Clients.Elasticsearch.SearchType? searchType) => Qs("search_type", searchType);
+ public MultiSearchRequestDescriptor TypedKeys(bool? typedKeys = true) => Qs("typed_keys", typedKeys);
+ public MultiSearchRequestDescriptor Indices(Elastic.Clients.Elasticsearch.Indices? indices)
+ {
+ RouteValues.Optional("index", indices);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+
+ List _items = new();
+ void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (_items is null)
+ return;
+ foreach (var item in _items)
+ {
+ if (item is IStreamSerializable serializable)
+ serializable.Serialize(stream, settings, formatting);
+ }
+ }
+
+ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (_items is null)
+ return;
+ foreach (var item in _items)
+ {
+ if (item is IStreamSerializable serializable)
+ await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
+ }
+ }
+
+ public MultiSearchRequestDescriptor AddSearch(SearchRequestItem search)
+ {
+ _items.Add(search);
+ return this;
+ }
+ }
+
+ public sealed partial class MultiSearchRequestDescriptor : RequestDescriptorBase, IStreamSerializable
+ {
+ internal MultiSearchRequestDescriptor(Action configure) => configure.Invoke(this);
+ public MultiSearchRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlsLookups.NoNamespaceMsearch;
+ protected override HttpMethod HttpMethod => HttpMethod.POST;
+ protected override bool SupportsBody => true;
+ public MultiSearchRequestDescriptor AllowNoIndices(bool? allowNoIndices = true) => Qs("allow_no_indices", allowNoIndices);
+ public MultiSearchRequestDescriptor CcsMinimizeRoundtrips(bool? ccsMinimizeRoundtrips = true) => Qs("ccs_minimize_roundtrips", ccsMinimizeRoundtrips);
+ public MultiSearchRequestDescriptor ExpandWildcards(Elastic.Clients.Elasticsearch.ExpandWildcards? expandWildcards) => Qs("expand_wildcards", expandWildcards);
+ public MultiSearchRequestDescriptor IgnoreThrottled(bool? ignoreThrottled = true) => Qs("ignore_throttled", ignoreThrottled);
+ public MultiSearchRequestDescriptor IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
+ public MultiSearchRequestDescriptor MaxConcurrentSearches(long? maxConcurrentSearches) => Qs("max_concurrent_searches", maxConcurrentSearches);
+ public MultiSearchRequestDescriptor MaxConcurrentShardRequests(long? maxConcurrentShardRequests) => Qs("max_concurrent_shard_requests", maxConcurrentShardRequests);
+ public MultiSearchRequestDescriptor PreFilterShardSize(long? preFilterShardSize) => Qs("pre_filter_shard_size", preFilterShardSize);
+ public MultiSearchRequestDescriptor RestTotalHitsAsInt(bool? restTotalHitsAsInt = true) => Qs("rest_total_hits_as_int", restTotalHitsAsInt);
+ public MultiSearchRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public MultiSearchRequestDescriptor SearchType(Elastic.Clients.Elasticsearch.SearchType? searchType) => Qs("search_type", searchType);
+ public MultiSearchRequestDescriptor TypedKeys(bool? typedKeys = true) => Qs("typed_keys", typedKeys);
+ public MultiSearchRequestDescriptor Indices(Elastic.Clients.Elasticsearch.Indices? indices)
+ {
+ RouteValues.Optional("index", indices);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+
+ List _items = new();
+ void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (_items is null)
+ return;
+ foreach (var item in _items)
+ {
+ if (item is IStreamSerializable serializable)
+ serializable.Serialize(stream, settings, formatting);
+ }
+ }
+
+ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
+ {
+ if (_items is null)
+ return;
+ foreach (var item in _items)
+ {
+ if (item is IStreamSerializable serializable)
+ await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
+ }
+ }
+
+ public MultiSearchRequestDescriptor AddSearch(SearchRequestItem search)
+ {
+ _items.Add(search);
+ return this;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/RangeProperty.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchResponse.g.cs
similarity index 74%
rename from src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/RangeProperty.g.cs
rename to src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchResponse.g.cs
index 078b3be6c51..5483dd4ad8d 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/RangeProperty.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiSearchResponse.g.cs
@@ -15,17 +15,21 @@
//
// ------------------------------------------------
-using Elastic.Transport;
-using System;
+using Elastic.Transport.Products.Elasticsearch;
using System.Collections.Generic;
-using System.Linq.Expressions;
-using System.Text.Json;
using System.Text.Json.Serialization;
#nullable restore
-namespace Elastic.Clients.Elasticsearch.Mapping
+namespace Elastic.Clients.Elasticsearch
{
- public partial class RangeProperty
+ public sealed partial class MultiSearchResponse : ElasticsearchResponseBase
{
+ [JsonInclude]
+ [JsonPropertyName("responses")]
+ public IReadOnlyCollection> Responses { get; init; }
+
+ [JsonInclude]
+ [JsonPropertyName("took")]
+ public long Took { get; init; }
}
}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Client/ElasticsearchClient.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Client/ElasticsearchClient.g.cs
index 371ae9da4e3..09b260ea21e 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Client/ElasticsearchClient.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Client/ElasticsearchClient.g.cs
@@ -1180,6 +1180,48 @@ public Task> MultiGetAsync(Action, MultiGetResponse>(descriptor);
}
+ public MultiSearchResponse MultiSearch(MultiSearchRequest request)
+ {
+ request.BeforeRequest();
+ return DoRequest>(request);
+ }
+
+ public Task> MultiSearchAsync(MultiSearchRequest request, CancellationToken cancellationToken = default)
+ {
+ request.BeforeRequest();
+ return DoRequestAsync>(request, cancellationToken);
+ }
+
+ public MultiSearchResponse MultiSearch()
+ {
+ var descriptor = new MultiSearchRequestDescriptor();
+ descriptor.BeforeRequest();
+ return DoRequest, MultiSearchResponse>(descriptor);
+ }
+
+ public MultiSearchResponse MultiSearch(Action> configureRequest)
+ {
+ var descriptor = new MultiSearchRequestDescriptor();
+ configureRequest?.Invoke(descriptor);
+ descriptor.BeforeRequest();
+ return DoRequest, MultiSearchResponse>(descriptor);
+ }
+
+ public Task> MultiSearchAsync(CancellationToken cancellationToken = default)
+ {
+ var descriptor = new MultiSearchRequestDescriptor();
+ descriptor.BeforeRequest();
+ return DoRequestAsync, MultiSearchResponse>(descriptor);
+ }
+
+ public Task> MultiSearchAsync(Action> configureRequest, CancellationToken cancellationToken = default)
+ {
+ var descriptor = new MultiSearchRequestDescriptor();
+ configureRequest?.Invoke(descriptor);
+ descriptor.BeforeRequest();
+ return DoRequestAsync, MultiSearchResponse>(descriptor);
+ }
+
public OpenPointInTimeResponse OpenPointInTime(OpenPointInTimeRequest request)
{
request.BeforeRequest();
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/DocValuesProperty.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ErrorResponseBase.g.cs
similarity index 78%
rename from src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/DocValuesProperty.g.cs
rename to src/Elastic.Clients.Elasticsearch/_Generated/Types/ErrorResponseBase.g.cs
index a3e9aaa8b2d..8f16f037c59 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/DocValuesProperty.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/ErrorResponseBase.g.cs
@@ -15,7 +15,7 @@
//
// ------------------------------------------------
-using Elastic.Transport;
+using Elastic.Transport.Products.Elasticsearch;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
@@ -23,9 +23,16 @@
using System.Text.Json.Serialization;
#nullable restore
-namespace Elastic.Clients.Elasticsearch.Mapping
+namespace Elastic.Clients.Elasticsearch
{
- public partial class DocValuesProperty
+ public abstract partial class ErrorResponseBase : ElasticsearchResponseBase
{
+ [JsonInclude]
+ [JsonPropertyName("error")]
+ public Elastic.Clients.Elasticsearch.ErrorCause Error { get; init; }
+
+ [JsonInclude]
+ [JsonPropertyName("status")]
+ public int Status { get; init; }
}
}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs
index 8ae3b646814..8aec1febe33 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Properties.g.cs
@@ -286,98 +286,98 @@ private static IProperty DeserializeVariant(string type, ref Utf8JsonReader read
{
switch (type)
{
- case "{dynamic_property}":
- return JsonSerializer.Deserialize(ref reader, options);
- case "match_only_text":
- return JsonSerializer.Deserialize(ref reader, options);
- case "point":
- return JsonSerializer.Deserialize(ref reader, options);
- case "wildcard":
- return JsonSerializer.Deserialize(ref reader, options);
- case "version":
- return JsonSerializer.Deserialize(ref reader, options);
- case "token_count":
- return JsonSerializer.Deserialize(ref reader, options);
- case "shape":
- return JsonSerializer.Deserialize(ref reader, options);
- case "murmur3":
- return JsonSerializer.Deserialize(ref reader, options);
- case "ip":
- return JsonSerializer.Deserialize(ref reader, options);
- case "completion":
- return JsonSerializer.Deserialize(ref reader, options);
- case "geo_shape":
- return JsonSerializer.Deserialize(ref reader, options);
- case "geo_point":
- return JsonSerializer.Deserialize(ref reader, options);
- case "date_range":
- return JsonSerializer.Deserialize(ref reader, options);
- case "double_range":
- return JsonSerializer.Deserialize(ref reader, options);
- case "float_range":
- return JsonSerializer.Deserialize(ref reader, options);
- case "integer_range":
- return JsonSerializer.Deserialize(ref reader, options);
- case "ip_range":
- return JsonSerializer.Deserialize(ref reader, options);
case "long_range":
return JsonSerializer.Deserialize(ref reader, options);
- case "scaled_float":
- return JsonSerializer.Deserialize(ref reader, options);
+ case "ip_range":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "integer_range":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "float_range":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "double_range":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "date_range":
+ return JsonSerializer.Deserialize(ref reader, options);
case "unsigned_long":
return JsonSerializer.Deserialize(ref reader, options);
- case "byte":
- return JsonSerializer.Deserialize(ref reader, options);
case "short":
return JsonSerializer.Deserialize(ref reader, options);
+ case "scaled_float":
+ return JsonSerializer.Deserialize(ref reader, options);
case "long":
return JsonSerializer.Deserialize(ref reader, options);
case "integer":
return JsonSerializer.Deserialize(ref reader, options);
- case "double":
- return JsonSerializer.Deserialize(ref reader, options);
case "half_float":
return JsonSerializer.Deserialize(ref reader, options);
case "float":
return JsonSerializer.Deserialize(ref reader, options);
- case "keyword":
- return JsonSerializer.Deserialize(ref reader, options);
- case "date_nanos":
- return JsonSerializer.Deserialize(ref reader, options);
- case "date":
- return JsonSerializer.Deserialize(ref reader, options);
- case "boolean":
- return JsonSerializer.Deserialize(ref reader, options);
- case "binary":
- return JsonSerializer.Deserialize(ref reader, options);
- case "text":
- return JsonSerializer.Deserialize(ref reader, options);
- case "search_as_you_type":
- return JsonSerializer.Deserialize(ref reader, options);
- case "nested":
- return JsonSerializer.Deserialize(ref reader, options);
- case "object":
- return JsonSerializer.Deserialize(ref reader, options);
- case "aggregate_metric_double":
- return JsonSerializer.Deserialize(ref reader, options);
- case "dense_vector":
- return JsonSerializer.Deserialize(ref reader, options);
+ case "double":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "byte":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "shape":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "point":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "geo_shape":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "geo_point":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "token_count":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "murmur3":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "ip":
+ return JsonSerializer.Deserialize(ref reader, options);
case "histogram":
return JsonSerializer.Deserialize(ref reader, options);
case "alias":
return JsonSerializer.Deserialize(ref reader, options);
case "constant_keyword":
return JsonSerializer.Deserialize(ref reader, options);
+ case "completion":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "object":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "nested":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "flattened":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "dense_vector":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "aggregate_metric_double":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "date":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "date_nanos":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "wildcard":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "version":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "text":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "search_as_you_type":
+ return JsonSerializer.Deserialize(ref reader, options);
case "rank_features":
return JsonSerializer.Deserialize(ref reader, options);
case "rank_feature":
return JsonSerializer.Deserialize(ref reader, options);
case "percolator":
return JsonSerializer.Deserialize(ref reader, options);
+ case "match_only_text":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "keyword":
+ return JsonSerializer.Deserialize(ref reader, options);
case "join":
return JsonSerializer.Deserialize(ref reader, options);
- case "flattened":
- return JsonSerializer.Deserialize(ref reader, options);
+ case "{dynamic_property}":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "boolean":
+ return JsonSerializer.Deserialize(ref reader, options);
+ case "binary":
+ return JsonSerializer.Deserialize(ref reader, options);
default:
throw new JsonException("Encounted an unknown variant type which could not be deserialised.");
}
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/CoreProperty.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/MultiSearchItem.g.cs
similarity index 86%
rename from src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/CoreProperty.g.cs
rename to src/Elastic.Clients.Elasticsearch/_Generated/Types/MultiSearchItem.g.cs
index 905c594e387..38d29b54f45 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/CoreProperty.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/MultiSearchItem.g.cs
@@ -15,7 +15,6 @@
//
// ------------------------------------------------
-using Elastic.Transport;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
@@ -23,9 +22,12 @@
using System.Text.Json.Serialization;
#nullable restore
-namespace Elastic.Clients.Elasticsearch.Mapping
+namespace Elastic.Clients.Elasticsearch
{
- public partial class CoreProperty
+ public partial class MultiSearchItem : ResponseBody
{
+ [JsonInclude]
+ [JsonPropertyName("status")]
+ public int? Status { get; init; }
}
}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/MultisearchBody.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/MultisearchBody.g.cs
new file mode 100644
index 00000000000..18294393298
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/MultisearchBody.g.cs
@@ -0,0 +1,1793 @@
+// Licensed to Elasticsearch B.V under one or more agreements.
+// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
+// See the LICENSE file in the project root for more information.
+//
+// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
+// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
+// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
+// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
+// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
+// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
+// ------------------------------------------------
+//
+// This file is automatically generated.
+// Please do not edit these files manually.
+//
+// ------------------------------------------------
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+#nullable restore
+namespace Elastic.Clients.Elasticsearch
+{
+ public partial class MultisearchBody
+ {
+ [JsonInclude]
+ [JsonPropertyName("_source")]
+ public Elastic.Clients.Elasticsearch.SourceConfig? Source { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("aggregations")]
+ public Dictionary? Aggregations { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("collapse")]
+ public Elastic.Clients.Elasticsearch.FieldCollapse? Collapse { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("docvalue_fields")]
+ public IEnumerable? DocvalueFields { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("explain")]
+ public bool? Explain { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("fields")]
+ public IEnumerable? Fields { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("from")]
+ public int? From { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("highlight")]
+ public Elastic.Clients.Elasticsearch.Highlight? Highlight { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("indices_boost")]
+ public IEnumerable>? IndicesBoost { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("min_score")]
+ public double? MinScore { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("pit")]
+ public Elastic.Clients.Elasticsearch.PointInTimeReference? Pit { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("post_filter")]
+ public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer? PostFilter { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("profile")]
+ public bool? Profile { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("query")]
+ public Elastic.Clients.Elasticsearch.QueryDsl.QueryContainer? Query { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("rescore")]
+ public IEnumerable? Rescore { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("runtime_mappings")]
+ public Dictionary>? RuntimeMappings { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("script_fields")]
+ public Dictionary? ScriptFields { get; set; }
+
+ [JsonInclude]
+ [JsonPropertyName("search_after")]
+ public IEnumerable