diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlLookup.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlLookup.g.cs
index 259cf062157..42f13b4e636 100644
--- a/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlLookup.g.cs
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/ApiUrlLookup.g.cs
@@ -28,13 +28,23 @@ internal static class ApiUrlLookup
internal static ApiUrls NoNamespaceBulk = new ApiUrls(new[] { "/_bulk", "/{index}/_bulk" });
internal static ApiUrls NoNamespaceClearScroll = new ApiUrls(new[] { "/_search/scroll" });
internal static ApiUrls NoNamespaceClosePointInTime = new ApiUrls(new[] { "/_pit" });
+ internal static ApiUrls ClusterAllocationExplain = new ApiUrls(new[] { "/_cluster/allocation/explain" });
+ internal static ApiUrls ClusterStats = new ApiUrls(new[] { "/_cluster/stats", "/_cluster/stats/nodes/{node_id}" });
+ internal static ApiUrls ClusterGetSettings = new ApiUrls(new[] { "/_cluster/settings" });
internal static ApiUrls ClusterHealth = new ApiUrls(new[] { "/_cluster/health", "/_cluster/health/{index}" });
+ internal static ApiUrls ClusterPendingTasks = new ApiUrls(new[] { "/_cluster/pending_tasks" });
internal static ApiUrls NoNamespaceCount = new ApiUrls(new[] { "/_count", "/{index}/_count" });
internal static ApiUrls NoNamespaceCreate = new ApiUrls(new[] { "/{index}/_create/{id}" });
+ internal static ApiUrls DanglingIndicesListDanglingIndices = new ApiUrls(new[] { "/_dangling" });
internal static ApiUrls NoNamespaceDeleteByQuery = new ApiUrls(new[] { "/{index}/_delete_by_query" });
internal static ApiUrls NoNamespaceDeleteByQueryRethrottle = new ApiUrls(new[] { "/_delete_by_query/{task_id}/_rethrottle" });
internal static ApiUrls NoNamespaceDelete = new ApiUrls(new[] { "/{index}/_doc/{id}" });
internal static ApiUrls NoNamespaceDeleteScript = new ApiUrls(new[] { "/_scripts/{id}" });
+ internal static ApiUrls EnrichDeletePolicy = new ApiUrls(new[] { "/_enrich/policy/{name}" });
+ internal static ApiUrls EnrichStats = new ApiUrls(new[] { "/_enrich/_stats" });
+ internal static ApiUrls EnrichExecutePolicy = new ApiUrls(new[] { "/_enrich/policy/{name}/_execute" });
+ internal static ApiUrls EnrichGetPolicy = new ApiUrls(new[] { "/_enrich/policy/{name}", "/_enrich/policy" });
+ internal static ApiUrls EnrichPutPolicy = new ApiUrls(new[] { "/_enrich/policy/{name}" });
internal static ApiUrls EqlDelete = new ApiUrls(new[] { "/_eql/search/{id}" });
internal static ApiUrls EqlGet = new ApiUrls(new[] { "/_eql/search/{id}" });
internal static ApiUrls EqlSearch = new ApiUrls(new[] { "/{index}/_eql/search" });
@@ -48,6 +58,7 @@ internal static class ApiUrlLookup
internal static ApiUrls NoNamespaceGetScriptLanguages = new ApiUrls(new[] { "/_script_language" });
internal static ApiUrls NoNamespaceGetScript = new ApiUrls(new[] { "/_scripts/{id}" });
internal static ApiUrls NoNamespaceGetSource = new ApiUrls(new[] { "/{index}/_source/{id}" });
+ internal static ApiUrls GraphExplore = new ApiUrls(new[] { "/{index}/_graph/explore" });
internal static ApiUrls IndexManagementClone = new ApiUrls(new[] { "/{index}/_clone/{target}" });
internal static ApiUrls IndexManagementClose = new ApiUrls(new[] { "/{index}/_close" });
internal static ApiUrls IndexManagementCreateDataStream = new ApiUrls(new[] { "/_data_stream/{name}" });
@@ -95,15 +106,18 @@ internal static class ApiUrlLookup
internal static ApiUrls NoNamespaceMget = new ApiUrls(new[] { "/_mget", "/{index}/_mget" });
internal static ApiUrls NoNamespaceMsearch = new ApiUrls(new[] { "/_msearch", "/{index}/_msearch" });
internal static ApiUrls NoNamespaceMsearchTemplate = new ApiUrls(new[] { "/_msearch/template", "/{index}/_msearch/template" });
+ internal static ApiUrls NoNamespaceMtermvectors = new ApiUrls(new[] { "/_mtermvectors", "/{index}/_mtermvectors" });
internal static ApiUrls NoNamespaceOpenPointInTime = new ApiUrls(new[] { "/{index}/_pit" });
internal static ApiUrls NoNamespacePing = new ApiUrls(new[] { "/" });
internal static ApiUrls NoNamespacePutScript = new ApiUrls(new[] { "/_scripts/{id}", "/_scripts/{id}/{context}" });
internal static ApiUrls NoNamespaceRankEval = new ApiUrls(new[] { "/_rank_eval", "/{index}/_rank_eval" });
internal static ApiUrls NoNamespaceReindex = new ApiUrls(new[] { "/_reindex" });
internal static ApiUrls NoNamespaceReindexRethrottle = new ApiUrls(new[] { "/_reindex/{task_id}/_rethrottle" });
+ internal static ApiUrls NoNamespaceRenderSearchTemplate = new ApiUrls(new[] { "/_render/template", "/_render/template/{id}" });
internal static ApiUrls NoNamespaceScroll = new ApiUrls(new[] { "/_search/scroll" });
internal static ApiUrls NoNamespaceSearch = new ApiUrls(new[] { "/_search", "/{index}/_search" });
internal static ApiUrls NoNamespaceSearchShards = new ApiUrls(new[] { "/_search_shards", "/{index}/_search_shards" });
+ internal static ApiUrls NoNamespaceSearchTemplate = new ApiUrls(new[] { "/_search/template", "/{index}/_search/template" });
internal static ApiUrls SqlClearCursor = new ApiUrls(new[] { "/_sql/close" });
internal static ApiUrls SqlDeleteAsync = new ApiUrls(new[] { "/_sql/async/delete/{id}" });
internal static ApiUrls SqlGetAsync = new ApiUrls(new[] { "/_sql/async/{id}" });
@@ -113,6 +127,7 @@ internal static class ApiUrlLookup
internal static ApiUrls TasksGet = new ApiUrls(new[] { "/_tasks/{task_id}" });
internal static ApiUrls TasksList = new ApiUrls(new[] { "/_tasks" });
internal static ApiUrls NoNamespaceTermsEnum = new ApiUrls(new[] { "/{index}/_terms_enum" });
+ internal static ApiUrls NoNamespaceTermvectors = new ApiUrls(new[] { "/{index}/_termvectors/{id}", "/{index}/_termvectors" });
internal static ApiUrls NoNamespaceUpdateByQuery = new ApiUrls(new[] { "/{index}/_update_by_query" });
internal static ApiUrls NoNamespaceUpdateByQueryRethrottle = new ApiUrls(new[] { "/_update_by_query/{task_id}/_rethrottle" });
internal static ApiUrls NoNamespaceUpdate = new ApiUrls(new[] { "/{index}/_update/{id}" });
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainRequest.g.cs
new file mode 100644
index 00000000000..a39376c01ea
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainRequest.g.cs
@@ -0,0 +1,183 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed class AllocationExplainRequestParameters : RequestParameters
+{
+ ///
+ /// If true, returns information about disk usage and shard sizes.
+ ///
+ public bool? IncludeDiskInfo { get => Q("include_disk_info"); set => Q("include_disk_info", value); }
+
+ ///
+ /// If true, returns YES decisions in explanation.
+ ///
+ public bool? IncludeYesDecisions { get => Q("include_yes_decisions"); set => Q("include_yes_decisions", value); }
+}
+
+///
+/// Provides explanations for shard allocations in the cluster.
+///
+public sealed partial class AllocationExplainRequest : PlainRequest
+{
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterAllocationExplain;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ ///
+ /// If true, returns information about disk usage and shard sizes.
+ ///
+ [JsonIgnore]
+ public bool? IncludeDiskInfo { get => Q("include_disk_info"); set => Q("include_disk_info", value); }
+
+ ///
+ /// If true, returns YES decisions in explanation.
+ ///
+ [JsonIgnore]
+ public bool? IncludeYesDecisions { get => Q("include_yes_decisions"); set => Q("include_yes_decisions", value); }
+
+ ///
+ /// Specifies the node ID or the name of the node to only explain a shard that is currently located on the specified node.
+ ///
+ [JsonInclude, JsonPropertyName("current_node")]
+ public string? CurrentNode { get; set; }
+
+ ///
+ /// Specifies the name of the index that you would like an explanation for.
+ ///
+ [JsonInclude, JsonPropertyName("index")]
+ public Elastic.Clients.Elasticsearch.IndexName? Index { get; set; }
+
+ ///
+ /// If true, returns explanation for the primary shard for the given shard ID.
+ ///
+ [JsonInclude, JsonPropertyName("primary")]
+ public bool? Primary { get; set; }
+
+ ///
+ /// Specifies the ID of the shard that you would like an explanation for.
+ ///
+ [JsonInclude, JsonPropertyName("shard")]
+ public int? Shard { get; set; }
+}
+
+///
+/// Provides explanations for shard allocations in the cluster.
+///
+public sealed partial class AllocationExplainRequestDescriptor : RequestDescriptor
+{
+ internal AllocationExplainRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public AllocationExplainRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterAllocationExplain;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public AllocationExplainRequestDescriptor IncludeDiskInfo(bool? includeDiskInfo = true) => Qs("include_disk_info", includeDiskInfo);
+ public AllocationExplainRequestDescriptor IncludeYesDecisions(bool? includeYesDecisions = true) => Qs("include_yes_decisions", includeYesDecisions);
+
+ private string? CurrentNodeValue { get; set; }
+ private Elastic.Clients.Elasticsearch.IndexName? IndexValue { get; set; }
+ private bool? PrimaryValue { get; set; }
+ private int? ShardValue { get; set; }
+
+ ///
+ /// Specifies the node ID or the name of the node to only explain a shard that is currently located on the specified node.
+ ///
+ public AllocationExplainRequestDescriptor CurrentNode(string? currentNode)
+ {
+ CurrentNodeValue = currentNode;
+ return Self;
+ }
+
+ ///
+ /// Specifies the name of the index that you would like an explanation for.
+ ///
+ public AllocationExplainRequestDescriptor Index(Elastic.Clients.Elasticsearch.IndexName? index)
+ {
+ IndexValue = index;
+ return Self;
+ }
+
+ ///
+ /// If true, returns explanation for the primary shard for the given shard ID.
+ ///
+ public AllocationExplainRequestDescriptor Primary(bool? primary = true)
+ {
+ PrimaryValue = primary;
+ return Self;
+ }
+
+ ///
+ /// Specifies the ID of the shard that you would like an explanation for.
+ ///
+ public AllocationExplainRequestDescriptor Shard(int? shard)
+ {
+ ShardValue = shard;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (!string.IsNullOrEmpty(CurrentNodeValue))
+ {
+ writer.WritePropertyName("current_node");
+ writer.WriteStringValue(CurrentNodeValue);
+ }
+
+ if (IndexValue is not null)
+ {
+ writer.WritePropertyName("index");
+ JsonSerializer.Serialize(writer, IndexValue, options);
+ }
+
+ if (PrimaryValue.HasValue)
+ {
+ writer.WritePropertyName("primary");
+ writer.WriteBooleanValue(PrimaryValue.Value);
+ }
+
+ if (ShardValue.HasValue)
+ {
+ writer.WritePropertyName("shard");
+ writer.WriteNumberValue(ShardValue.Value);
+ }
+
+ writer.WriteEndObject();
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainResponse.g.cs
new file mode 100644
index 00000000000..e3447a5c421
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/AllocationExplainResponse.g.cs
@@ -0,0 +1,80 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed partial class AllocationExplainResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("allocate_explanation")]
+ public string? AllocateExplanation { get; init; }
+ [JsonInclude, JsonPropertyName("allocation_delay")]
+ public Elastic.Clients.Elasticsearch.Duration? AllocationDelay { get; init; }
+ [JsonInclude, JsonPropertyName("allocation_delay_in_millis")]
+ public long? AllocationDelayInMillis { get; init; }
+ [JsonInclude, JsonPropertyName("can_allocate")]
+ public Elastic.Clients.Elasticsearch.Cluster.Decision? CanAllocate { get; init; }
+ [JsonInclude, JsonPropertyName("can_move_to_other_node")]
+ public Elastic.Clients.Elasticsearch.Cluster.Decision? CanMoveToOtherNode { get; init; }
+ [JsonInclude, JsonPropertyName("can_rebalance_cluster")]
+ public Elastic.Clients.Elasticsearch.Cluster.Decision? CanRebalanceCluster { get; init; }
+ [JsonInclude, JsonPropertyName("can_rebalance_cluster_decisions")]
+ public IReadOnlyCollection? CanRebalanceClusterDecisions { get; init; }
+ [JsonInclude, JsonPropertyName("can_rebalance_to_other_node")]
+ public Elastic.Clients.Elasticsearch.Cluster.Decision? CanRebalanceToOtherNode { get; init; }
+ [JsonInclude, JsonPropertyName("can_remain_decisions")]
+ public IReadOnlyCollection? CanRemainDecisions { get; init; }
+ [JsonInclude, JsonPropertyName("can_remain_on_current_node")]
+ public Elastic.Clients.Elasticsearch.Cluster.Decision? CanRemainOnCurrentNode { get; init; }
+ [JsonInclude, JsonPropertyName("cluster_info")]
+ public Elastic.Clients.Elasticsearch.Cluster.ClusterInfo? ClusterInfo { get; init; }
+ [JsonInclude, JsonPropertyName("configured_delay")]
+ public Elastic.Clients.Elasticsearch.Duration? ConfiguredDelay { get; init; }
+ [JsonInclude, JsonPropertyName("configured_delay_in_millis")]
+ public long? ConfiguredDelayInMillis { get; init; }
+ [JsonInclude, JsonPropertyName("current_node")]
+ public Elastic.Clients.Elasticsearch.Cluster.CurrentNode? CurrentNode { get; init; }
+ [JsonInclude, JsonPropertyName("current_state")]
+ public string CurrentState { get; init; }
+ [JsonInclude, JsonPropertyName("index")]
+ public string Index { get; init; }
+ [JsonInclude, JsonPropertyName("move_explanation")]
+ public string? MoveExplanation { get; init; }
+ [JsonInclude, JsonPropertyName("node_allocation_decisions")]
+ public IReadOnlyCollection? NodeAllocationDecisions { get; init; }
+ [JsonInclude, JsonPropertyName("note")]
+ public string? Note { get; init; }
+ [JsonInclude, JsonPropertyName("primary")]
+ public bool Primary { get; init; }
+ [JsonInclude, JsonPropertyName("rebalance_explanation")]
+ public string? RebalanceExplanation { get; init; }
+ [JsonInclude, JsonPropertyName("remaining_delay")]
+ public Elastic.Clients.Elasticsearch.Duration? RemainingDelay { get; init; }
+ [JsonInclude, JsonPropertyName("remaining_delay_in_millis")]
+ public long? RemainingDelayInMillis { get; init; }
+ [JsonInclude, JsonPropertyName("shard")]
+ public int Shard { get; init; }
+ [JsonInclude, JsonPropertyName("unassigned_info")]
+ public Elastic.Clients.Elasticsearch.Cluster.UnassignedInformation? UnassignedInfo { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsRequest.g.cs
new file mode 100644
index 00000000000..18ebd7dd97d
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsRequest.g.cs
@@ -0,0 +1,106 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed class ClusterStatsRequestParameters : RequestParameters
+{
+ ///
+ /// Return settings in flat format (default: false)
+ ///
+ public bool? FlatSettings { get => Q("flat_settings"); set => Q("flat_settings", value); }
+
+ ///
+ /// Period to wait for each node to respond. If a node does not respond before its timeout expires, the response does not include its stats. However, timed out nodes are included in the response’s _nodes.failed property. Defaults to no timeout.
+ ///
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+}
+
+///
+/// Returns high-level overview of cluster statistics.
+///
+public sealed partial class ClusterStatsRequest : PlainRequest
+{
+ public ClusterStatsRequest()
+ {
+ }
+
+ public ClusterStatsRequest(Elastic.Clients.Elasticsearch.NodeIds? node_id) : base(r => r.Optional("node_id", node_id))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterStats;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ ///
+ /// Return settings in flat format (default: false)
+ ///
+ [JsonIgnore]
+ public bool? FlatSettings { get => Q("flat_settings"); set => Q("flat_settings", value); }
+
+ ///
+ /// Period to wait for each node to respond. If a node does not respond before its timeout expires, the response does not include its stats. However, timed out nodes are included in the response’s _nodes.failed property. Defaults to no timeout.
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+}
+
+///
+/// Returns high-level overview of cluster statistics.
+///
+public sealed partial class ClusterStatsRequestDescriptor : RequestDescriptor
+{
+ internal ClusterStatsRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public ClusterStatsRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterStats;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ public ClusterStatsRequestDescriptor FlatSettings(bool? flatSettings = true) => Qs("flat_settings", flatSettings);
+ public ClusterStatsRequestDescriptor Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
+
+ public ClusterStatsRequestDescriptor NodeId(Elastic.Clients.Elasticsearch.NodeIds? node_id)
+ {
+ RouteValues.Optional("node_id", node_id);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsResponse.g.cs
new file mode 100644
index 00000000000..84789344bcc
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/ClusterStatsResponse.g.cs
@@ -0,0 +1,67 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed partial class ClusterStatsResponse : ElasticsearchResponse
+{
+ ///
+ /// Name of the cluster, based on the Cluster name setting setting.
+ ///
+ [JsonInclude, JsonPropertyName("cluster_name")]
+ public string ClusterName { get; init; }
+
+ ///
+ /// Unique identifier for the cluster.
+ ///
+ [JsonInclude, JsonPropertyName("cluster_uuid")]
+ public string ClusterUuid { get; init; }
+
+ ///
+ /// Contains statistics about indices with shards assigned to selected nodes.
+ ///
+ [JsonInclude, JsonPropertyName("indices")]
+ public Elastic.Clients.Elasticsearch.Cluster.ClusterIndices Indices { get; init; }
+
+ ///
+ /// Contains statistics about nodes selected by the request’s node filters.
+ ///
+ [JsonInclude, JsonPropertyName("nodes")]
+ public Elastic.Clients.Elasticsearch.Cluster.ClusterNodes Nodes { get; init; }
+ [JsonInclude, JsonPropertyName("_nodes")]
+ public Elastic.Clients.Elasticsearch.NodeStatistics? NodeStats { get; init; }
+
+ ///
+ /// Health status of the cluster, based on the state of its primary and replica shards.
+ ///
+ [JsonInclude, JsonPropertyName("status")]
+ public Elastic.Clients.Elasticsearch.HealthStatus Status { get; init; }
+
+ ///
+ /// Unix timestamp, in milliseconds, of the last time the cluster statistics were refreshed.
+ ///
+ [JsonInclude, JsonPropertyName("timestamp")]
+ public long Timestamp { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsRequest.g.cs
new file mode 100644
index 00000000000..a6fc30853a1
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsRequest.g.cs
@@ -0,0 +1,116 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed class GetClusterSettingsRequestParameters : RequestParameters
+{
+ ///
+ /// Return settings in flat format (default: false)
+ ///
+ public bool? FlatSettings { get => Q("flat_settings"); set => Q("flat_settings", value); }
+
+ ///
+ /// Whether to return all default clusters setting.
+ ///
+ public bool? IncludeDefaults { get => Q("include_defaults"); set => Q("include_defaults", value); }
+
+ ///
+ /// Explicit operation timeout for connection to master node
+ ///
+ public Elastic.Clients.Elasticsearch.Duration? MasterTimeout { get => Q("master_timeout"); set => Q("master_timeout", value); }
+
+ ///
+ /// Explicit operation timeout
+ ///
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+}
+
+///
+/// Returns cluster settings.
+///
+public sealed partial class GetClusterSettingsRequest : PlainRequest
+{
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterGetSettings;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ ///
+ /// Return settings in flat format (default: false)
+ ///
+ [JsonIgnore]
+ public bool? FlatSettings { get => Q("flat_settings"); set => Q("flat_settings", value); }
+
+ ///
+ /// Whether to return all default clusters setting.
+ ///
+ [JsonIgnore]
+ public bool? IncludeDefaults { get => Q("include_defaults"); set => Q("include_defaults", value); }
+
+ ///
+ /// Explicit operation timeout for connection to master node
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Duration? MasterTimeout { get => Q("master_timeout"); set => Q("master_timeout", value); }
+
+ ///
+ /// Explicit operation timeout
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+}
+
+///
+/// Returns cluster settings.
+///
+public sealed partial class GetClusterSettingsRequestDescriptor : RequestDescriptor
+{
+ internal GetClusterSettingsRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public GetClusterSettingsRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterGetSettings;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ public GetClusterSettingsRequestDescriptor FlatSettings(bool? flatSettings = true) => Qs("flat_settings", flatSettings);
+ public GetClusterSettingsRequestDescriptor IncludeDefaults(bool? includeDefaults = true) => Qs("include_defaults", includeDefaults);
+ public GetClusterSettingsRequestDescriptor MasterTimeout(Elastic.Clients.Elasticsearch.Duration? masterTimeout) => Qs("master_timeout", masterTimeout);
+ public GetClusterSettingsRequestDescriptor Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsResponse.g.cs
new file mode 100644
index 00000000000..85288a8ed06
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/GetClusterSettingsResponse.g.cs
@@ -0,0 +1,36 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed partial class GetClusterSettingsResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("defaults")]
+ public IReadOnlyDictionary? Defaults { get; init; }
+ [JsonInclude, JsonPropertyName("persistent")]
+ public IReadOnlyDictionary Persistent { get; init; }
+ [JsonInclude, JsonPropertyName("transient")]
+ public IReadOnlyDictionary Transient { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksRequest.g.cs
new file mode 100644
index 00000000000..38d8634049c
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksRequest.g.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.
+//
+// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
+// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
+// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
+// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
+// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
+// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
+// ------------------------------------------------
+//
+// This file is automatically generated.
+// Please do not edit these files manually.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed class PendingTasksRequestParameters : RequestParameters
+{
+ ///
+ /// Return local information, do not retrieve the state from master node (default: false)
+ ///
+ public bool? Local { get => Q("local"); set => Q("local", value); }
+
+ ///
+ /// Specify timeout for connection to master
+ ///
+ public Elastic.Clients.Elasticsearch.Duration? MasterTimeout { get => Q("master_timeout"); set => Q("master_timeout", value); }
+}
+
+///
+/// Returns a list of any cluster-level changes (e.g. create index, update mapping,
allocate or fail shard) which have not yet been executed.
+///
+public sealed partial class PendingTasksRequest : PlainRequest
+{
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterPendingTasks;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ ///
+ /// Return local information, do not retrieve the state from master node (default: false)
+ ///
+ [JsonIgnore]
+ public bool? Local { get => Q("local"); set => Q("local", value); }
+
+ ///
+ /// Specify timeout for connection to master
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Duration? MasterTimeout { get => Q("master_timeout"); set => Q("master_timeout", value); }
+}
+
+///
+/// Returns a list of any cluster-level changes (e.g. create index, update mapping,
allocate or fail shard) which have not yet been executed.
+///
+public sealed partial class PendingTasksRequestDescriptor : RequestDescriptor
+{
+ internal PendingTasksRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public PendingTasksRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.ClusterPendingTasks;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ public PendingTasksRequestDescriptor Local(bool? local = true) => Qs("local", local);
+ public PendingTasksRequestDescriptor MasterTimeout(Elastic.Clients.Elasticsearch.Duration? masterTimeout) => Qs("master_timeout", masterTimeout);
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksResponse.g.cs
new file mode 100644
index 00000000000..6dc438ee074
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Cluster/PendingTasksResponse.g.cs
@@ -0,0 +1,32 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Cluster;
+
+public sealed partial class PendingTasksResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("tasks")]
+ public IReadOnlyCollection Tasks { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesRequest.g.cs
new file mode 100644
index 00000000000..c4f17496111
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesRequest.g.cs
@@ -0,0 +1,68 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.DanglingIndices;
+
+public sealed class ListDanglingIndicesRequestParameters : RequestParameters
+{
+}
+
+///
+/// Returns all dangling indices.
+///
+public sealed partial class ListDanglingIndicesRequest : PlainRequest
+{
+ internal override ApiUrls ApiUrls => ApiUrlLookup.DanglingIndicesListDanglingIndices;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+}
+
+///
+/// Returns all dangling indices.
+///
+public sealed partial class ListDanglingIndicesRequestDescriptor : RequestDescriptor
+{
+ internal ListDanglingIndicesRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public ListDanglingIndicesRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.DanglingIndicesListDanglingIndices;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesResponse.g.cs
new file mode 100644
index 00000000000..f961eabd340
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/DanglingIndices/ListDanglingIndicesResponse.g.cs
@@ -0,0 +1,32 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.DanglingIndices;
+
+public sealed partial class ListDanglingIndicesResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("dangling_indices")]
+ public IReadOnlyCollection DanglingIndices { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyRequest.g.cs
new file mode 100644
index 00000000000..69924cb663a
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyRequest.g.cs
@@ -0,0 +1,82 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed class DeletePolicyRequestParameters : RequestParameters
+{
+}
+
+///
+/// Deletes an existing enrich policy and its enrich index.
+///
+public sealed partial class DeletePolicyRequest : PlainRequest
+{
+ public DeletePolicyRequest(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichDeletePolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.DELETE;
+
+ internal override bool SupportsBody => false;
+}
+
+///
+/// Deletes an existing enrich policy and its enrich index.
+///
+public sealed partial class DeletePolicyRequestDescriptor : RequestDescriptor
+{
+ internal DeletePolicyRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public DeletePolicyRequestDescriptor(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal DeletePolicyRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichDeletePolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.DELETE;
+
+ internal override bool SupportsBody => false;
+
+ public DeletePolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Name name)
+ {
+ RouteValues.Required("name", name);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyResponse.g.cs
new file mode 100644
index 00000000000..ae3a5864288
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/DeletePolicyResponse.g.cs
@@ -0,0 +1,35 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed partial class DeletePolicyResponse : ElasticsearchResponse
+{
+ ///
+ /// For a successful response, this value is always true. On failure, an exception is returned instead.
+ ///
+ [JsonInclude, JsonPropertyName("acknowledged")]
+ public bool Acknowledged { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsRequest.g.cs
new file mode 100644
index 00000000000..08ca244e71a
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsRequest.g.cs
@@ -0,0 +1,68 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed class EnrichStatsRequestParameters : RequestParameters
+{
+}
+
+///
+/// Gets enrich coordinator statistics and information about enrich policies that are currently executing.
+///
+public sealed partial class EnrichStatsRequest : PlainRequest
+{
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichStats;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+}
+
+///
+/// Gets enrich coordinator statistics and information about enrich policies that are currently executing.
+///
+public sealed partial class EnrichStatsRequestDescriptor : RequestDescriptor
+{
+ internal EnrichStatsRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public EnrichStatsRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichStats;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsResponse.g.cs
new file mode 100644
index 00000000000..77a52178f81
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/EnrichStatsResponse.g.cs
@@ -0,0 +1,36 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed partial class EnrichStatsResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("cache_stats")]
+ public IReadOnlyCollection? CacheStats { get; init; }
+ [JsonInclude, JsonPropertyName("coordinator_stats")]
+ public IReadOnlyCollection CoordinatorStats { get; init; }
+ [JsonInclude, JsonPropertyName("executing_policies")]
+ public IReadOnlyCollection ExecutingPolicies { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyRequest.g.cs
new file mode 100644
index 00000000000..582cbc2ef9f
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyRequest.g.cs
@@ -0,0 +1,94 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed class ExecutePolicyRequestParameters : RequestParameters
+{
+ ///
+ /// Should the request should block until the execution is complete.
+ ///
+ public bool? WaitForCompletion { get => Q("wait_for_completion"); set => Q("wait_for_completion", value); }
+}
+
+///
+/// Creates the enrich index for an existing enrich policy.
+///
+public sealed partial class ExecutePolicyRequest : PlainRequest
+{
+ public ExecutePolicyRequest(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichExecutePolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.PUT;
+
+ internal override bool SupportsBody => false;
+
+ ///
+ /// Should the request should block until the execution is complete.
+ ///
+ [JsonIgnore]
+ public bool? WaitForCompletion { get => Q("wait_for_completion"); set => Q("wait_for_completion", value); }
+}
+
+///
+/// Creates the enrich index for an existing enrich policy.
+///
+public sealed partial class ExecutePolicyRequestDescriptor : RequestDescriptor
+{
+ internal ExecutePolicyRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public ExecutePolicyRequestDescriptor(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal ExecutePolicyRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichExecutePolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.PUT;
+
+ internal override bool SupportsBody => false;
+
+ public ExecutePolicyRequestDescriptor WaitForCompletion(bool? waitForCompletion = true) => Qs("wait_for_completion", waitForCompletion);
+
+ public ExecutePolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Name name)
+ {
+ RouteValues.Required("name", name);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyResponse.g.cs
new file mode 100644
index 00000000000..f6300228727
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/ExecutePolicyResponse.g.cs
@@ -0,0 +1,34 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed partial class ExecutePolicyResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("status")]
+ public Elastic.Clients.Elasticsearch.Enrich.ExecuteEnrichPolicyStatus Status { get; init; }
+ [JsonInclude, JsonPropertyName("task_id")]
+ public Elastic.Clients.Elasticsearch.TaskId? TaskId { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyRequest.g.cs
new file mode 100644
index 00000000000..d196b9e4761
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyRequest.g.cs
@@ -0,0 +1,82 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed class GetPolicyRequestParameters : RequestParameters
+{
+}
+
+///
+/// Gets information about an enrich policy.
+///
+public sealed partial class GetPolicyRequest : PlainRequest
+{
+ public GetPolicyRequest()
+ {
+ }
+
+ public GetPolicyRequest(Elastic.Clients.Elasticsearch.Names? name) : base(r => r.Optional("name", name))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichGetPolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+}
+
+///
+/// Gets information about an enrich policy.
+///
+public sealed partial class GetPolicyRequestDescriptor : RequestDescriptor
+{
+ internal GetPolicyRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public GetPolicyRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichGetPolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.GET;
+
+ internal override bool SupportsBody => false;
+
+ public GetPolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Names? name)
+ {
+ RouteValues.Optional("name", name);
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyResponse.g.cs
new file mode 100644
index 00000000000..f829ce8e150
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/GetPolicyResponse.g.cs
@@ -0,0 +1,32 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed partial class GetPolicyResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("policies")]
+ public IReadOnlyCollection Policies { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyRequest.g.cs
new file mode 100644
index 00000000000..ac7fee98ac6
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyRequest.g.cs
@@ -0,0 +1,385 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed class PutPolicyRequestParameters : RequestParameters
+{
+}
+
+///
+/// Creates a new enrich policy.
+///
+public sealed partial class PutPolicyRequest : PlainRequest
+{
+ public PutPolicyRequest(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichPutPolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.PUT;
+
+ internal override bool SupportsBody => true;
+
+ [JsonInclude, JsonPropertyName("geo_match")]
+ public Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? GeoMatch { get; set; }
+ [JsonInclude, JsonPropertyName("match")]
+ public Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? Match { get; set; }
+ [JsonInclude, JsonPropertyName("range")]
+ public Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? Range { get; set; }
+}
+
+///
+/// Creates a new enrich policy.
+///
+public sealed partial class PutPolicyRequestDescriptor : RequestDescriptor, PutPolicyRequestParameters>
+{
+ internal PutPolicyRequestDescriptor(Action> configure) => configure.Invoke(this);
+
+ public PutPolicyRequestDescriptor(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal PutPolicyRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichPutPolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.PUT;
+
+ internal override bool SupportsBody => true;
+
+ public PutPolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Name name)
+ {
+ RouteValues.Required("name", name);
+ return Self;
+ }
+
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? GeoMatchValue { get; set; }
+ private EnrichPolicyDescriptor GeoMatchDescriptor { get; set; }
+ private Action> GeoMatchDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? MatchValue { get; set; }
+ private EnrichPolicyDescriptor MatchDescriptor { get; set; }
+ private Action> MatchDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? RangeValue { get; set; }
+ private EnrichPolicyDescriptor RangeDescriptor { get; set; }
+ private Action> RangeDescriptorAction { get; set; }
+
+ public PutPolicyRequestDescriptor GeoMatch(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? geoMatch)
+ {
+ GeoMatchDescriptor = null;
+ GeoMatchDescriptorAction = null;
+ GeoMatchValue = geoMatch;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor GeoMatch(EnrichPolicyDescriptor descriptor)
+ {
+ GeoMatchValue = null;
+ GeoMatchDescriptorAction = null;
+ GeoMatchDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor GeoMatch(Action> configure)
+ {
+ GeoMatchValue = null;
+ GeoMatchDescriptor = null;
+ GeoMatchDescriptorAction = configure;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? match)
+ {
+ MatchDescriptor = null;
+ MatchDescriptorAction = null;
+ MatchValue = match;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(EnrichPolicyDescriptor descriptor)
+ {
+ MatchValue = null;
+ MatchDescriptorAction = null;
+ MatchDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(Action> configure)
+ {
+ MatchValue = null;
+ MatchDescriptor = null;
+ MatchDescriptorAction = configure;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? range)
+ {
+ RangeDescriptor = null;
+ RangeDescriptorAction = null;
+ RangeValue = range;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(EnrichPolicyDescriptor descriptor)
+ {
+ RangeValue = null;
+ RangeDescriptorAction = null;
+ RangeDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(Action> configure)
+ {
+ RangeValue = null;
+ RangeDescriptor = null;
+ RangeDescriptorAction = configure;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (GeoMatchDescriptor is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, GeoMatchDescriptor, options);
+ }
+ else if (GeoMatchDescriptorAction is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(GeoMatchDescriptorAction), options);
+ }
+ else if (GeoMatchValue is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, GeoMatchValue, options);
+ }
+
+ if (MatchDescriptor is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, MatchDescriptor, options);
+ }
+ else if (MatchDescriptorAction is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(MatchDescriptorAction), options);
+ }
+ else if (MatchValue is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, MatchValue, options);
+ }
+
+ if (RangeDescriptor is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, RangeDescriptor, options);
+ }
+ else if (RangeDescriptorAction is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(RangeDescriptorAction), options);
+ }
+ else if (RangeValue is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, RangeValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
+
+///
+/// Creates a new enrich policy.
+///
+public sealed partial class PutPolicyRequestDescriptor : RequestDescriptor
+{
+ internal PutPolicyRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public PutPolicyRequestDescriptor(Elastic.Clients.Elasticsearch.Name name) : base(r => r.Required("name", name))
+ {
+ }
+
+ internal PutPolicyRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.EnrichPutPolicy;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.PUT;
+
+ internal override bool SupportsBody => true;
+
+ public PutPolicyRequestDescriptor Name(Elastic.Clients.Elasticsearch.Name name)
+ {
+ RouteValues.Required("name", name);
+ return Self;
+ }
+
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? GeoMatchValue { get; set; }
+ private EnrichPolicyDescriptor GeoMatchDescriptor { get; set; }
+ private Action GeoMatchDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? MatchValue { get; set; }
+ private EnrichPolicyDescriptor MatchDescriptor { get; set; }
+ private Action MatchDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? RangeValue { get; set; }
+ private EnrichPolicyDescriptor RangeDescriptor { get; set; }
+ private Action RangeDescriptorAction { get; set; }
+
+ public PutPolicyRequestDescriptor GeoMatch(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? geoMatch)
+ {
+ GeoMatchDescriptor = null;
+ GeoMatchDescriptorAction = null;
+ GeoMatchValue = geoMatch;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor GeoMatch(EnrichPolicyDescriptor descriptor)
+ {
+ GeoMatchValue = null;
+ GeoMatchDescriptorAction = null;
+ GeoMatchDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor GeoMatch(Action configure)
+ {
+ GeoMatchValue = null;
+ GeoMatchDescriptor = null;
+ GeoMatchDescriptorAction = configure;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? match)
+ {
+ MatchDescriptor = null;
+ MatchDescriptorAction = null;
+ MatchValue = match;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(EnrichPolicyDescriptor descriptor)
+ {
+ MatchValue = null;
+ MatchDescriptorAction = null;
+ MatchDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Match(Action configure)
+ {
+ MatchValue = null;
+ MatchDescriptor = null;
+ MatchDescriptorAction = configure;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(Elastic.Clients.Elasticsearch.Enrich.EnrichPolicy? range)
+ {
+ RangeDescriptor = null;
+ RangeDescriptorAction = null;
+ RangeValue = range;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(EnrichPolicyDescriptor descriptor)
+ {
+ RangeValue = null;
+ RangeDescriptorAction = null;
+ RangeDescriptor = descriptor;
+ return Self;
+ }
+
+ public PutPolicyRequestDescriptor Range(Action configure)
+ {
+ RangeValue = null;
+ RangeDescriptor = null;
+ RangeDescriptorAction = configure;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (GeoMatchDescriptor is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, GeoMatchDescriptor, options);
+ }
+ else if (GeoMatchDescriptorAction is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(GeoMatchDescriptorAction), options);
+ }
+ else if (GeoMatchValue is not null)
+ {
+ writer.WritePropertyName("geo_match");
+ JsonSerializer.Serialize(writer, GeoMatchValue, options);
+ }
+
+ if (MatchDescriptor is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, MatchDescriptor, options);
+ }
+ else if (MatchDescriptorAction is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(MatchDescriptorAction), options);
+ }
+ else if (MatchValue is not null)
+ {
+ writer.WritePropertyName("match");
+ JsonSerializer.Serialize(writer, MatchValue, options);
+ }
+
+ if (RangeDescriptor is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, RangeDescriptor, options);
+ }
+ else if (RangeDescriptorAction is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, new EnrichPolicyDescriptor(RangeDescriptorAction), options);
+ }
+ else if (RangeValue is not null)
+ {
+ writer.WritePropertyName("range");
+ JsonSerializer.Serialize(writer, RangeValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyResponse.g.cs
new file mode 100644
index 00000000000..b1b21ad1422
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Enrich/PutPolicyResponse.g.cs
@@ -0,0 +1,35 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Enrich;
+
+public sealed partial class PutPolicyResponse : ElasticsearchResponse
+{
+ ///
+ /// For a successful response, this value is always true. On failure, an exception is returned instead.
+ ///
+ [JsonInclude, JsonPropertyName("acknowledged")]
+ public bool Acknowledged { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreRequest.g.cs
new file mode 100644
index 00000000000..bd2c1160542
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreRequest.g.cs
@@ -0,0 +1,555 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Graph;
+
+public sealed class ExploreRequestParameters : RequestParameters
+{
+ ///
+ /// Specific routing value
+ ///
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ ///
+ /// Explicit operation timeout
+ ///
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+}
+
+///
+/// Explore extracted and summarized information about the documents and terms in an index.
+///
+public sealed partial class ExploreRequest : PlainRequest
+{
+ public ExploreRequest(Elastic.Clients.Elasticsearch.Indices indices) : base(r => r.Required("index", indices))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.GraphExplore;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ ///
+ /// Specific routing value
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ ///
+ /// Explicit operation timeout
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Duration? Timeout { get => Q("timeout"); set => Q("timeout", value); }
+ [JsonInclude, JsonPropertyName("connections")]
+ public Elastic.Clients.Elasticsearch.Graph.Hop? Connections { get; set; }
+ [JsonInclude, JsonPropertyName("controls")]
+ public Elastic.Clients.Elasticsearch.Graph.ExploreControls? Controls { get; set; }
+ [JsonInclude, JsonPropertyName("query")]
+ public Elastic.Clients.Elasticsearch.QueryDsl.Query? Query { get; set; }
+ [JsonInclude, JsonPropertyName("vertices")]
+ public ICollection? Vertices { get; set; }
+}
+
+///
+/// Explore extracted and summarized information about the documents and terms in an index.
+///
+public sealed partial class ExploreRequestDescriptor : RequestDescriptor, ExploreRequestParameters>
+{
+ internal ExploreRequestDescriptor(Action> configure) => configure.Invoke(this);
+
+ public ExploreRequestDescriptor(Elastic.Clients.Elasticsearch.Indices indices) : base(r => r.Required("index", indices))
+ {
+ }
+
+ internal ExploreRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.GraphExplore;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public ExploreRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public ExploreRequestDescriptor Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
+
+ public ExploreRequestDescriptor Indices(Elastic.Clients.Elasticsearch.Indices indices)
+ {
+ RouteValues.Required("index", indices);
+ return Self;
+ }
+
+ private Elastic.Clients.Elasticsearch.Graph.Hop? ConnectionsValue { get; set; }
+ private HopDescriptor ConnectionsDescriptor { get; set; }
+ private Action> ConnectionsDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Graph.ExploreControls? ControlsValue { get; set; }
+ private ExploreControlsDescriptor ControlsDescriptor { get; set; }
+ private Action> ControlsDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.QueryDsl.Query? QueryValue { get; set; }
+ private QueryDsl.QueryDescriptor QueryDescriptor { get; set; }
+ private Action> QueryDescriptorAction { get; set; }
+ private ICollection? VerticesValue { get; set; }
+ private VertexDefinitionDescriptor VerticesDescriptor { get; set; }
+ private Action> VerticesDescriptorAction { get; set; }
+ private Action>[] VerticesDescriptorActions { get; set; }
+
+ public ExploreRequestDescriptor Connections(Elastic.Clients.Elasticsearch.Graph.Hop? connections)
+ {
+ ConnectionsDescriptor = null;
+ ConnectionsDescriptorAction = null;
+ ConnectionsValue = connections;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Connections(HopDescriptor descriptor)
+ {
+ ConnectionsValue = null;
+ ConnectionsDescriptorAction = null;
+ ConnectionsDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Connections(Action> configure)
+ {
+ ConnectionsValue = null;
+ ConnectionsDescriptor = null;
+ ConnectionsDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(Elastic.Clients.Elasticsearch.Graph.ExploreControls? controls)
+ {
+ ControlsDescriptor = null;
+ ControlsDescriptorAction = null;
+ ControlsValue = controls;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(ExploreControlsDescriptor descriptor)
+ {
+ ControlsValue = null;
+ ControlsDescriptorAction = null;
+ ControlsDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(Action> configure)
+ {
+ ControlsValue = null;
+ ControlsDescriptor = null;
+ ControlsDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(Elastic.Clients.Elasticsearch.QueryDsl.Query? query)
+ {
+ QueryDescriptor = null;
+ QueryDescriptorAction = null;
+ QueryValue = query;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(QueryDsl.QueryDescriptor descriptor)
+ {
+ QueryValue = null;
+ QueryDescriptorAction = null;
+ QueryDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(Action> configure)
+ {
+ QueryValue = null;
+ QueryDescriptor = null;
+ QueryDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(ICollection? vertices)
+ {
+ VerticesDescriptor = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = null;
+ VerticesValue = vertices;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(VertexDefinitionDescriptor descriptor)
+ {
+ VerticesValue = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = null;
+ VerticesDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(Action> configure)
+ {
+ VerticesValue = null;
+ VerticesDescriptor = null;
+ VerticesDescriptorActions = null;
+ VerticesDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(params Action>[] configure)
+ {
+ VerticesValue = null;
+ VerticesDescriptor = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = configure;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (ConnectionsDescriptor is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, ConnectionsDescriptor, options);
+ }
+ else if (ConnectionsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, new HopDescriptor(ConnectionsDescriptorAction), options);
+ }
+ else if (ConnectionsValue is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, ConnectionsValue, options);
+ }
+
+ if (ControlsDescriptor is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, ControlsDescriptor, options);
+ }
+ else if (ControlsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, new ExploreControlsDescriptor(ControlsDescriptorAction), options);
+ }
+ else if (ControlsValue is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, ControlsValue, options);
+ }
+
+ if (QueryDescriptor is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, QueryDescriptor, options);
+ }
+ else if (QueryDescriptorAction is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, new QueryDsl.QueryDescriptor(QueryDescriptorAction), options);
+ }
+ else if (QueryValue is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, QueryValue, options);
+ }
+
+ if (VerticesDescriptor is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, VerticesDescriptor, options);
+ writer.WriteEndArray();
+ }
+ else if (VerticesDescriptorAction is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, new VertexDefinitionDescriptor(VerticesDescriptorAction), options);
+ writer.WriteEndArray();
+ }
+ else if (VerticesDescriptorActions is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ foreach (var action in VerticesDescriptorActions)
+ {
+ JsonSerializer.Serialize(writer, new VertexDefinitionDescriptor(action), options);
+ }
+
+ writer.WriteEndArray();
+ }
+ else if (VerticesValue is not null)
+ {
+ writer.WritePropertyName("vertices");
+ JsonSerializer.Serialize(writer, VerticesValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
+
+///
+/// Explore extracted and summarized information about the documents and terms in an index.
+///
+public sealed partial class ExploreRequestDescriptor : RequestDescriptor
+{
+ internal ExploreRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public ExploreRequestDescriptor(Elastic.Clients.Elasticsearch.Indices indices) : base(r => r.Required("index", indices))
+ {
+ }
+
+ internal ExploreRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.GraphExplore;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public ExploreRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public ExploreRequestDescriptor Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
+
+ public ExploreRequestDescriptor Indices(Elastic.Clients.Elasticsearch.Indices indices)
+ {
+ RouteValues.Required("index", indices);
+ return Self;
+ }
+
+ private Elastic.Clients.Elasticsearch.Graph.Hop? ConnectionsValue { get; set; }
+ private HopDescriptor ConnectionsDescriptor { get; set; }
+ private Action ConnectionsDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.Graph.ExploreControls? ControlsValue { get; set; }
+ private ExploreControlsDescriptor ControlsDescriptor { get; set; }
+ private Action ControlsDescriptorAction { get; set; }
+ private Elastic.Clients.Elasticsearch.QueryDsl.Query? QueryValue { get; set; }
+ private QueryDsl.QueryDescriptor QueryDescriptor { get; set; }
+ private Action QueryDescriptorAction { get; set; }
+ private ICollection? VerticesValue { get; set; }
+ private VertexDefinitionDescriptor VerticesDescriptor { get; set; }
+ private Action VerticesDescriptorAction { get; set; }
+ private Action[] VerticesDescriptorActions { get; set; }
+
+ public ExploreRequestDescriptor Connections(Elastic.Clients.Elasticsearch.Graph.Hop? connections)
+ {
+ ConnectionsDescriptor = null;
+ ConnectionsDescriptorAction = null;
+ ConnectionsValue = connections;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Connections(HopDescriptor descriptor)
+ {
+ ConnectionsValue = null;
+ ConnectionsDescriptorAction = null;
+ ConnectionsDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Connections(Action configure)
+ {
+ ConnectionsValue = null;
+ ConnectionsDescriptor = null;
+ ConnectionsDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(Elastic.Clients.Elasticsearch.Graph.ExploreControls? controls)
+ {
+ ControlsDescriptor = null;
+ ControlsDescriptorAction = null;
+ ControlsValue = controls;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(ExploreControlsDescriptor descriptor)
+ {
+ ControlsValue = null;
+ ControlsDescriptorAction = null;
+ ControlsDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Controls(Action configure)
+ {
+ ControlsValue = null;
+ ControlsDescriptor = null;
+ ControlsDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(Elastic.Clients.Elasticsearch.QueryDsl.Query? query)
+ {
+ QueryDescriptor = null;
+ QueryDescriptorAction = null;
+ QueryValue = query;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(QueryDsl.QueryDescriptor descriptor)
+ {
+ QueryValue = null;
+ QueryDescriptorAction = null;
+ QueryDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Query(Action configure)
+ {
+ QueryValue = null;
+ QueryDescriptor = null;
+ QueryDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(ICollection? vertices)
+ {
+ VerticesDescriptor = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = null;
+ VerticesValue = vertices;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(VertexDefinitionDescriptor descriptor)
+ {
+ VerticesValue = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = null;
+ VerticesDescriptor = descriptor;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(Action configure)
+ {
+ VerticesValue = null;
+ VerticesDescriptor = null;
+ VerticesDescriptorActions = null;
+ VerticesDescriptorAction = configure;
+ return Self;
+ }
+
+ public ExploreRequestDescriptor Vertices(params Action[] configure)
+ {
+ VerticesValue = null;
+ VerticesDescriptor = null;
+ VerticesDescriptorAction = null;
+ VerticesDescriptorActions = configure;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (ConnectionsDescriptor is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, ConnectionsDescriptor, options);
+ }
+ else if (ConnectionsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, new HopDescriptor(ConnectionsDescriptorAction), options);
+ }
+ else if (ConnectionsValue is not null)
+ {
+ writer.WritePropertyName("connections");
+ JsonSerializer.Serialize(writer, ConnectionsValue, options);
+ }
+
+ if (ControlsDescriptor is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, ControlsDescriptor, options);
+ }
+ else if (ControlsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, new ExploreControlsDescriptor(ControlsDescriptorAction), options);
+ }
+ else if (ControlsValue is not null)
+ {
+ writer.WritePropertyName("controls");
+ JsonSerializer.Serialize(writer, ControlsValue, options);
+ }
+
+ if (QueryDescriptor is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, QueryDescriptor, options);
+ }
+ else if (QueryDescriptorAction is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, new QueryDsl.QueryDescriptor(QueryDescriptorAction), options);
+ }
+ else if (QueryValue is not null)
+ {
+ writer.WritePropertyName("query");
+ JsonSerializer.Serialize(writer, QueryValue, options);
+ }
+
+ if (VerticesDescriptor is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, VerticesDescriptor, options);
+ writer.WriteEndArray();
+ }
+ else if (VerticesDescriptorAction is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, new VertexDefinitionDescriptor(VerticesDescriptorAction), options);
+ writer.WriteEndArray();
+ }
+ else if (VerticesDescriptorActions is not null)
+ {
+ writer.WritePropertyName("vertices");
+ writer.WriteStartArray();
+ foreach (var action in VerticesDescriptorActions)
+ {
+ JsonSerializer.Serialize(writer, new VertexDefinitionDescriptor(action), options);
+ }
+
+ writer.WriteEndArray();
+ }
+ else if (VerticesValue is not null)
+ {
+ writer.WritePropertyName("vertices");
+ JsonSerializer.Serialize(writer, VerticesValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreResponse.g.cs
new file mode 100644
index 00000000000..bcf66c62f61
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/Graph/ExploreResponse.g.cs
@@ -0,0 +1,40 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch.Graph;
+
+public sealed partial class ExploreResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("connections")]
+ public IReadOnlyCollection Connections { get; init; }
+ [JsonInclude, JsonPropertyName("failures")]
+ public IReadOnlyCollection Failures { get; init; }
+ [JsonInclude, JsonPropertyName("timed_out")]
+ public bool TimedOut { get; init; }
+ [JsonInclude, JsonPropertyName("took")]
+ public long Took { get; init; }
+ [JsonInclude, JsonPropertyName("vertices")]
+ public IReadOnlyCollection Vertices { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsRequest.g.cs
new file mode 100644
index 00000000000..584c7b938b7
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsRequest.g.cs
@@ -0,0 +1,432 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch;
+
+public sealed class MultiTermVectorsRequestParameters : RequestParameters
+{
+ ///
+ /// A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public Elastic.Clients.Elasticsearch.Fields? Fields { get => Q("fields"); set => Q("fields", value); }
+
+ ///
+ /// Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public bool? FieldStatistics { get => Q("field_statistics"); set => Q("field_statistics", value); }
+
+ ///
+ /// Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public bool? Offsets { get => Q("offsets"); set => Q("offsets", value); }
+
+ ///
+ /// Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public bool? Payloads { get => Q("payloads"); set => Q("payloads", value); }
+
+ ///
+ /// Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public bool? Positions { get => Q("positions"); set => Q("positions", value); }
+
+ ///
+ /// Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public string? Preference { get => Q("preference"); set => Q("preference", value); }
+
+ ///
+ /// Specifies if requests are real-time as opposed to near-real-time (default: true).
+ ///
+ public bool? Realtime { get => Q("realtime"); set => Q("realtime", value); }
+
+ ///
+ /// Specific routing value. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ ///
+ /// Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ public bool? TermStatistics { get => Q("term_statistics"); set => Q("term_statistics", value); }
+
+ ///
+ /// Explicit version number for concurrency control
+ ///
+ public long? Version { get => Q("version"); set => Q("version", value); }
+
+ ///
+ /// Specific version type
+ ///
+ public Elastic.Clients.Elasticsearch.VersionType? VersionType { get => Q("version_type"); set => Q("version_type", value); }
+}
+
+///
+/// Returns multiple termvectors in one request.
+///
+public sealed partial class MultiTermVectorsRequest : PlainRequest
+{
+ public MultiTermVectorsRequest()
+ {
+ }
+
+ public MultiTermVectorsRequest(Elastic.Clients.Elasticsearch.IndexName? index) : base(r => r.Optional("index", index))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceMtermvectors;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ ///
+ /// A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Fields? Fields { get => Q("fields"); set => Q("fields", value); }
+
+ ///
+ /// Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public bool? FieldStatistics { get => Q("field_statistics"); set => Q("field_statistics", value); }
+
+ ///
+ /// Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public bool? Offsets { get => Q("offsets"); set => Q("offsets", value); }
+
+ ///
+ /// Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public bool? Payloads { get => Q("payloads"); set => Q("payloads", value); }
+
+ ///
+ /// Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public bool? Positions { get => Q("positions"); set => Q("positions", value); }
+
+ ///
+ /// Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public string? Preference { get => Q("preference"); set => Q("preference", value); }
+
+ ///
+ /// Specifies if requests are real-time as opposed to near-real-time (default: true).
+ ///
+ [JsonIgnore]
+ public bool? Realtime { get => Q("realtime"); set => Q("realtime", value); }
+
+ ///
+ /// Specific routing value. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.Routing? Routing { get => Q("routing"); set => Q("routing", value); }
+
+ ///
+ /// Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body "params" or "docs".
+ ///
+ [JsonIgnore]
+ public bool? TermStatistics { get => Q("term_statistics"); set => Q("term_statistics", value); }
+
+ ///
+ /// Explicit version number for concurrency control
+ ///
+ [JsonIgnore]
+ public long? Version { get => Q("version"); set => Q("version", value); }
+
+ ///
+ /// Specific version type
+ ///
+ [JsonIgnore]
+ public Elastic.Clients.Elasticsearch.VersionType? VersionType { get => Q("version_type"); set => Q("version_type", value); }
+ [JsonInclude, JsonPropertyName("docs")]
+ public ICollection? Docs { get; set; }
+ [JsonInclude, JsonPropertyName("ids")]
+ public ICollection? Ids { get; set; }
+}
+
+///
+/// Returns multiple termvectors in one request.
+///
+public sealed partial class MultiTermVectorsRequestDescriptor : RequestDescriptor, MultiTermVectorsRequestParameters>
+{
+ internal MultiTermVectorsRequestDescriptor(Action> configure) => configure.Invoke(this);
+
+ public MultiTermVectorsRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceMtermvectors;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public MultiTermVectorsRequestDescriptor FieldStatistics(bool? fieldStatistics = true) => Qs("field_statistics", fieldStatistics);
+ public MultiTermVectorsRequestDescriptor Fields(Elastic.Clients.Elasticsearch.Fields? fields) => Qs("fields", fields);
+ public MultiTermVectorsRequestDescriptor Offsets(bool? offsets = true) => Qs("offsets", offsets);
+ public MultiTermVectorsRequestDescriptor Payloads(bool? payloads = true) => Qs("payloads", payloads);
+ public MultiTermVectorsRequestDescriptor Positions(bool? positions = true) => Qs("positions", positions);
+ public MultiTermVectorsRequestDescriptor Preference(string? preference) => Qs("preference", preference);
+ public MultiTermVectorsRequestDescriptor Realtime(bool? realtime = true) => Qs("realtime", realtime);
+ public MultiTermVectorsRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public MultiTermVectorsRequestDescriptor TermStatistics(bool? termStatistics = true) => Qs("term_statistics", termStatistics);
+ public MultiTermVectorsRequestDescriptor Version(long? version) => Qs("version", version);
+ public MultiTermVectorsRequestDescriptor VersionType(Elastic.Clients.Elasticsearch.VersionType? versionType) => Qs("version_type", versionType);
+
+ public MultiTermVectorsRequestDescriptor Index(Elastic.Clients.Elasticsearch.IndexName? index)
+ {
+ RouteValues.Optional("index", index);
+ return Self;
+ }
+
+ private ICollection? DocsValue { get; set; }
+ private Core.Mtermvectors.MultiTermVectorsOperationDescriptor DocsDescriptor { get; set; }
+ private Action> DocsDescriptorAction { get; set; }
+ private Action>[] DocsDescriptorActions { get; set; }
+ private ICollection? IdsValue { get; set; }
+
+ public MultiTermVectorsRequestDescriptor Docs(ICollection? docs)
+ {
+ DocsDescriptor = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = null;
+ DocsValue = docs;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(Core.Mtermvectors.MultiTermVectorsOperationDescriptor descriptor)
+ {
+ DocsValue = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = null;
+ DocsDescriptor = descriptor;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(Action> configure)
+ {
+ DocsValue = null;
+ DocsDescriptor = null;
+ DocsDescriptorActions = null;
+ DocsDescriptorAction = configure;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(params Action>[] configure)
+ {
+ DocsValue = null;
+ DocsDescriptor = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = configure;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Ids(ICollection? ids)
+ {
+ IdsValue = ids;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (DocsDescriptor is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, DocsDescriptor, options);
+ writer.WriteEndArray();
+ }
+ else if (DocsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, new Core.Mtermvectors.MultiTermVectorsOperationDescriptor(DocsDescriptorAction), options);
+ writer.WriteEndArray();
+ }
+ else if (DocsDescriptorActions is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ foreach (var action in DocsDescriptorActions)
+ {
+ JsonSerializer.Serialize(writer, new Core.Mtermvectors.MultiTermVectorsOperationDescriptor(action), options);
+ }
+
+ writer.WriteEndArray();
+ }
+ else if (DocsValue is not null)
+ {
+ writer.WritePropertyName("docs");
+ JsonSerializer.Serialize(writer, DocsValue, options);
+ }
+
+ if (IdsValue is not null)
+ {
+ writer.WritePropertyName("ids");
+ JsonSerializer.Serialize(writer, IdsValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
+
+///
+/// Returns multiple termvectors in one request.
+///
+public sealed partial class MultiTermVectorsRequestDescriptor : RequestDescriptor
+{
+ internal MultiTermVectorsRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public MultiTermVectorsRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceMtermvectors;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public MultiTermVectorsRequestDescriptor FieldStatistics(bool? fieldStatistics = true) => Qs("field_statistics", fieldStatistics);
+ public MultiTermVectorsRequestDescriptor Fields(Elastic.Clients.Elasticsearch.Fields? fields) => Qs("fields", fields);
+ public MultiTermVectorsRequestDescriptor Offsets(bool? offsets = true) => Qs("offsets", offsets);
+ public MultiTermVectorsRequestDescriptor Payloads(bool? payloads = true) => Qs("payloads", payloads);
+ public MultiTermVectorsRequestDescriptor Positions(bool? positions = true) => Qs("positions", positions);
+ public MultiTermVectorsRequestDescriptor Preference(string? preference) => Qs("preference", preference);
+ public MultiTermVectorsRequestDescriptor Realtime(bool? realtime = true) => Qs("realtime", realtime);
+ public MultiTermVectorsRequestDescriptor Routing(Elastic.Clients.Elasticsearch.Routing? routing) => Qs("routing", routing);
+ public MultiTermVectorsRequestDescriptor TermStatistics(bool? termStatistics = true) => Qs("term_statistics", termStatistics);
+ public MultiTermVectorsRequestDescriptor Version(long? version) => Qs("version", version);
+ public MultiTermVectorsRequestDescriptor VersionType(Elastic.Clients.Elasticsearch.VersionType? versionType) => Qs("version_type", versionType);
+
+ public MultiTermVectorsRequestDescriptor Index(Elastic.Clients.Elasticsearch.IndexName? index)
+ {
+ RouteValues.Optional("index", index);
+ return Self;
+ }
+
+ private ICollection? DocsValue { get; set; }
+ private Core.Mtermvectors.MultiTermVectorsOperationDescriptor DocsDescriptor { get; set; }
+ private Action DocsDescriptorAction { get; set; }
+ private Action[] DocsDescriptorActions { get; set; }
+ private ICollection? IdsValue { get; set; }
+
+ public MultiTermVectorsRequestDescriptor Docs(ICollection? docs)
+ {
+ DocsDescriptor = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = null;
+ DocsValue = docs;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(Core.Mtermvectors.MultiTermVectorsOperationDescriptor descriptor)
+ {
+ DocsValue = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = null;
+ DocsDescriptor = descriptor;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(Action configure)
+ {
+ DocsValue = null;
+ DocsDescriptor = null;
+ DocsDescriptorActions = null;
+ DocsDescriptorAction = configure;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Docs(params Action[] configure)
+ {
+ DocsValue = null;
+ DocsDescriptor = null;
+ DocsDescriptorAction = null;
+ DocsDescriptorActions = configure;
+ return Self;
+ }
+
+ public MultiTermVectorsRequestDescriptor Ids(ICollection? ids)
+ {
+ IdsValue = ids;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (DocsDescriptor is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, DocsDescriptor, options);
+ writer.WriteEndArray();
+ }
+ else if (DocsDescriptorAction is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ JsonSerializer.Serialize(writer, new Core.Mtermvectors.MultiTermVectorsOperationDescriptor(DocsDescriptorAction), options);
+ writer.WriteEndArray();
+ }
+ else if (DocsDescriptorActions is not null)
+ {
+ writer.WritePropertyName("docs");
+ writer.WriteStartArray();
+ foreach (var action in DocsDescriptorActions)
+ {
+ JsonSerializer.Serialize(writer, new Core.Mtermvectors.MultiTermVectorsOperationDescriptor(action), options);
+ }
+
+ writer.WriteEndArray();
+ }
+ else if (DocsValue is not null)
+ {
+ writer.WritePropertyName("docs");
+ JsonSerializer.Serialize(writer, DocsValue, options);
+ }
+
+ if (IdsValue is not null)
+ {
+ writer.WritePropertyName("ids");
+ JsonSerializer.Serialize(writer, IdsValue, options);
+ }
+
+ writer.WriteEndObject();
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsResponse.g.cs
new file mode 100644
index 00000000000..0dc8a1d11fb
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/MultiTermVectorsResponse.g.cs
@@ -0,0 +1,32 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch;
+
+public sealed partial class MultiTermVectorsResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("docs")]
+ public IReadOnlyCollection Docs { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateRequest.g.cs
new file mode 100644
index 00000000000..fa861faea3a
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateRequest.g.cs
@@ -0,0 +1,201 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch;
+
+public sealed class RenderSearchTemplateRequestParameters : RequestParameters
+{
+}
+
+///
+/// Allows to use the Mustache language to pre-render a search definition.
+///
+public sealed partial class RenderSearchTemplateRequest : PlainRequest
+{
+ public RenderSearchTemplateRequest()
+ {
+ }
+
+ public RenderSearchTemplateRequest(Elastic.Clients.Elasticsearch.Id? id) : base(r => r.Optional("id", id))
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceRenderSearchTemplate;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ [JsonInclude, JsonPropertyName("file")]
+ public string? File { get; set; }
+ [JsonInclude, JsonPropertyName("params")]
+ public IDictionary? Params { get; set; }
+ [JsonInclude, JsonPropertyName("source")]
+ public string? Source { get; set; }
+}
+
+///
+/// Allows to use the Mustache language to pre-render a search definition.
+///
+public sealed partial class RenderSearchTemplateRequestDescriptor : RequestDescriptor, RenderSearchTemplateRequestParameters>
+{
+ internal RenderSearchTemplateRequestDescriptor(Action> configure) => configure.Invoke(this);
+
+ public RenderSearchTemplateRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceRenderSearchTemplate;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public RenderSearchTemplateRequestDescriptor Id(Elastic.Clients.Elasticsearch.Id? id)
+ {
+ RouteValues.Optional("id", id);
+ return Self;
+ }
+
+ private string? FileValue { get; set; }
+ private IDictionary? ParamsValue { get; set; }
+ private string? SourceValue { get; set; }
+
+ public RenderSearchTemplateRequestDescriptor File(string? file)
+ {
+ FileValue = file;
+ return Self;
+ }
+
+ public RenderSearchTemplateRequestDescriptor Params(Func, FluentDictionary> selector)
+ {
+ ParamsValue = selector?.Invoke(new FluentDictionary());
+ return Self;
+ }
+
+ public RenderSearchTemplateRequestDescriptor Source(string? source)
+ {
+ SourceValue = source;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (!string.IsNullOrEmpty(FileValue))
+ {
+ writer.WritePropertyName("file");
+ writer.WriteStringValue(FileValue);
+ }
+
+ if (ParamsValue is not null)
+ {
+ writer.WritePropertyName("params");
+ JsonSerializer.Serialize(writer, ParamsValue, options);
+ }
+
+ if (!string.IsNullOrEmpty(SourceValue))
+ {
+ writer.WritePropertyName("source");
+ writer.WriteStringValue(SourceValue);
+ }
+
+ writer.WriteEndObject();
+ }
+}
+
+///
+/// Allows to use the Mustache language to pre-render a search definition.
+///
+public sealed partial class RenderSearchTemplateRequestDescriptor : RequestDescriptor
+{
+ internal RenderSearchTemplateRequestDescriptor(Action configure) => configure.Invoke(this);
+
+ public RenderSearchTemplateRequestDescriptor()
+ {
+ }
+
+ internal override ApiUrls ApiUrls => ApiUrlLookup.NoNamespaceRenderSearchTemplate;
+
+ protected override HttpMethod StaticHttpMethod => HttpMethod.POST;
+
+ internal override bool SupportsBody => true;
+
+ public RenderSearchTemplateRequestDescriptor Id(Elastic.Clients.Elasticsearch.Id? id)
+ {
+ RouteValues.Optional("id", id);
+ return Self;
+ }
+
+ private string? FileValue { get; set; }
+ private IDictionary? ParamsValue { get; set; }
+ private string? SourceValue { get; set; }
+
+ public RenderSearchTemplateRequestDescriptor File(string? file)
+ {
+ FileValue = file;
+ return Self;
+ }
+
+ public RenderSearchTemplateRequestDescriptor Params(Func, FluentDictionary> selector)
+ {
+ ParamsValue = selector?.Invoke(new FluentDictionary());
+ return Self;
+ }
+
+ public RenderSearchTemplateRequestDescriptor Source(string? source)
+ {
+ SourceValue = source;
+ return Self;
+ }
+
+ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings)
+ {
+ writer.WriteStartObject();
+ if (!string.IsNullOrEmpty(FileValue))
+ {
+ writer.WritePropertyName("file");
+ writer.WriteStringValue(FileValue);
+ }
+
+ if (ParamsValue is not null)
+ {
+ writer.WritePropertyName("params");
+ JsonSerializer.Serialize(writer, ParamsValue, options);
+ }
+
+ if (!string.IsNullOrEmpty(SourceValue))
+ {
+ writer.WritePropertyName("source");
+ writer.WriteStringValue(SourceValue);
+ }
+
+ writer.WriteEndObject();
+ }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateResponse.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateResponse.g.cs
new file mode 100644
index 00000000000..d583cb4976b
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/RenderSearchTemplateResponse.g.cs
@@ -0,0 +1,32 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport.Products.Elasticsearch;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch;
+
+public sealed partial class RenderSearchTemplateResponse : ElasticsearchResponse
+{
+ [JsonInclude, JsonPropertyName("template_output")]
+ public IReadOnlyDictionary TemplateOutput { get; init; }
+}
\ No newline at end of file
diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Api/SearchTemplateRequest.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Api/SearchTemplateRequest.g.cs
new file mode 100644
index 00000000000..756f063f8a7
--- /dev/null
+++ b/src/Elastic.Clients.Elasticsearch/_Generated/Api/SearchTemplateRequest.g.cs
@@ -0,0 +1,420 @@
+// 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.
+//
+// ------------------------------------------------
+
+#nullable restore
+
+using Elastic.Clients.Elasticsearch.Fluent;
+using Elastic.Clients.Elasticsearch.Requests;
+using Elastic.Clients.Elasticsearch.Serialization;
+using Elastic.Transport;
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Elastic.Clients.Elasticsearch;
+
+public sealed class SearchTemplateRequestParameters : RequestParameters
+{
+ ///
+ ///