Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Pause/Resume Auto Follower APIs #4273

Merged
merged 5 commits into from
Dec 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ public static class CodeConfiguration
"monitoring.bulk.json",
"ml.estimate_memory_usage.json",

"ccr.pause_auto_follow_pattern.json",
"ccr.resume_auto_follow_pattern.json",
"data_frame_transform_deprecated.delete_transform.json",
"data_frame_transform_deprecated.get_transform.json",
"data_frame_transform_deprecated.get_transform_stats.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,12 @@ public class GetAutoFollowPatternRequestParameters : RequestParameters<GetAutoFo
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
}

///<summary>Request options for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
public class PauseAutoFollowPatternRequestParameters : RequestParameters<PauseAutoFollowPatternRequestParameters>
{
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
}

///<summary>Request options for PauseFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
public class PauseFollowIndexRequestParameters : RequestParameters<PauseFollowIndexRequestParameters>
{
Expand All @@ -81,6 +87,12 @@ public class CreateAutoFollowPatternRequestParameters : RequestParameters<Create
public override HttpMethod DefaultHttpMethod => HttpMethod.PUT;
}

///<summary>Request options for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
public class ResumeAutoFollowPatternRequestParameters : RequestParameters<ResumeAutoFollowPatternRequestParameters>
{
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
}

