Skip to content

Commit 6f4b4b9

Browse files
committed
Add data streams APIs
This commit adds support for the data streams APIs to the high level client. (cherry picked from commit 5b84abe)
1 parent ee26819 commit 6f4b4b9

18 files changed

+870
-5
lines changed

src/ApiGenerator/Configuration/CodeConfiguration.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,6 @@ public static class CodeConfiguration
5858
"get_script_languages.json", // 7.7 experimental
5959

6060
"indices.exist_type.json", // already removed on client
61-
"indices.create_data_stream.json", // 7.7 experimental
62-
"indices.delete_data_stream.json", // 7.7 experimental
63-
"indices.get_data_stream.json", // 7.7 experimental
64-
"indices.get_data_streams.json", // 7.7 experimental
65-
"indices.data_streams_stats.json", // 7.7 experimental
6661

6762
"ml.delete_trained_model.json", // 7.7 experimental
6863
"ml.evaluate_data_frame.json", // 7.7 experimental

src/Nest/Descriptors.Indices.cs

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,49 @@ public CreateIndexDescriptor Index<TOther>()
247247
public CreateIndexDescriptor WaitForActiveShards(string waitforactiveshards) => Qs("wait_for_active_shards", waitforactiveshards);
248248
}
249249

250+
///<summary>Descriptor for CreateDataStream <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</para></summary>
251+
public partial class CreateDataStreamDescriptor : RequestDescriptorBase<CreateDataStreamDescriptor, CreateDataStreamRequestParameters, ICreateDataStreamRequest>, ICreateDataStreamRequest
252+
{
253+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesCreateDataStream;
254+
///<summary>/_data_stream/{name}</summary>
255+
///<param name = "name">this parameter is required</param>
256+
public CreateDataStreamDescriptor(Name name): base(r => r.Required("name", name))
257+
{
258+
}
259+
260+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
261+
[SerializationConstructor]
262+
protected CreateDataStreamDescriptor(): base()
263+
{
264+
}
265+
266+
// values part of the url path
267+
Name ICreateDataStreamRequest.Name => Self.RouteValues.Get<Name>("name");
268+
// Request parameters
269+
}
270+
271+
///<summary>Descriptor for DataStreamsStats <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</para></summary>
272+
public partial class DataStreamsStatsDescriptor : RequestDescriptorBase<DataStreamsStatsDescriptor, DataStreamsStatsRequestParameters, IDataStreamsStatsRequest>, IDataStreamsStatsRequest
273+
{
274+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesDataStreamsStats;
275+
///<summary>/_data_stream/_stats</summary>
276+
public DataStreamsStatsDescriptor(): base()
277+
{
278+
}
279+
280+
///<summary>/_data_stream/{name}/_stats</summary>
281+
///<param name = "name">Optional, accepts null</param>
282+
public DataStreamsStatsDescriptor(Names name): base(r => r.Optional("name", name))
283+
{
284+
}
285+
286+
// values part of the url path
287+
Names IDataStreamsStatsRequest.Name => Self.RouteValues.Get<Names>("name");
288+
///<summary>A comma-separated list of data stream names; use the special string `_all` or Indices.All to perform the operation on all data streams</summary>
289+
public DataStreamsStatsDescriptor Name(Names name) => Assign(name, (a, v) => a.RouteValues.Optional("name", v));
290+
// Request parameters
291+
}
292+
250293
///<summary>Descriptor for Delete <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html</para></summary>
251294
public partial class DeleteIndexDescriptor : RequestDescriptorBase<DeleteIndexDescriptor, DeleteIndexRequestParameters, IDeleteIndexRequest>, IDeleteIndexRequest
252295
{
@@ -319,6 +362,27 @@ public DeleteAliasDescriptor Index<TOther>()
319362
public DeleteAliasDescriptor Timeout(Time timeout) => Qs("timeout", timeout);
320363
}
321364

