Skip to content

Commit 6e9c70c

Browse files
committed
Add enrich processor and APIs
Relates: #4232 This commit adds the ingest enrich processor and the enrich APIs. Patch Get enrich policy API to set name URL part as list type. Add Enrich to XPackUsage and XPackInfo. Obsolete DataFrame and introduce Transform, and conditionally check to allow integration tests to pass.
1 parent c5e867d commit 6e9c70c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1743
-18
lines changed

src/CodeGeneration/ApiGenerator/Configuration/CodeConfiguration.cs

-5
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,6 @@ public static class CodeConfiguration
5555
"data_frame_transform_deprecated.start_transform.json",
5656
"data_frame_transform_deprecated.stop_transform.json",
5757
"data_frame_transform_deprecated.update_transform.json",
58-
"enrich.delete_policy.json",
59-
"enrich.execute_policy.json",
60-
"enrich.get_policy.json",
61-
"enrich.put_policy.json",
62-
"enrich.stats.json",
6358
"slm.execute_retention.json",
6459
"transform.delete_transform.json",
6560
"transform.get_transform.json",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"enrich.get_policy": {
3+
"documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html",
4+
"stability" : "stable",
5+
"url": {
6+
"parts": {
7+
"name": {
8+
"type" : "list",
9+
"description" : "A comma-separated list of enrich policy names"
10+
}
11+
}
12+
}
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
2+
// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
3+
// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
4+
// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
5+
// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
6+
// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
7+
// -----------------------------------------------
8+
//
9+
// This file is automatically generated
10+
// Please do not edit these files manually
11+
// Run the following in the root of the repos:
12+
//
13+
// *NIX : ./build.sh codegen
14+
// Windows : build.bat codegen
15+
//
16+
// -----------------------------------------------
17+
// ReSharper disable RedundantUsingDirective
18+
using System;
19+
using System.Collections.Generic;
20+
using System.Linq;
21+
using System.Text;
22+
using System.Linq.Expressions;
23+
24+
// ReSharper disable once CheckNamespace
25+
namespace Elasticsearch.Net.Specification.EnrichApi
26+
{
27+
///<summary>Request options for DeletePolicy <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-delete-policy.html</para></summary>
28+
public class DeleteEnrichPolicyRequestParameters : RequestParameters<DeleteEnrichPolicyRequestParameters>
29+
{
30+
public override HttpMethod DefaultHttpMethod => HttpMethod.DELETE;
31+
}
32+
33+
///<summary>Request options for ExecutePolicy <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-execute-policy.html</para></summary>
34+
public class ExecuteEnrichPolicyRequestParameters : RequestParameters<ExecuteEnrichPolicyRequestParameters>
35+
{
36+
public override HttpMethod DefaultHttpMethod => HttpMethod.PUT;
37+
///<summary>Should the request should block until the execution is complete.</summary>
38+
public bool? WaitForCompletion
39+
{
40+
get => Q<bool? >("wait_for_completion");
41+
set => Q("wait_for_completion", value);
42+
}
43+
}
44+
45+
///<summary>Request options for GetPolicy <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html</para></summary>
46+
public class GetEnrichPolicyRequestParameters : RequestParameters<GetEnrichPolicyRequestParameters>
47+
{
48+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
49+
}
50+
51+
///<summary>Request options for PutPolicy <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-put-policy.html</para></summary>
52+
public class PutEnrichPolicyRequestParameters : RequestParameters<PutEnrichPolicyRequestParameters>
53+
{
54+
public override HttpMethod DefaultHttpMethod => HttpMethod.PUT;
55+
}
56+
57+
///<summary>Request options for Stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-stats.html</para></summary>
58+
public class EnrichStatsRequestParameters : RequestParameters<EnrichStatsRequestParameters>
59+
{
60+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
61+
}
62+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
2+
// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
3+
// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
4+
// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
5+
// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
6+
// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
7+
// -----------------------------------------------
8+
//
9+
// This file is automatically generated
10+
// Please do not edit these files manually
11+
// Run the following in the root of the repos:
12+
//
13+
// *NIX : ./build.sh codegen
14+
// Windows : build.bat codegen
15+
//
16+
// -----------------------------------------------
17+
// ReSharper disable RedundantUsingDirective
18+
using System;
19+
using System.Collections.Generic;
20+
using System.Collections.Specialized;
21+
using System.Linq;
22+
using System.Text;
23+
using System.Threading;
24+
using System.Threading.Tasks;
25+
using Elasticsearch.Net;
26+
using static Elasticsearch.Net.HttpMethod;
27+
28+
// ReSharper disable InterpolatedStringExpressionIsNotIFormattable
29+
// ReSharper disable once CheckNamespace
30+
// ReSharper disable InterpolatedStringExpressionIsNotIFormattable
31+
// ReSharper disable RedundantExtendsListEntry
32+
namespace Elasticsearch.Net.Specification.EnrichApi
33+
{
34+
///<summary>
35+
/// Enrich APIs.
36+
/// <para>Not intended to be instantiated directly. Use the <see cref = "IElasticLowLevelClient.Enrich"/> property
37+
/// on <see cref = "IElasticLowLevelClient"/>.
38+
///</para>
39+
///</summary>
40+
public class LowLevelEnrichNamespace : NamespacedClientProxy
41+
{
42+
internal LowLevelEnrichNamespace(ElasticLowLevelClient client): base(client)
43+
{
44+
}
45+
46+
///<summary>DELETE on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-delete-policy.html</para></summary>
47+
///<param name = "name">The name of the enrich policy</param>
48+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
49+
public TResponse DeletePolicy<TResponse>(string name, DeleteEnrichPolicyRequestParameters requestParameters = null)
50+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(DELETE, Url($"_enrich/policy/{name:name}"), null, RequestParams(requestParameters));
51+
///<summary>DELETE on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-delete-policy.html</para></summary>
52+
///<param name = "name">The name of the enrich policy</param>
53+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
54+
[MapsApi("enrich.delete_policy", "name")]
55+
public Task<TResponse> DeletePolicyAsync<TResponse>(string name, DeleteEnrichPolicyRequestParameters requestParameters = null, CancellationToken ctx = default)
56+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_enrich/policy/{name:name}"), ctx, null, RequestParams(requestParameters));
57+
///<summary>PUT on /_enrich/policy/{name}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-execute-policy.html</para></summary>
58+
///<param name = "name">The name of the enrich policy</param>
59+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
60+
public TResponse ExecutePolicy<TResponse>(string name, ExecuteEnrichPolicyRequestParameters requestParameters = null)
61+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(PUT, Url($"_enrich/policy/{name:name}/_execute"), null, RequestParams(requestParameters));
62+
///<summary>PUT on /_enrich/policy/{name}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-execute-policy.html</para></summary>
63+
///<param name = "name">The name of the enrich policy</param>
64+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
65+
[MapsApi("enrich.execute_policy", "name")]
66+
public Task<TResponse> ExecutePolicyAsync<TResponse>(string name, ExecuteEnrichPolicyRequestParameters requestParameters = null, CancellationToken ctx = default)
67+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_enrich/policy/{name:name}/_execute"), ctx, null, RequestParams(requestParameters));
68+
///<summary>GET on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html</para></summary>
69+
///<param name = "name">A comma-separated list of enrich policy names</param>
70+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
71+
public TResponse GetPolicy<TResponse>(string name, GetEnrichPolicyRequestParameters requestParameters = null)
72+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(GET, Url($"_enrich/policy/{name:name}"), null, RequestParams(requestParameters));
73+
///<summary>GET on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html</para></summary>
74+
///<param name = "name">A comma-separated list of enrich policy names</param>
75+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
76+
[MapsApi("enrich.get_policy", "name")]
77+
public Task<TResponse> GetPolicyAsync<TResponse>(string name, GetEnrichPolicyRequestParameters requestParameters = null, CancellationToken ctx = default)
78+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_enrich/policy/{name:name}"), ctx, null, RequestParams(requestParameters));
79+
///<summary>GET on /_enrich/policy/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html</para></summary>
80+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
81+
public TResponse GetPolicy<TResponse>(GetEnrichPolicyRequestParameters requestParameters = null)
82+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(GET, "_enrich/policy/", null, RequestParams(requestParameters));
83+
///<summary>GET on /_enrich/policy/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-get-policy.html</para></summary>
84+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
85+
[MapsApi("enrich.get_policy", "")]
86+
public Task<TResponse> GetPolicyAsync<TResponse>(GetEnrichPolicyRequestParameters requestParameters = null, CancellationToken ctx = default)
87+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(GET, "_enrich/policy/", ctx, null, RequestParams(requestParameters));
88+
///<summary>PUT on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-put-policy.html</para></summary>
89+
///<param name = "name">The name of the enrich policy</param>
90+
///<param name = "body">The enrich policy to register</param>
91+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
92+
public TResponse PutPolicy<TResponse>(string name, PostData body, PutEnrichPolicyRequestParameters requestParameters = null)
93+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(PUT, Url($"_enrich/policy/{name:name}"), body, RequestParams(requestParameters));
94+
///<summary>PUT on /_enrich/policy/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-put-policy.html</para></summary>
95+
///<param name = "name">The name of the enrich policy</param>
96+
///<param name = "body">The enrich policy to register</param>
97+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
98+
[MapsApi("enrich.put_policy", "name, body")]
99+
public Task<TResponse> PutPolicyAsync<TResponse>(string name, PostData body, PutEnrichPolicyRequestParameters requestParameters = null, CancellationToken ctx = default)
100+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_enrich/policy/{name:name}"), ctx, body, RequestParams(requestParameters));
101+
///<summary>GET on /_enrich/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-stats.html</para></summary>
102+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
103+
public TResponse Stats<TResponse>(EnrichStatsRequestParameters requestParameters = null)
104+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(GET, "_enrich/_stats", null, RequestParams(requestParameters));
105+
///<summary>GET on /_enrich/_stats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-stats.html</para></summary>
106+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
107+
[MapsApi("enrich.stats", "")]
108+
public Task<TResponse> StatsAsync<TResponse>(EnrichStatsRequestParameters requestParameters = null, CancellationToken ctx = default)
109+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(GET, "_enrich/_stats", ctx, null, RequestParams(requestParameters));
110+
}
111+
}

src/Elasticsearch.Net/ElasticLowLevelClient.NoNamespace.cs

+8
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using Elasticsearch.Net.Specification.CatApi;
2727
using Elasticsearch.Net.Specification.ClusterApi;
2828
using Elasticsearch.Net.Specification.CrossClusterReplicationApi;
29+
using Elasticsearch.Net.Specification.EnrichApi;
2930
using Elasticsearch.Net.Specification.GraphApi;
3031
using Elasticsearch.Net.Specification.IndexLifecycleManagementApi;
3132
using Elasticsearch.Net.Specification.IndicesApi;
@@ -71,6 +72,12 @@ public LowLevelCrossClusterReplicationNamespace CrossClusterReplication
7172
private set;
7273
}
7374

75+
public LowLevelEnrichNamespace Enrich
76+
{
77+
get;
78+
private set;
79+
}
80+
7481
public LowLevelGraphNamespace Graph
7582
{
7683
get;
@@ -172,6 +179,7 @@ partial void SetupNamespaces()
172179
Cat = new LowLevelCatNamespace(this);
173180
Cluster = new LowLevelClusterNamespace(this);
174181
CrossClusterReplication = new LowLevelCrossClusterReplicationNamespace(this);
182+
Enrich = new LowLevelEnrichNamespace(this);
175183
Graph = new LowLevelGraphNamespace(this);
176184
IndexLifecycleManagement = new LowLevelIndexLifecycleManagementNamespace(this);
177185
Indices = new LowLevelIndicesNamespace(this);

src/Elasticsearch.Net/IElasticLowLevelClient.Generated.cs

+7
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using Elasticsearch.Net.Specification.CatApi;
2727
using Elasticsearch.Net.Specification.ClusterApi;
2828
using Elasticsearch.Net.Specification.CrossClusterReplicationApi;
29+
using Elasticsearch.Net.Specification.EnrichApi;
2930
using Elasticsearch.Net.Specification.GraphApi;
3031
using Elasticsearch.Net.Specification.IndexLifecycleManagementApi;
3132
using Elasticsearch.Net.Specification.IndicesApi;
@@ -68,6 +69,12 @@ LowLevelCrossClusterReplicationNamespace CrossClusterReplication
6869
get;
6970
}
7071

72+
///<summary>Enrich APIs</summary>
73+
LowLevelEnrichNamespace Enrich
74+
{
75+
get;
76+
}
77+
7178
///<summary>Graph APIs</summary>
7279
LowLevelGraphNamespace Graph
7380
{

0 commit comments

Comments
 (0)