Skip to content

Commit 1c07db6

Browse files
authored
Add Pause/Resume Auto Follower APIs (#4273)
Add Pause/Resume Auto Follower APIs
1 parent e96b6ea commit 1c07db6

File tree

14 files changed

+298
-2
lines changed

14 files changed

+298
-2
lines changed

src/CodeGeneration/ApiGenerator/Configuration/CodeConfiguration.cs

-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ public static class CodeConfiguration
4545
"monitoring.bulk.json",
4646
"ml.estimate_memory_usage.json",
4747

48-
"ccr.pause_auto_follow_pattern.json",
49-
"ccr.resume_auto_follow_pattern.json",
5048
"data_frame_transform_deprecated.delete_transform.json",
5149
"data_frame_transform_deprecated.get_transform.json",
5250
"data_frame_transform_deprecated.get_transform_stats.json",

src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.CrossClusterReplication.cs

+12
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ public class GetAutoFollowPatternRequestParameters : RequestParameters<GetAutoFo
6969
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
7070
}
7171

72+
///<summary>Request options for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
73+
public class PauseAutoFollowPatternRequestParameters : RequestParameters<PauseAutoFollowPatternRequestParameters>
74+
{
75+
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
76+
}
77+
7278
///<summary>Request options for PauseFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
7379
public class PauseFollowIndexRequestParameters : RequestParameters<PauseFollowIndexRequestParameters>
7480
{
@@ -81,6 +87,12 @@ public class CreateAutoFollowPatternRequestParameters : RequestParameters<Create
8187
public override HttpMethod DefaultHttpMethod => HttpMethod.PUT;
8288
}
8389

