Skip to content

[Backport 7.x] Support index template v2 APIs in NEST #6102

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

Merged
merged 1 commit into from
Feb 1, 2022
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
6 changes: 5 additions & 1 deletion src/ApiGenerator/ApiGenerator.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
<NoWarn>CS1591;NU1701</NoWarn>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<ItemGroup>
<Compile Remove="RestSpecification\XPack\**" />
<EmbeddedResource Remove="RestSpecification\XPack\**" />
<None Remove="RestSpecification\XPack\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.1.0-beta3-final" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
Expand All @@ -21,6 +26,5 @@
</ItemGroup>
<ItemGroup>
<Folder Include="RestSpecification\Core" />
<Folder Include="RestSpecification\XPack" />
</ItemGroup>
</Project>
9 changes: 2 additions & 7 deletions src/ApiGenerator/Configuration/CodeConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,8 @@ public static class CodeConfiguration
"autoscaling.put_autoscaling_policy.json", // experimental
"autoscaling.delete_autoscaling_policy.json", // experimental


"indices.delete_index_template.json",
"indices.exists_index_template.json",
"indices.get_index_template.json",
"indices.put_index_template.json",
"indices.simulate_index_template.json",
"indices.simulate_template.json",

"searchable_snapshots.stats.json",
"searchable_snapshots.clear_cache.json",
"searchable_snapshots.mount.json",
Expand Down Expand Up @@ -89,7 +83,8 @@ public static class CodeConfiguration
{
{ "indices.delete_index_template", "DeleteIndexTemplateV2" },
{ "indices.get_index_template", "GetIndexTemplateV2" },
{ "indices.put_index_template", "PutIndexTemplateV2" }
{ "indices.put_index_template", "PutIndexTemplateV2" },
{ "indices.exists_index_template", "IndexTemplateV2Exists" }
};

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -521,8 +521,8 @@ public bool? Local
}
}

///<summary>Request options for ExistsTemplate <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public class ExistsIndexTemplateRequestParameters : RequestParameters<ExistsIndexTemplateRequestParameters>
///<summary>Request options for TemplateV2Exists <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public class IndexTemplateV2ExistsRequestParameters : RequestParameters<IndexTemplateV2ExistsRequestParameters>
{
public override HttpMethod DefaultHttpMethod => HttpMethod.HEAD;
public override bool SupportsBody => false;
Expand Down
4 changes: 2 additions & 2 deletions src/Elasticsearch.Net/ElasticLowLevelClient.Indices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -281,13 +281,13 @@ public Task<TResponse> AliasExistsAsync<TResponse>(string index, string name, Al
///<summary>HEAD on /_index_template/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
///<param name = "name">The name of the template</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
public TResponse ExistsTemplateForAll<TResponse>(string name, ExistsIndexTemplateRequestParameters requestParameters = null)
public TResponse TemplateV2ExistsForAll<TResponse>(string name, IndexTemplateV2ExistsRequestParameters requestParameters = null)
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(HEAD, Url($"_index_template/{name:name}"), null, RequestParams(requestParameters));
///<summary>HEAD on /_index_template/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
///<param name = "name">The name of the template</param>
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
[MapsApi("indices.exists_index_template", "name")]
public Task<TResponse> ExistsTemplateForAllAsync<TResponse>(string name, ExistsIndexTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
public Task<TResponse> TemplateV2ExistsForAllAsync<TResponse>(string name, IndexTemplateV2ExistsRequestParameters requestParameters = null, CancellationToken ctx = default)
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(HEAD, Url($"_index_template/{name:name}"), ctx, null, RequestParams(requestParameters));
///<summary>HEAD on /_template/{name} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
///<param name = "name">The comma separated names of the index templates</param>
Expand Down
107 changes: 107 additions & 0 deletions src/Nest/Descriptors.Indices.cs
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,31 @@ protected DeleteDataStreamDescriptor(): base()
public DeleteDataStreamDescriptor ExpandWildcards(ExpandWildcards? expandwildcards) => Qs("expand_wildcards", expandwildcards);
}

///<summary>Descriptor for DeleteTemplateV2 <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class DeleteIndexTemplateV2Descriptor : RequestDescriptorBase<DeleteIndexTemplateV2Descriptor, DeleteIndexTemplateV2RequestParameters, IDeleteIndexTemplateV2Request>, IDeleteIndexTemplateV2Request
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesDeleteTemplateV2;
///<summary>/_index_template/{name}</summary>
///<param name = "name">this parameter is required</param>
public DeleteIndexTemplateV2Descriptor(Name name): base(r => r.Required("name", name))
{
}

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

// values part of the url path
Name IDeleteIndexTemplateV2Request.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
///<summary>Specify timeout for connection to master</summary>
public DeleteIndexTemplateV2Descriptor MasterTimeout(Time mastertimeout) => Qs("master_timeout", mastertimeout);
///<summary>Explicit operation timeout</summary>
public DeleteIndexTemplateV2Descriptor Timeout(Time timeout) => Qs("timeout", timeout);
}

///<summary>Descriptor for DeleteTemplate <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class DeleteIndexTemplateDescriptor : RequestDescriptorBase<DeleteIndexTemplateDescriptor, DeleteIndexTemplateRequestParameters, IDeleteIndexTemplateRequest>, IDeleteIndexTemplateRequest
{
Expand Down Expand Up @@ -497,6 +522,33 @@ public AliasExistsDescriptor Index<TOther>()
public AliasExistsDescriptor Local(bool? local = true) => Qs("local", local);
}

///<summary>Descriptor for TemplateV2Exists <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class IndexTemplateV2ExistsDescriptor : RequestDescriptorBase<IndexTemplateV2ExistsDescriptor, IndexTemplateV2ExistsRequestParameters, IIndexTemplateV2ExistsRequest>, IIndexTemplateV2ExistsRequest
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesTemplateV2Exists;
///<summary>/_index_template/{name}</summary>
///<param name = "name">this parameter is required</param>
public IndexTemplateV2ExistsDescriptor(Name name): base(r => r.Required("name", name))
{
}

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

// values part of the url path
Name IIndexTemplateV2ExistsRequest.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
///<summary>Return settings in flat format (default: false)</summary>
public IndexTemplateV2ExistsDescriptor FlatSettings(bool? flatsettings = true) => Qs("flat_settings", flatsettings);
///<summary>Return local information, do not retrieve the state from master node (default: false)</summary>
public IndexTemplateV2ExistsDescriptor Local(bool? local = true) => Qs("local", local);
///<summary>Explicit operation timeout for connection to master node</summary>
public IndexTemplateV2ExistsDescriptor MasterTimeout(Time mastertimeout) => Qs("master_timeout", mastertimeout);
}

