Skip to content

Commit 6df0e29

Browse files
committed
add support for the rollup index caps API (#3535)
* add support for the rollup index caps API * SkipVersion on RollupJobCrudTests
1 parent 89eb85a commit 6df0e29

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
@@ -50,7 +50,6 @@ public class ApiGenerator
5050
"xpack.security.has_privileges.json",
5151
"xpack.security.put_privilege.json",
5252
"xpack.security.put_privileges.json",
53-
"xpack.rollup.get_rollup_index_caps.json",
5453
};
5554

5655
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
@@ -2474,6 +2474,11 @@ public partial class GetRollupCapabilitiesRequestParameters : RequestParameters<
24742474
{
24752475
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
24762476
}
2477+
///<summary>Request options for XpackRollupGetRollupIndexCaps<pre></pre></summary>
2478+
public partial class GetRollupIndexCapabilitiesRequestParameters : RequestParameters<GetRollupIndexCapabilitiesRequestParameters>
2479+
{
2480+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
2481+
}
24772482
///<summary>Request options for XpackRollupPutJob<pre></pre></summary>
24782483
public partial class CreateRollupJobRequestParameters : RequestParameters<CreateRollupJobRequestParameters>
24792484
{

src/Elasticsearch.Net/ElasticLowLevelClient.Generated.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3622,6 +3622,16 @@ public TResponse XpackRollupGetRollupCaps<TResponse>(GetRollupCapabilitiesReques
36223622
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
36233623
public Task<TResponse> XpackRollupGetRollupCapsAsync<TResponse>(GetRollupCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
36243624
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/rollup/data/"), ctx, null, _params(requestParameters));
3625+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
3626+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
3627+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3628+
public TResponse XpackRollupGetRollupIndexCaps<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null)
3629+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequest<TResponse>(GET, Url($"{index.NotNull("index")}/_xpack/rollup/data"), null, _params(requestParameters));
3630+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
3631+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
3632+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3633+
public Task<TResponse> XpackRollupGetRollupIndexCapsAsync<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
3634+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"{index.NotNull("index")}/_xpack/rollup/data"), ctx, null, _params(requestParameters));
36253635
///<summary>PUT on /_xpack/rollup/job/{id} <para></para></summary>
36263636
///<param name="id">The ID of the job to create</param>
36273637
///<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
@@ -2934,6 +2934,14 @@ public partial interface IElasticLowLevelClient
29342934
///<summary>GET on /_xpack/rollup/data/ <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-get-rollup-caps.html</para></summary>
29352935
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
29362936
Task<TResponse> XpackRollupGetRollupCapsAsync<TResponse>(GetRollupCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
2937+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
2938+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
2939+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
2940+
TResponse XpackRollupGetRollupIndexCaps<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new();
2941+
///<summary>GET on /{index}/_xpack/rollup/data <para></para></summary>
2942+
///<param name="index">The rollup index or index pattern to obtain rollup capabilities from.</param>
2943+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
2944+
Task<TResponse> XpackRollupGetRollupIndexCapsAsync<TResponse>(string index, GetRollupIndexCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
29372945
///<summary>PUT on /_xpack/rollup/job/{id} <para></para></summary>
29382946
///<param name="id">The ID of the job to create</param>
29392947
///<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
@@ -4466,6 +4466,24 @@ public GetRollupCapabilitiesDescriptor() : base(){}
44664466

44674467
// Request parameters
44684468

4469+
}
4470+
///<summary>descriptor for XpackRollupGetRollupIndexCaps <pre></pre></summary>
4471+
public partial class GetRollupIndexCapabilitiesDescriptor : RequestDescriptorBase<GetRollupIndexCapabilitiesDescriptor,GetRollupIndexCapabilitiesRequestParameters, IGetRollupIndexCapabilitiesRequest>, IGetRollupIndexCapabilitiesRequest
4472+
{
4473+
/// <summary>/{index}/_xpack/rollup/data</summary>
4474+
///<param name="index"> this parameter is required</param>
4475+
public GetRollupIndexCapabilitiesDescriptor(IndexName index) : base(r=>r.Required("index", index)){}
4476+
// values part of the url path
4477+
IndexName IGetRollupIndexCapabilitiesRequest.Index => Self.RouteValues.Get<IndexName>("index");
4478+
4479+
///<summary>The rollup index or index pattern to obtain rollup capabilities from.</summary>
4480+
public GetRollupIndexCapabilitiesDescriptor Index(IndexName index) => Assign(a=>a.RouteValues.Required("index", index));
4481+
4482+
///<summary>a shortcut into calling Index(typeof(TOther))</summary>
4483+
public GetRollupIndexCapabilitiesDescriptor Index<TOther>() where TOther : class => Assign(a=>a.RouteValues.Required("index", (IndexName)typeof(TOther)));
4484+
4485+
// Request parameters
4486+
44694487
}
44704488
///<summary>descriptor for XpackRollupPutJob <pre></pre></summary>
44714489
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
@@ -3966,6 +3966,28 @@ internal partial class LowLevelDispatch
39663966
throw InvalidDispatch("XpackRollupGetRollupCaps", p, new [] { GET }, "/_xpack/rollup/data/{index}", "/_xpack/rollup/data/");
39673967
}
39683968

3969+
internal TResponse XpackRollupGetRollupIndexCapsDispatch<TResponse>(IRequest<GetRollupIndexCapabilitiesRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
3970+
{
3971+
switch(p.HttpMethod)
3972+
{
3973+
case GET:
3974+
if (AllSetNoFallback(p.RouteValues.Index)) return _lowLevel.XpackRollupGetRollupIndexCaps<TResponse>(p.RouteValues.Index,p.RequestParameters);
3975+
break;
3976+
}
3977+
throw InvalidDispatch("XpackRollupGetRollupIndexCaps", p, new [] { GET }, "/{index}/_xpack/rollup/data");
3978+
}
3979+
3980+
internal Task<TResponse> XpackRollupGetRollupIndexCapsDispatchAsync<TResponse>(IRequest<GetRollupIndexCapabilitiesRequestParameters> p, CancellationToken ct) where TResponse : class, IElasticsearchResponse, new()
3981+
{
3982+
switch(p.HttpMethod)
3983+
{
3984+
case GET:
3985+
if (AllSetNoFallback(p.RouteValues.Index)) return _lowLevel.XpackRollupGetRollupIndexCapsAsync<TResponse>(p.RouteValues.Index,p.RequestParameters,ct);
3986+
break;
3987+
}
3988+
throw InvalidDispatch("XpackRollupGetRollupIndexCaps", p, new [] { GET }, "/{index}/_xpack/rollup/data");
3989+
}
3990+
39693991
internal TResponse XpackRollupPutJobDispatch<TResponse>(IRequest<CreateRollupJobRequestParameters> p,SerializableData<ICreateRollupJobRequest> body) where TResponse : class, IElasticsearchResponse, new()
39703992
{
39713993
switch(p.HttpMethod)

0 commit comments

Comments
 (0)