365+
///<summary>Descriptor for DeleteDataStream <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</para></summary>
366+
public partial class DeleteDataStreamDescriptor : RequestDescriptorBase<DeleteDataStreamDescriptor, DeleteDataStreamRequestParameters, IDeleteDataStreamRequest>, IDeleteDataStreamRequest
367+
{
368+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesDeleteDataStream;
369+
///<summary>/_data_stream/{name}</summary>
370+
///<param name = "name">this parameter is required</param>
371+
public DeleteDataStreamDescriptor(Names name): base(r => r.Required("name", name))
372+
{
373+
}
374+
375+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
376+
[SerializationConstructor]
377+
protected DeleteDataStreamDescriptor(): base()
378+
{
379+
}
380+
381+
// values part of the url path
382+
Names IDeleteDataStreamRequest.Name => Self.RouteValues.Get<Names>("name");
383+
// Request parameters
384+
}
385+
322386
///<summary>Descriptor for DeleteTemplate <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
323387
public partial class DeleteIndexTemplateDescriptor : RequestDescriptorBase<DeleteIndexTemplateDescriptor, DeleteIndexTemplateRequestParameters, IDeleteIndexTemplateRequest>, IDeleteIndexTemplateRequest
324388
{
@@ -735,6 +799,28 @@ public GetAliasDescriptor Index<TOther>()
735799
public GetAliasDescriptor Local(bool? local = true) => Qs("local", local);
736800
}
737801