///<summary>Request options for ResumeFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
public class ResumeFollowIndexRequestParameters : RequestParameters<ResumeFollowIndexRequestParameters>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,17 @@ public TResponse GetAutoFollowPattern<TResponse>(string name, GetAutoFollowPatte
[MapsApi("ccr.get_auto_follow_pattern", "name")]
public Task<TResponse> GetAutoFollowPatternAsync<TResponse>(string name, GetAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(GET, Url($"_ccr/auto_follow/{name:name}"), ctx, null, RequestParams(requestParameters));
///<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>
///<param name = "name">The name of the auto follow pattern that should pause discovering new indices to follow.</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
public TResponse PauseAutoFollowPattern<TResponse>(string name, PauseAutoFollowPatternRequestParameters requestParameters = null)
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/pause"), null, RequestParams(requestParameters));
///<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>
///<param name = "name">The name of the auto follow pattern that should pause discovering new indices to follow.</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
[MapsApi("ccr.pause_auto_follow_pattern", "name")]
public Task<TResponse> PauseAutoFollowPatternAsync<TResponse>(string name, PauseAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/pause"), ctx, null, RequestParams(requestParameters));
///<summary>POST on /{index}/_ccr/pause_follow <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
///<param name = "index">The name of the follower index that should pause following its leader index.</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
Expand All @@ -146,6 +157,17 @@ public TResponse CreateAutoFollowPattern<TResponse>(string name, PostData body,
[MapsApi("ccr.put_auto_follow_pattern", "name, body")]
public Task<TResponse> CreateAutoFollowPatternAsync<TResponse>(string name, PostData body, CreateAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_ccr/auto_follow/{name:name}"), ctx, body, RequestParams(requestParameters));
///<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>
///<param name = "name">The name of the auto follow pattern to resume discovering new indices to follow.</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
public TResponse ResumeAutoFollowPattern<TResponse>(string name, ResumeAutoFollowPatternRequestParameters requestParameters = null)
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/resume"), null, RequestParams(requestParameters));
///<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>
///<param name = "name">The name of the auto follow pattern to resume discovering new indices to follow.</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
[MapsApi("ccr.resume_auto_follow_pattern", "name")]
public Task<TResponse> ResumeAutoFollowPatternAsync<TResponse>(string name, ResumeAutoFollowPatternRequestParameters requestParameters = null, CancellationToken ctx = default)
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_ccr/auto_follow/{name:name}/resume"), ctx, null, RequestParams(requestParameters));
///<summary>POST on /{index}/_ccr/resume_follow <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
///<param name = "index">The name of the follow index to resume following.</param>
///<param name = "body">The name of the leader index and other optional ccr related parameters</param>
Expand Down
42 changes: 42 additions & 0 deletions src/Nest/Descriptors.CrossClusterReplication.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,27 @@ public GetAutoFollowPatternDescriptor(Name name): base(r => r.Optional("name", n
// Request parameters
}

///<summary>Descriptor for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
public partial class PauseAutoFollowPatternDescriptor : RequestDescriptorBase<PauseAutoFollowPatternDescriptor, PauseAutoFollowPatternRequestParameters, IPauseAutoFollowPatternRequest>, IPauseAutoFollowPatternRequest
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationPauseAutoFollowPattern;
///<summary>/_ccr/auto_follow/{name}/pause</summary>
///<param name = "name">this parameter is required</param>
public PauseAutoFollowPatternDescriptor(Name name): base(r => r.Required("name", name))
{
}

///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
[SerializationConstructor]
protected PauseAutoFollowPatternDescriptor(): base()
{
}

// values part of the url path
Name IPauseAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
}

///<summary>Descriptor for PauseFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-pause-follow.html</para></summary>
public partial class PauseFollowIndexDescriptor : RequestDescriptorBase<PauseFollowIndexDescriptor, PauseFollowIndexRequestParameters, IPauseFollowIndexRequest>, IPauseFollowIndexRequest
{
Expand Down Expand Up @@ -230,6 +251,27 @@ protected CreateAutoFollowPatternDescriptor(): base()
// Request parameters
}

///<summary>Descriptor for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
public partial class ResumeAutoFollowPatternDescriptor : RequestDescriptorBase<ResumeAutoFollowPatternDescriptor, ResumeAutoFollowPatternRequestParameters, IResumeAutoFollowPatternRequest>, IResumeAutoFollowPatternRequest
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationResumeAutoFollowPattern;
///<summary>/_ccr/auto_follow/{name}/resume</summary>
///<param name = "name">this parameter is required</param>
public ResumeAutoFollowPatternDescriptor(Name name): base(r => r.Required("name", name))
{
}

///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
[SerializationConstructor]
protected ResumeAutoFollowPatternDescriptor(): base()
{
}

// values part of the url path
Name IResumeAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
}

///<summary>Descriptor for ResumeFollowIndex <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-post-resume-follow.html</para></summary>
public partial class ResumeFollowIndexDescriptor : RequestDescriptorBase<ResumeFollowIndexDescriptor, ResumeFollowIndexRequestParameters, IResumeFollowIndexRequest>, IResumeFollowIndexRequest
{
Expand Down
48 changes: 48 additions & 0 deletions src/Nest/ElasticClient.CrossClusterReplication.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,30 @@ internal CrossClusterReplicationNamespace(ElasticClient client): base(client)
/// </summary>
public Task<GetAutoFollowPatternResponse> GetAutoFollowPatternAsync(IGetAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IGetAutoFollowPatternRequest, GetAutoFollowPatternResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public PauseAutoFollowPatternResponse PauseAutoFollowPattern(Name name, Func<PauseAutoFollowPatternDescriptor, IPauseAutoFollowPatternRequest> selector = null) => PauseAutoFollowPattern(selector.InvokeOrDefault(new PauseAutoFollowPatternDescriptor(name: name)));
/// <summary>
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<PauseAutoFollowPatternResponse> PauseAutoFollowPatternAsync(Name name, Func<PauseAutoFollowPatternDescriptor, IPauseAutoFollowPatternRequest> selector = null, CancellationToken ct = default) => PauseAutoFollowPatternAsync(selector.InvokeOrDefault(new PauseAutoFollowPatternDescriptor(name: name)), ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public PauseAutoFollowPatternResponse PauseAutoFollowPattern(IPauseAutoFollowPatternRequest request) => DoRequest<IPauseAutoFollowPatternRequest, PauseAutoFollowPatternResponse>(request, request.RequestParameters);
/// <summary>
/// <c>POST</c> request to the <c>ccr.pause_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<PauseAutoFollowPatternResponse> PauseAutoFollowPatternAsync(IPauseAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IPauseAutoFollowPatternRequest, PauseAutoFollowPatternResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.pause_follow</c> API, read more about this API online:
/// <para></para>
/// <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>
Expand Down Expand Up @@ -229,6 +253,30 @@ internal CrossClusterReplicationNamespace(ElasticClient client): base(client)
/// </summary>
public Task<CreateAutoFollowPatternResponse> CreateAutoFollowPatternAsync(ICreateAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<ICreateAutoFollowPatternRequest, CreateAutoFollowPatternResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public ResumeAutoFollowPatternResponse ResumeAutoFollowPattern(Name name, Func<ResumeAutoFollowPatternDescriptor, IResumeAutoFollowPatternRequest> selector = null) => ResumeAutoFollowPattern(selector.InvokeOrDefault(new ResumeAutoFollowPatternDescriptor(name: name)));
/// <summary>
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<ResumeAutoFollowPatternResponse> ResumeAutoFollowPatternAsync(Name name, Func<ResumeAutoFollowPatternDescriptor, IResumeAutoFollowPatternRequest> selector = null, CancellationToken ct = default) => ResumeAutoFollowPatternAsync(selector.InvokeOrDefault(new ResumeAutoFollowPatternDescriptor(name: name)), ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public ResumeAutoFollowPatternResponse ResumeAutoFollowPattern(IResumeAutoFollowPatternRequest request) => DoRequest<IResumeAutoFollowPatternRequest, ResumeAutoFollowPatternResponse>(request, request.RequestParameters);
/// <summary>
/// <c>POST</c> request to the <c>ccr.resume_auto_follow_pattern</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<ResumeAutoFollowPatternResponse> ResumeAutoFollowPatternAsync(IResumeAutoFollowPatternRequest request, CancellationToken ct = default) => DoRequestAsync<IResumeAutoFollowPatternRequest, ResumeAutoFollowPatternResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ccr.resume_follow</c> API, read more about this API online:
/// <para></para>
/// <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>
Expand Down
66 changes: 66 additions & 0 deletions src/Nest/Requests.CrossClusterReplication.cs
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,39 @@ public GetAutoFollowPatternRequest(Name name): base(r => r.Optional("name", name
// Request parameters
}

[InterfaceDataContract]
public partial interface IPauseAutoFollowPatternRequest : IRequest<PauseAutoFollowPatternRequestParameters>
{
[IgnoreDataMember]
Name Name
{
get;
}
}

///<summary>Request for PauseAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-pause-auto-follow-pattern.html</para></summary>
public partial class PauseAutoFollowPatternRequest : PlainRequestBase<PauseAutoFollowPatternRequestParameters>, IPauseAutoFollowPatternRequest
{
protected IPauseAutoFollowPatternRequest Self => this;
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationPauseAutoFollowPattern;
///<summary>/_ccr/auto_follow/{name}/pause</summary>
///<param name = "name">this parameter is required</param>
public PauseAutoFollowPatternRequest(Name name): base(r => r.Required("name", name))
{
}

///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
[SerializationConstructor]
protected PauseAutoFollowPatternRequest(): base()
{
}

// values part of the url path
[IgnoreDataMember]
Name IPauseAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
}

[InterfaceDataContract]
public partial interface IPauseFollowIndexRequest : IRequest<PauseFollowIndexRequestParameters>
{
Expand Down Expand Up @@ -303,6 +336,39 @@ protected CreateAutoFollowPatternRequest(): base()
// Request parameters
}

[InterfaceDataContract]
public partial interface IResumeAutoFollowPatternRequest : IRequest<ResumeAutoFollowPatternRequestParameters>
{
[IgnoreDataMember]
Name Name
{
get;
}
}

///<summary>Request for ResumeAutoFollowPattern <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ccr-resume-auto-follow-pattern.html</para></summary>
public partial class ResumeAutoFollowPatternRequest : PlainRequestBase<ResumeAutoFollowPatternRequestParameters>, IResumeAutoFollowPatternRequest
{
protected IResumeAutoFollowPatternRequest Self => this;
internal override ApiUrls ApiUrls => ApiUrlsLookups.CrossClusterReplicationResumeAutoFollowPattern;
///<summary>/_ccr/auto_follow/{name}/resume</summary>
///<param name = "name">this parameter is required</param>
public ResumeAutoFollowPatternRequest(Name name): base(r => r.Required("name", name))
{
}

///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
[SerializationConstructor]
protected ResumeAutoFollowPatternRequest(): base()
{
}

// values part of the url path
[IgnoreDataMember]
Name IResumeAutoFollowPatternRequest.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
}

[InterfaceDataContract]
public partial interface IResumeFollowIndexRequest : IRequest<ResumeFollowIndexRequestParameters>
{
Expand Down
Loading