Skip to content

Commit 37ac2b0

Browse files
committed
add support for the rollup index caps API (#3535)
* add support for the rollup index caps API * SkipVersion on RollupJobCrudTests (cherry picked from commit 6df0e29)
1 parent 1701405 commit 37ac2b0

File tree

14 files changed

+287
-3
lines changed

14 files changed

+287
-3
lines changed

src/CodeGeneration/ApiGenerator/ApiGenerator.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public class ApiGenerator
4949
"xpack.security.has_privileges.json",
5050
"xpack.security.put_privilege.json",
5151
"xpack.security.put_privileges.json",
52-
"xpack.rollup.get_rollup_index_caps.json",
5352
};
5453

5554
public static void Generate(string downloadBranch, params string[] folders)

src/Elasticsearch.Net/Domain/RequestParameters/RequestParameters.Generated.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2488,6 +2488,11 @@ public class GetRollupCapabilitiesRequestParameters : RequestParameters<GetRollu
24882488
{
24892489
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
24902490
}
2491+
///<summary>Request options for XpackRollupGetRollupIndexCaps<pre></pre></summary>
2492+
public partial class GetRollupIndexCapabilitiesRequestParameters : RequestParameters<GetRollupIndexCapabilitiesRequestParameters>
2493+
{
2494+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
2495+
}
24912496
///<summary>Request options for XpackRollupPutJob<pre></pre></summary>
24922497
public class CreateRollupJobRequestParameters : RequestParameters<CreateRollupJobRequestParameters>
24932498
{

src/Elasticsearch.Net/ElasticLowLevelClient.Generated.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3662,6 +3662,16 @@ public TResponse XpackRollupGetRollupCaps<TResponse>(GetRollupCapabilitiesReques
36623662
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
36633663
public Task<TResponse> XpackRollupGetRollupCapsAsync<TResponse>(GetRollupCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
36643664
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/rollup/data/"), ctx, null, _params(requestParameters));
3665+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
3666+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
3667+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3668+
public TResponse XpackRollupGetRollupIndexCaps<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null)
3669+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequest<TResponse>(GET, Url($"{index.NotNull("index")}/_xpack/rollup/data"), null, _params(requestParameters));
3670+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
3671+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
3672+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3673+
public Task<TResponse> XpackRollupGetRollupIndexCapsAsync<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
3674+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"{index.NotNull("index")}/_xpack/rollup/data"), ctx, null, _params(requestParameters));
36653675
///<summary>PUT on /_xpack/rollup/job/{id} <para></para></summary>
36663676
///<param name="id">The ID of the job to create</param>
36673677
///<param name="body">The job configuration</param>