802+
///<summary>Descriptor for GetDataStream <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</para></summary>
803+
public partial class GetDataStreamDescriptor : RequestDescriptorBase<GetDataStreamDescriptor, GetDataStreamRequestParameters, IGetDataStreamRequest>, IGetDataStreamRequest
804+
{
805+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesGetDataStream;
806+
///<summary>/_data_stream</summary>
807+
public GetDataStreamDescriptor(): base()
808+
{
809+
}
810+
811+
///<summary>/_data_stream/{name}</summary>
812+
///<param name = "name">Optional, accepts null</param>
813+
public GetDataStreamDescriptor(Names name): base(r => r.Optional("name", name))
814+
{
815+
}
816+
817+
// values part of the url path
818+
Names IGetDataStreamRequest.Name => Self.RouteValues.Get<Names>("name");
819+
///<summary>A comma-separated list of data streams to get; use `*` to get all data streams</summary>
820+
public GetDataStreamDescriptor Name(Names name) => Assign(name, (a, v) => a.RouteValues.Optional("name", v));
821+
// Request parameters
822+
}
823+
738824
///<summary>Descriptor for GetFieldMapping <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html</para></summary>
739825
public partial class GetFieldMappingDescriptor<TDocument> : RequestDescriptorBase<GetFieldMappingDescriptor<TDocument>, GetFieldMappingRequestParameters, IGetFieldMappingRequest>, IGetFieldMappingRequest
740826
{

src/Nest/ElasticClient.Indices.cs

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,54 @@ internal IndicesNamespace(ElasticClient client): base(client)
181181
/// </summary>
182182
public Task<CreateIndexResponse> CreateAsync(ICreateIndexRequest request, CancellationToken ct = default) => DoRequestAsync<ICreateIndexRequest, CreateIndexResponse>(request, request.RequestParameters, ct);
183183
/// <summary>
184+
/// <c>PUT</c> request to the <c>indices.create_data_stream</c> API, read more about this API online:
185+
/// <para></para>
186+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
187+
/// </summary>
188+
public CreateDataStreamResponse CreateDataStream(Name name, Func<CreateDataStreamDescriptor, ICreateDataStreamRequest> selector = null) => CreateDataStream(selector.InvokeOrDefault(new CreateDataStreamDescriptor(name: name)));
189+
/// <summary>
190+
/// <c>PUT</c> request to the <c>indices.create_data_stream</c> API, read more about this API online:
191+
/// <para></para>
192+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
193+
/// </summary>
194+
public Task<CreateDataStreamResponse> CreateDataStreamAsync(Name name, Func<CreateDataStreamDescriptor, ICreateDataStreamRequest> selector = null, CancellationToken ct = default) => CreateDataStreamAsync(selector.InvokeOrDefault(new CreateDataStreamDescriptor(name: name)), ct);
195+
/// <summary>
196+
/// <c>PUT</c> request to the <c>indices.create_data_stream</c> API, read more about this API online:
197+
/// <para></para>
198+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
199+
/// </summary>
200+
public CreateDataStreamResponse CreateDataStream(ICreateDataStreamRequest request) => DoRequest<ICreateDataStreamRequest, CreateDataStreamResponse>(request, request.RequestParameters);
201+
/// <summary>
202+
/// <c>PUT</c> request to the <c>indices.create_data_stream</c> API, read more about this API online:
203+
/// <para></para>
204+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
205+
/// </summary>
206+
public Task<CreateDataStreamResponse> CreateDataStreamAsync(ICreateDataStreamRequest request, CancellationToken ct = default) => DoRequestAsync<ICreateDataStreamRequest, CreateDataStreamResponse>(request, request.RequestParameters, ct);
207+
/// <summary>
208+
/// <c>GET</c> request to the <c>indices.data_streams_stats</c> API, read more about this API online:
209+
/// <para></para>
210+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
211+
/// </summary>
212+
public DataStreamsStatsResponse DataStreamsStats(Names name = null, Func<DataStreamsStatsDescriptor, IDataStreamsStatsRequest> selector = null) => DataStreamsStats(selector.InvokeOrDefault(new DataStreamsStatsDescriptor().Name(name: name)));
213+
/// <summary>
214+
/// <c>GET</c> request to the <c>indices.data_streams_stats</c> API, read more about this API online:
215+
/// <para></para>
216+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
217+
/// </summary>
218+
public Task<DataStreamsStatsResponse> DataStreamsStatsAsync(Names name = null, Func<DataStreamsStatsDescriptor, IDataStreamsStatsRequest> selector = null, CancellationToken ct = default) => DataStreamsStatsAsync(selector.InvokeOrDefault(new DataStreamsStatsDescriptor().Name(name: name)), ct);
219+
/// <summary>
220+
/// <c>GET</c> request to the <c>indices.data_streams_stats</c> API, read more about this API online:
221+
/// <para></para>
222+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
223+
/// </summary>
224+
public DataStreamsStatsResponse DataStreamsStats(IDataStreamsStatsRequest request) => DoRequest<IDataStreamsStatsRequest, DataStreamsStatsResponse>(request, request.RequestParameters);
225+
/// <summary>
226+
/// <c>GET</c> request to the <c>indices.data_streams_stats</c> API, read more about this API online:
227+
/// <para></para>
228+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
229+
/// </summary>
230+
public Task<DataStreamsStatsResponse> DataStreamsStatsAsync(IDataStreamsStatsRequest request, CancellationToken ct = default) => DoRequestAsync<IDataStreamsStatsRequest, DataStreamsStatsResponse>(request, request.RequestParameters, ct);
231+
/// <summary>
184232
/// <c>DELETE</c> request to the <c>indices.delete</c> API, read more about this API online:
185233
/// <para></para>
186234
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html</a>
@@ -229,6 +277,30 @@ internal IndicesNamespace(ElasticClient client): base(client)
229277
/// </summary>
230278
public Task<DeleteAliasResponse> DeleteAliasAsync(IDeleteAliasRequest request, CancellationToken ct = default) => DoRequestAsync<IDeleteAliasRequest, DeleteAliasResponse>(request, request.RequestParameters, ct);
231279
/// <summary>
280+
/// <c>DELETE</c> request to the <c>indices.delete_data_stream</c> API, read more about this API online:
281+
/// <para></para>
282+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
283+
/// </summary>
284+
public DeleteDataStreamResponse DeleteDataStream(Names name, Func<DeleteDataStreamDescriptor, IDeleteDataStreamRequest> selector = null) => DeleteDataStream(selector.InvokeOrDefault(new DeleteDataStreamDescriptor(name: name)));
285+
/// <summary>
286+
/// <c>DELETE</c> request to the <c>indices.delete_data_stream</c> API, read more about this API online:
287+
/// <para></para>
288+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
289+
/// </summary>
290+
public Task<DeleteDataStreamResponse> DeleteDataStreamAsync(Names name, Func<DeleteDataStreamDescriptor, IDeleteDataStreamRequest> selector = null, CancellationToken ct = default) => DeleteDataStreamAsync(selector.InvokeOrDefault(new DeleteDataStreamDescriptor(name: name)), ct);
291+
/// <summary>
292+
/// <c>DELETE</c> request to the <c>indices.delete_data_stream</c> API, read more about this API online:
293+
/// <para></para>
294+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
295+
/// </summary>
296+
public DeleteDataStreamResponse DeleteDataStream(IDeleteDataStreamRequest request) => DoRequest<IDeleteDataStreamRequest, DeleteDataStreamResponse>(request, request.RequestParameters);
297+
/// <summary>
298+
/// <c>DELETE</c> request to the <c>indices.delete_data_stream</c> API, read more about this API online:
299+
/// <para></para>
300+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
301+
/// </summary>
302+
public Task<DeleteDataStreamResponse> DeleteDataStreamAsync(IDeleteDataStreamRequest request, CancellationToken ct = default) => DoRequestAsync<IDeleteDataStreamRequest, DeleteDataStreamResponse>(request, request.RequestParameters, ct);
303+
/// <summary>
232304
/// <c>DELETE</c> request to the <c>indices.delete_template</c> API, read more about this API online:
233305
/// <para></para>
234306
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</a>
@@ -493,6 +565,30 @@ internal IndicesNamespace(ElasticClient client): base(client)
493565
/// </summary>
494566
public Task<GetAliasResponse> GetAliasAsync(IGetAliasRequest request, CancellationToken ct = default) => DoRequestAsync<IGetAliasRequest, GetAliasResponse>(request, request.RequestParameters, ct);
495567
/// <summary>
568+
/// <c>GET</c> request to the <c>indices.get_data_stream</c> API, read more about this API online:
569+
/// <para></para>
570+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
571+
/// </summary>
572+
public GetDataStreamResponse GetDataStream(Names name = null, Func<GetDataStreamDescriptor, IGetDataStreamRequest> selector = null) => GetDataStream(selector.InvokeOrDefault(new GetDataStreamDescriptor().Name(name: name)));
573+
/// <summary>
574+
/// <c>GET</c> request to the <c>indices.get_data_stream</c> API, read more about this API online:
575+
/// <para></para>
576+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
577+
/// </summary>
578+
public Task<GetDataStreamResponse> GetDataStreamAsync(Names name = null, Func<GetDataStreamDescriptor, IGetDataStreamRequest> selector = null, CancellationToken ct = default) => GetDataStreamAsync(selector.InvokeOrDefault(new GetDataStreamDescriptor().Name(name: name)), ct);
579+
/// <summary>
580+
/// <c>GET</c> request to the <c>indices.get_data_stream</c> API, read more about this API online:
581+
/// <para></para>
582+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
583+
/// </summary>
584+
public GetDataStreamResponse GetDataStream(IGetDataStreamRequest request) => DoRequest<IGetDataStreamRequest, GetDataStreamResponse>(request, request.RequestParameters);
585+
/// <summary>
586+
/// <c>GET</c> request to the <c>indices.get_data_stream</c> API, read more about this API online:
587+
/// <para></para>
588+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html</a>
589+
/// </summary>
590+
public Task<GetDataStreamResponse> GetDataStreamAsync(IGetDataStreamRequest request, CancellationToken ct = default) => DoRequestAsync<IGetDataStreamRequest, GetDataStreamResponse>(request, request.RequestParameters, ct);
591+
/// <summary>
496592
/// <c>GET</c> request to the <c>indices.get_field_mapping</c> API, read more about this API online:
497593
/// <para></para>
498594
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html</a>

0 commit comments

Comments
 (0)