///<summary>Descriptor for TemplateExists <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class IndexTemplateExistsDescriptor : RequestDescriptorBase<IndexTemplateExistsDescriptor, IndexTemplateExistsRequestParameters, IIndexTemplateExistsRequest>, IIndexTemplateExistsRequest
{
Expand Down Expand Up @@ -876,6 +928,34 @@ public GetFieldMappingDescriptor<TDocument> Index<TOther>()
public GetFieldMappingDescriptor<TDocument> Local(bool? local = true) => Qs("local", local);
}

///<summary>Descriptor for GetTemplateV2 <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class GetIndexTemplateV2Descriptor : RequestDescriptorBase<GetIndexTemplateV2Descriptor, GetIndexTemplateV2RequestParameters, IGetIndexTemplateV2Request>, IGetIndexTemplateV2Request
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesGetTemplateV2;
///<summary>/_index_template</summary>
public GetIndexTemplateV2Descriptor(): base()
{
}

///<summary>/_index_template/{name}</summary>
///<param name = "name">Optional, accepts null</param>
public GetIndexTemplateV2Descriptor(Name name): base(r => r.Optional("name", name))
{
}

// values part of the url path
Name IGetIndexTemplateV2Request.Name => Self.RouteValues.Get<Name>("name");
///<summary>A pattern that returned template names must match</summary>
public GetIndexTemplateV2Descriptor Name(Name name) => Assign(name, (a, v) => a.RouteValues.Optional("name", v));
// Request parameters
///<summary>Return settings in flat format (default: false)</summary>
public GetIndexTemplateV2Descriptor FlatSettings(bool? flatsettings = true) => Qs("flat_settings", flatsettings);
///<summary>Return local information, do not retrieve the state from master node (default: false)</summary>
public GetIndexTemplateV2Descriptor Local(bool? local = true) => Qs("local", local);
///<summary>Explicit operation timeout for connection to master node</summary>
public GetIndexTemplateV2Descriptor MasterTimeout(Time mastertimeout) => Qs("master_timeout", mastertimeout);
}

///<summary>Descriptor for GetMapping <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html</para></summary>
public partial class GetMappingDescriptor<TDocument> : RequestDescriptorBase<GetMappingDescriptor<TDocument>, GetMappingRequestParameters, IGetMappingRequest>, IGetMappingRequest
{
Expand Down Expand Up @@ -1119,6 +1199,33 @@ public PutAliasDescriptor Index<TOther>()
public PutAliasDescriptor Timeout(Time timeout) => Qs("timeout", timeout);
}

///<summary>Descriptor for PutTemplateV2 <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html</para></summary>
public partial class PutIndexTemplateV2Descriptor : RequestDescriptorBase<PutIndexTemplateV2Descriptor, PutIndexTemplateV2RequestParameters, IPutIndexTemplateV2Request>, IPutIndexTemplateV2Request
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesPutTemplateV2;
///<summary>/_index_template/{name}</summary>
///<param name = "name">this parameter is required</param>
public PutIndexTemplateV2Descriptor(Name name): base(r => r.Required("name", name))
{
}

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

// values part of the url path
Name IPutIndexTemplateV2Request.Name => Self.RouteValues.Get<Name>("name");
// Request parameters
///<summary>User defined reason for creating/updating the index template</summary>
public PutIndexTemplateV2Descriptor Cause(string cause) => Qs("cause", cause);
///<summary>Whether the index template should only be added if new or can also replace an existing one</summary>
public PutIndexTemplateV2Descriptor Create(bool? create = true) => Qs("create", create);
///<summary>Specify timeout for connection to master</summary>
public PutIndexTemplateV2Descriptor MasterTimeout(Time mastertimeout) => Qs("master_timeout", mastertimeout);
}

///<summary>Descriptor for PutMapping <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html</para></summary>
public partial class PutMappingDescriptor<TDocument> : RequestDescriptorBase<PutMappingDescriptor<TDocument>, PutMappingRequestParameters, IPutMappingRequest<TDocument>>, IPutMappingRequest<TDocument>
{
Expand Down
Loading