src/Elasticsearch.Net/IElasticLowLevelClient.Generated.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2966,6 +2966,14 @@ public partial interface IElasticLowLevelClient
29662966
///<summary>GET on /_xpack/rollup/data/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-get-rollup-caps.html</para></summary>
29672967
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
29682968
Task<TResponse> XpackRollupGetRollupCapsAsync<TResponse>(GetRollupCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
2969+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
2970+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
2971+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
2972+
TResponse XpackRollupGetRollupIndexCaps<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new();
2973+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
2974+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
2975+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
2976+
Task<TResponse> XpackRollupGetRollupIndexCapsAsync<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
29692977
///<summary>PUT on /_xpack/rollup/job/{id} <para></para></summary>
29702978
///<param name="id">The ID of the job to create</param>
29712979
///<param name="body">The job configuration</param>

src/Nest/XPack/RollUp/DeleteRollupJob/DeleteRollupJobResponse.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,12 @@ namespace Nest
55
[JsonObject]
66
public interface IDeleteRollupJobResponse : IAcknowledgedResponse { }
77

8-
public class DeleteRollupJobResponse : AcknowledgedResponseBase, IDeleteRollupJobResponse { }
8+
public class DeleteRollupJobResponse : AcknowledgedResponseBase, IDeleteRollupJobResponse
9+
{
10+
/// <summary>
11+
/// Checks whether the response returned a valid HTTP status code and that the delete is acknowledged
12+
/// in one go. See also <see cref="AcknowledgedResponseBase.Acknowledged"/>
13+
/// </summary>
14+
public override bool IsValid => base.IsValid && Acknowledged;
15+
}
916
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
using System;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Elasticsearch.Net;
5+
6+
namespace Nest
7+
{
8+
public partial interface IElasticClient
9+
{
10+
/// <summary>
11+
/// </summary>
12+
IGetRollupIndexCapabilitiesResponse GetRollupIndexCapabilities(
13+
IndexName index,
14+
Func<GetRollupIndexCapabilitiesDescriptor, IGetRollupIndexCapabilitiesRequest> selector = null
15+
);
16+
17+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
18+
IGetRollupIndexCapabilitiesResponse GetRollupIndexCapabilities(IGetRollupIndexCapabilitiesRequest request);
19+
20+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
21+
Task<IGetRollupIndexCapabilitiesResponse> GetRollupIndexCapabilitiesAsync(
22+
IndexName index,
23+
Func<GetRollupIndexCapabilitiesDescriptor, IGetRollupIndexCapabilitiesRequest> selector = null,
24+
CancellationToken cancellationToken = default
25+
);
26+
27+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
28+
Task<IGetRollupIndexCapabilitiesResponse> GetRollupIndexCapabilitiesAsync(IGetRollupIndexCapabilitiesRequest request,
29+
CancellationToken cancellationToken = default
30+
);
31+
}
32+
33+
public partial class ElasticClient
34+
{
35+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
36+
public IGetRollupIndexCapabilitiesResponse GetRollupIndexCapabilities(
37+
IndexName index,
38+
Func<GetRollupIndexCapabilitiesDescriptor, IGetRollupIndexCapabilitiesRequest> selector = null
39+
) =>
40+
GetRollupIndexCapabilities(selector.InvokeOrDefault(new GetRollupIndexCapabilitiesDescriptor(index)));
41+
42+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
43+
public IGetRollupIndexCapabilitiesResponse GetRollupIndexCapabilities(IGetRollupIndexCapabilitiesRequest request) =>
44+
Dispatcher.Dispatch<IGetRollupIndexCapabilitiesRequest, GetRollupIndexCapabilitiesRequestParameters, GetRollupIndexCapabilitiesResponse>(
45+
request,
46+
(p, d) => LowLevelDispatch.XpackRollupGetRollupIndexCapsDispatch<GetRollupIndexCapabilitiesResponse>(p)
47+
);
48+
49+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
50+
public Task<IGetRollupIndexCapabilitiesResponse> GetRollupIndexCapabilitiesAsync(
51+
IndexName index,
52+
Func<GetRollupIndexCapabilitiesDescriptor, IGetRollupIndexCapabilitiesRequest> selector = null,
53+
CancellationToken cancellationToken = default
54+
) =>
55+
GetRollupIndexCapabilitiesAsync(selector.InvokeOrDefault(new GetRollupIndexCapabilitiesDescriptor(index)), cancellationToken);
56+
57+
/// <inheritdoc cref="GetRollupIndexCapabilities(IndexName, System.Func{Nest.GetRollupIndexCapabilitiesDescriptor,Nest.IGetRollupIndexCapabilitiesRequest})" />
58+
public Task<IGetRollupIndexCapabilitiesResponse> GetRollupIndexCapabilitiesAsync(IGetRollupIndexCapabilitiesRequest request,
59+
CancellationToken cancellationToken = default
60+
) =>
61+
Dispatcher
62+
.DispatchAsync<IGetRollupIndexCapabilitiesRequest, GetRollupIndexCapabilitiesRequestParameters, GetRollupIndexCapabilitiesResponse,
63+
IGetRollupIndexCapabilitiesResponse>(
64+
request,
65+
cancellationToken,
66+
(p, d, c) => LowLevelDispatch.XpackRollupGetRollupIndexCapsDispatchAsync<GetRollupIndexCapabilitiesResponse>(p, c)
67+
);
68+
}
69+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Nest
2+
{
3+
[MapsApi("xpack.rollup.get_rollup_index_caps.json")]
4+
public partial interface IGetRollupIndexCapabilitiesRequest { }
5+
6+
public partial class GetRollupIndexCapabilitiesRequest { }
7+
8+
public partial class GetRollupIndexCapabilitiesDescriptor { }
9+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Elasticsearch.Net;
5+
using Newtonsoft.Json;
6+
7+
namespace Nest
8+
{
9+
public interface IGetRollupIndexCapabilitiesResponse : IResponse
10+
{
11+
IReadOnlyDictionary<IndexName, RollupIndexCapabilities> Indices { get; }
12+
}
13+
14+
[JsonConverter(typeof(ResolvableDictionaryResponseJsonConverter<GetRollupIndexCapabilitiesResponse, IndexName, RollupIndexCapabilities>))]
15+
public class GetRollupIndexCapabilitiesResponse : DictionaryResponseBase<IndexName, RollupIndexCapabilities>, IGetRollupIndexCapabilitiesResponse
16+
{
17+
public IReadOnlyDictionary<IndexName, RollupIndexCapabilities> Indices => Self.BackingDictionary;
18+
}
19+
20+
public class RollupIndexCapabilities
21+
{
22+
[JsonProperty("rollup_jobs")]
23+
public IReadOnlyCollection<RollupIndexCapabilitiesJob> RollupJobs { get; internal set; }
24+
}
25+
26+
public class RollupIndexCapabilitiesJob
27+
{
28+
[JsonProperty("fields")]
29+
public RollupFieldsIndexCapabilitiesDictionary Fields { get; internal set; }
30+
31+
[JsonProperty("index_pattern")]
32+
public string IndexPattern { get; internal set; }
33+
34+
[JsonProperty("job_id")]
35+
public string JobId { get; internal set; }
36+
37+
[JsonProperty("rollup_index")]
38+
public string RollupIndex { get; internal set; }
39+
}
40+
41+
public class RollupFieldsIndexCapabilities : IsADictionaryBase<string, string> { }
42+
43+
[JsonConverter(typeof(Converter))]
44+
public class RollupFieldsIndexCapabilitiesDictionary : ResolvableDictionaryProxy<Field, IReadOnlyCollection<RollupFieldsIndexCapabilities>>
45+
{
46+
internal RollupFieldsIndexCapabilitiesDictionary(IConnectionConfigurationValues c,
47+
IReadOnlyDictionary<Field, IReadOnlyCollection<RollupFieldsIndexCapabilities>> b
48+
) : base(c, b) { }
49+
50+
public IReadOnlyCollection<RollupFieldsIndexCapabilities> Field<T>(Expression<Func<T, object>> selector) => this[selector];
51+
52+
internal class Converter
53+
: ResolvableDictionaryJsonConverterBase
54+
<RollupFieldsIndexCapabilitiesDictionary, Field, IReadOnlyCollection<RollupFieldsIndexCapabilities>>
55+
{
56+
protected override RollupFieldsIndexCapabilitiesDictionary Create(
57+
IConnectionSettingsValues s, Dictionary<Field, IReadOnlyCollection<RollupFieldsIndexCapabilities>> d
58+
) => new RollupFieldsIndexCapabilitiesDictionary(s, d);
59+
}
60+
}
61+
}

src/Nest/_Generated/_Descriptors.generated.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4494,6 +4494,24 @@ public GetRollupCapabilitiesDescriptor() : base(){}
44944494

44954495
// Request parameters
44964496

4497+
}
4498+
///<summary>descriptor for XpackRollupGetRollupIndexCaps <pre></pre></summary>
4499+
public partial class GetRollupIndexCapabilitiesDescriptor : RequestDescriptorBase<GetRollupIndexCapabilitiesDescriptor,GetRollupIndexCapabilitiesRequestParameters, IGetRollupIndexCapabilitiesRequest>, IGetRollupIndexCapabilitiesRequest
4500+
{
4501+
/// <summary>/{index}/_xpack/rollup/data</summary>
4502+
///<param name="index"> this parameter is required</param>
4503+
public GetRollupIndexCapabilitiesDescriptor(IndexName index) : base(r=>r.Required("index", index)){}
4504+
// values part of the url path
4505+
IndexName IGetRollupIndexCapabilitiesRequest.Index => Self.RouteValues.Get<IndexName>("index");
4506+
4507+
///<summary>The rollup index or index pattern to obtain rollup capabilities from.</summary>
4508+
public GetRollupIndexCapabilitiesDescriptor Index(IndexName index) => Assign(a=>a.RouteValues.Required("index", index));
4509+
4510+
///<summary>a shortcut into calling Index(typeof(TOther))</summary>
4511+
public GetRollupIndexCapabilitiesDescriptor Index<TOther>() where TOther : class => Assign(a=>a.RouteValues.Required("index", (IndexName)typeof(TOther)));
4512+
4513+
// Request parameters
4514+
44974515
}
44984516
///<summary>descriptor for XpackRollupPutJob <pre></pre></summary>
44994517
public partial class CreateRollupJobDescriptor<T> : RequestDescriptorBase<CreateRollupJobDescriptor<T>,CreateRollupJobRequestParameters, ICreateRollupJobRequest>, ICreateRollupJobRequest

src/Nest/_Generated/_LowLevelDispatch.generated.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3994,6 +3994,28 @@ internal partial class LowLevelDispatch
39943994
throw InvalidDispatch("XpackRollupGetRollupCaps", p, new [] { GET }, "/_xpack/rollup/data/{index}", "/_xpack/rollup/data/");
39953995
}
39963996

3997+
internal TResponse XpackRollupGetRollupIndexCapsDispatch<TResponse>(IRequest<GetRollupIndexCapabilitiesRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
3998+
{
3999+
switch(p.HttpMethod)
4000+
{
4001+
case GET:
4002+
if (AllSetNoFallback(p.RouteValues.Index)) return _lowLevel.XpackRollupGetRollupIndexCaps<TResponse>(p.RouteValues.Index,p.RequestParameters);
4003+
break;
4004+
}
4005+
throw InvalidDispatch("XpackRollupGetRollupIndexCaps", p, new [] { GET }, "/{index}/_xpack/rollup/data");
4006+
}
4007+
4008+
internal Task<TResponse> XpackRollupGetRollupIndexCapsDispatchAsync<TResponse>(IRequest<GetRollupIndexCapabilitiesRequestParameters> p, CancellationToken ct) where TResponse : class, IElasticsearchResponse, new()
4009+
{
4010+
switch(p.HttpMethod)
4011+
{
4012+
case GET:
4013+
if (AllSetNoFallback(p.RouteValues.Index)) return _lowLevel.XpackRollupGetRollupIndexCapsAsync<TResponse>(p.RouteValues.Index,p.RequestParameters,ct);
4014+
break;
4015+
}
4016+
throw InvalidDispatch("XpackRollupGetRollupIndexCaps", p, new [] { GET }, "/{index}/_xpack/rollup/data");
4017+
}
4018+
39974019
internal TResponse XpackRollupPutJobDispatch<TResponse>(IRequest<CreateRollupJobRequestParameters> p,SerializableData<ICreateRollupJobRequest> body) where TResponse : class, IElasticsearchResponse, new()
39984020
{
39994021
switch(p.HttpMethod)

0 commit comments

Comments
 (0)