90+
///<summary>Request options for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
91+
public class ResumeAutoFollowPatternRequestParameters : RequestParameters<ResumeAutoFollowPatternRequestParameters>
92+
{
93+
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
94+
}
95+
8496
///<summary>Request options for ResumeFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
8597
public class ResumeFollowIndexRequestParameters : RequestParameters<ResumeFollowIndexRequestParameters>
8698
{

src/Elasticsearch.Net/ElasticLowLevelClient.CrossClusterReplication.cs

+22
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,17 @@ public TResponse GetAutoFollowPattern<TResponse>(string name, GetAutoFollowPatte
122122
[MapsApi("ccr.get_auto_follow_pattern", "name")]
123123
public Task<TResponse> GetAutoFollowPatternAsync<TResponse>(string name, GetAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
124124
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ccr/auto_follow/{name:name}"), ctx, null, RequestParams(requestParameters));
125+
///<summary>POST on /_ccr/auto_follow/{name}/pause <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
126+
///<param name = "name">The name of the auto follow pattern that should pause discovering new indices to follow.</param>
127+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
128+
public TResponse PauseAutoFollowPattern<TResponse>(string name, PauseAutoFollowPatternRequestParameters requestParameters = null)
129+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/pause"), null, RequestParams(requestParameters));
130+
///<summary>POST on /_ccr/auto_follow/{name}/pause <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
131+
///<param name = "name">The name of the auto follow pattern that should pause discovering new indices to follow.</param>
132+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
133+
[MapsApi("ccr.pause_auto_follow_pattern", "name")]
134+
public Task<TResponse> PauseAutoFollowPatternAsync<TResponse>(string name, PauseAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
135+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/pause"), ctx, null, RequestParams(requestParameters));
125136
///<summary>POST on /{index}/_ccr/pause_follow <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
126137
///<param name = "index">The name of the follower index that should pause following its leader index.</param>
127138
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
@@ -146,6 +157,17 @@ public TResponse CreateAutoFollowPattern<TResponse>(string name, PostData body,
146157
[MapsApi("ccr.put_auto_follow_pattern", "name, body")]
147158
public Task<TResponse> CreateAutoFollowPatternAsync<TResponse>(string name, PostData body, CreateAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
148159
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ccr/auto_follow/{name:name}"), ctx, body, RequestParams(requestParameters));
160+
///<summary>POST on /_ccr/auto_follow/{name}/resume <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
161+
///<param name = "name">The name of the auto follow pattern to resume discovering new indices to follow.</param>
162+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
163+
public TResponse ResumeAutoFollowPattern<TResponse>(string name, ResumeAutoFollowPatternRequestParameters requestParameters = null)
164+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/resume"), null, RequestParams(requestParameters));
165+
///<summary>POST on /_ccr/auto_follow/{name}/resume <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
166+
///<param name = "name">The name of the auto follow pattern to resume discovering new indices to follow.</param>
167+
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
168+
[MapsApi("ccr.resume_auto_follow_pattern", "name")]
169+
public Task<TResponse> ResumeAutoFollowPatternAsync<TResponse>(string name, ResumeAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
170+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/resume"), ctx, null, RequestParams(requestParameters));
149171
///<summary>POST on /{index}/_ccr/resume_follow <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
150172
///<param name = "index">The name of the follow index to resume following.</param>
151173
///<param name = "body">The name of the leader index and other optional ccr related parameters</param>

src/Nest/Descriptors.CrossClusterReplication.cs

+42
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,27 @@ public GetAutoFollowPatternDescriptor(Name name): base(r => r.Optional("name", n
183183
// Request parameters
184184
}
185185

186+
///<summary>Descriptor for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
187+
public partial class PauseAutoFollowPatternDescriptor : RequestDescriptorBase<PauseAutoFollowPatternDescriptor, PauseAutoFollowPatternRequestParameters, IPauseAutoFollowPatternRequest>, IPauseAutoFollowPatternRequest
188+
{
189+
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationPauseAutoFollowPattern;
190+
///<summary>/_ccr/auto_follow/{name}/pause</summary>
191+
///<param name = "name">this parameter is required</param>
192+
public PauseAutoFollowPatternDescriptor(Name name): base(r => r.Required("name", name))
193+
{
194+
}
195+
196+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
197+
[SerializationConstructor]
198+
protected PauseAutoFollowPatternDescriptor(): base()
199+
{
200+
}
201+
202+
// values part of the url path
203+
Name IPauseAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
204+
// Request parameters
205+
}
206+
186207
///<summary>Descriptor for PauseFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
187208
public partial class PauseFollowIndexDescriptor : RequestDescriptorBase<PauseFollowIndexDescriptor, PauseFollowIndexRequestParameters, IPauseFollowIndexRequest>, IPauseFollowIndexRequest
188209
{
@@ -230,6 +251,27 @@ protected CreateAutoFollowPatternDescriptor(): base()
230251
// Request parameters
231252
}
232253

254+
///<summary>Descriptor for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
255+
public partial class ResumeAutoFollowPatternDescriptor : RequestDescriptorBase<ResumeAutoFollowPatternDescriptor, ResumeAutoFollowPatternRequestParameters, IResumeAutoFollowPatternRequest>, IResumeAutoFollowPatternRequest
256+
{
257+
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationResumeAutoFollowPattern;
258+
///<summary>/_ccr/auto_follow/{name}/resume</summary>
259+
///<param name = "name">this parameter is required</param>
260+
public ResumeAutoFollowPatternDescriptor(Name name): base(r => r.Required("name", name))
261+
{
262+
}
263+
264+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
265+
[SerializationConstructor]
266+
protected ResumeAutoFollowPatternDescriptor(): base()
267+
{
268+
}
269+
270+
// values part of the url path
271+
Name IResumeAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
272+
// Request parameters
273+
}
274+
233275
///<summary>Descriptor for ResumeFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
234276
public partial class ResumeFollowIndexDescriptor : RequestDescriptorBase<ResumeFollowIndexDescriptor, ResumeFollowIndexRequestParameters, IResumeFollowIndexRequest>, IResumeFollowIndexRequest
235277
{

src/Nest/ElasticClient.CrossClusterReplication.cs

+48
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,30 @@ internal CrossClusterReplicationNamespace(ElasticClient client): base(client)
181181
/// </summary>
182182
public Task<GetAutoFollowPatternResponse> GetAutoFollowPatternAsync(IGetAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IGetAutoFollowPatternRequest, GetAutoFollowPatternResponse>(request, request.RequestParameters, ct);
183183
/// <summary>
184+
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
185+
/// <para></para>
186+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</a>
187+
/// </summary>
188+
public PauseAutoFollowPatternResponse PauseAutoFollowPattern(Name name, Func<PauseAutoFollowPatternDescriptor, IPauseAutoFollowPatternRequest> selector = null) => PauseAutoFollowPattern(selector.InvokeOrDefault(new PauseAutoFollowPatternDescriptor(name: name)));
189+
/// <summary>
190+
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
191+
/// <para></para>
192+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</a>
193+
/// </summary>
194+
public Task<PauseAutoFollowPatternResponse> PauseAutoFollowPatternAsync(Name name, Func<PauseAutoFollowPatternDescriptor, IPauseAutoFollowPatternRequest> selector = null, CancellationToken ct = default) => PauseAutoFollowPatternAsync(selector.InvokeOrDefault(new PauseAutoFollowPatternDescriptor(name: name)), ct);
195+
/// <summary>
196+
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
197+
/// <para></para>
198+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</a>
199+
/// </summary>
200+
public PauseAutoFollowPatternResponse PauseAutoFollowPattern(IPauseAutoFollowPatternRequest request) => DoRequest<IPauseAutoFollowPatternRequest, PauseAutoFollowPatternResponse>(request, request.RequestParameters);
201+
/// <summary>
202+
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
203+
/// <para></para>
204+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</a>
205+
/// </summary>
206+
public Task<PauseAutoFollowPatternResponse> PauseAutoFollowPatternAsync(IPauseAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IPauseAutoFollowPatternRequest, PauseAutoFollowPatternResponse>(request, request.RequestParameters, ct);
207+
/// <summary>
184208
/// <c>POST</c> request to the <c>ccr.pause_follow</c> API, read more about this API online:
185209
/// <para></para>
186210
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</a>
@@ -229,6 +253,30 @@ internal CrossClusterReplicationNamespace(ElasticClient client): base(client)
229253
/// </summary>
230254
public Task<CreateAutoFollowPatternResponse> CreateAutoFollowPatternAsync(ICreateAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<ICreateAutoFollowPatternRequest, CreateAutoFollowPatternResponse>(request, request.RequestParameters, ct);
231255
/// <summary>
256+
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
257+
/// <para></para>
258+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</a>
259+
/// </summary>
260+
public ResumeAutoFollowPatternResponse ResumeAutoFollowPattern(Name name, Func<ResumeAutoFollowPatternDescriptor, IResumeAutoFollowPatternRequest> selector = null) => ResumeAutoFollowPattern(selector.InvokeOrDefault(new ResumeAutoFollowPatternDescriptor(name: name)));
261+
/// <summary>
262+
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
263+
/// <para></para>
264+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</a>
265+
/// </summary>
266+
public Task<ResumeAutoFollowPatternResponse> ResumeAutoFollowPatternAsync(Name name, Func<ResumeAutoFollowPatternDescriptor, IResumeAutoFollowPatternRequest> selector = null, CancellationToken ct = default) => ResumeAutoFollowPatternAsync(selector.InvokeOrDefault(new ResumeAutoFollowPatternDescriptor(name: name)), ct);
267+
/// <summary>
268+
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
269+
/// <para></para>
270+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</a>
271+
/// </summary>
272+
public ResumeAutoFollowPatternResponse ResumeAutoFollowPattern(IResumeAutoFollowPatternRequest request) => DoRequest<IResumeAutoFollowPatternRequest, ResumeAutoFollowPatternResponse>(request, request.RequestParameters);
273+
/// <summary>
274+
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
275+
/// <para></para>
276+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</a>
277+
/// </summary>
278+
public Task<ResumeAutoFollowPatternResponse> ResumeAutoFollowPatternAsync(IResumeAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IResumeAutoFollowPatternRequest, ResumeAutoFollowPatternResponse>(request, request.RequestParameters, ct);
279+
/// <summary>
232280
/// <c>POST</c> request to the <c>ccr.resume_follow</c> API, read more about this API online:
233281
/// <para></para>
234282
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</a>

src/Nest/Requests.CrossClusterReplication.cs

+66
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,39 @@ public GetAutoFollowPatternRequest(Name name): base(r => r.Optional("name", name
237237
// Request parameters
238238
}
239239

240+
[InterfaceDataContract]
241+
public partial interface IPauseAutoFollowPatternRequest : IRequest<PauseAutoFollowPatternRequestParameters>
242+
{
243+
[IgnoreDataMember]
244+
Name Name
245+
{
246+
get;
247+
}
248+
}
249+
250+
///<summary>Request for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
251+
public partial class PauseAutoFollowPatternRequest : PlainRequestBase<PauseAutoFollowPatternRequestParameters>, IPauseAutoFollowPatternRequest
252+
{
253+
protected IPauseAutoFollowPatternRequest Self => this;
254+
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationPauseAutoFollowPattern;
255+
///<summary>/_ccr/auto_follow/{name}/pause</summary>
256+
///<param name = "name">this parameter is required</param>
257+
public PauseAutoFollowPatternRequest(Name name): base(r => r.Required("name", name))
258+
{
259+
}
260+
261+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
262+
[SerializationConstructor]
263+
protected PauseAutoFollowPatternRequest(): base()
264+
{
265+
}
266+
267+
// values part of the url path
268+
[IgnoreDataMember]
269+
Name IPauseAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
270+
// Request parameters
271+
}
272+
240273
[InterfaceDataContract]
241274
public partial interface IPauseFollowIndexRequest : IRequest<PauseFollowIndexRequestParameters>
242275
{
@@ -303,6 +336,39 @@ protected CreateAutoFollowPatternRequest(): base()
303336
// Request parameters
304337
}
305338

339+
[InterfaceDataContract]
340+
public partial interface IResumeAutoFollowPatternRequest : IRequest<ResumeAutoFollowPatternRequestParameters>
341+
{
342+
[IgnoreDataMember]
343+
Name Name
344+
{
345+
get;
346+
}
347+
}
348+
349+
///<summary>Request for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
350+
public partial class ResumeAutoFollowPatternRequest : PlainRequestBase<ResumeAutoFollowPatternRequestParameters>, IResumeAutoFollowPatternRequest
351+
{
352+
protected IResumeAutoFollowPatternRequest Self => this;
353+
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationResumeAutoFollowPattern;
354+
///<summary>/_ccr/auto_follow/{name}/resume</summary>
355+
///<param name = "name">this parameter is required</param>
356+
public ResumeAutoFollowPatternRequest(Name name): base(r => r.Required("name", name))
357+
{
358+
}
359+
360+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
361+
[SerializationConstructor]
362+
protected ResumeAutoFollowPatternRequest(): base()
363+
{
364+
}
365+
366+
// values part of the url path
367+
[IgnoreDataMember]
368+
Name IResumeAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
369+
// Request parameters
370+
}
371+
306372
[InterfaceDataContract]
307373
public partial interface IResumeFollowIndexRequest : IRequest<ResumeFollowIndexRequestParameters>
308374
{

0 commit comments

Comments
 (0)