Skip to content

Commit 0b1aca0

Browse files
committed
Implement indices.reload_search_analyzers
1 parent 59d38d3 commit 0b1aca0

File tree

9 files changed

+219
-1
lines changed

9 files changed

+219
-1
lines changed

src/ApiGenerator/Configuration/CodeConfiguration.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ public static class CodeConfiguration
6666
"cluster.delete_component_template.json",
6767
"cluster.get_component_template.json",
6868
"cluster.put_component_template.json",
69-
"indices.reload_search_analyzers.json",
7069
"ml.estimate_model_memory.json",
7170
"ml.set_upgrade_mode.json",
7271
"security.get_builtin_privileges.json",

src/Nest/Descriptors.Indices.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,40 @@ public RefreshDescriptor Index<TOther>()
11181118
public RefreshDescriptor IgnoreUnavailable(bool? ignoreunavailable = true) => Qs("ignore_unavailable", ignoreunavailable);
11191119
}
11201120

1121+
///<summary>Descriptor for ReloadSearchAnalyzers <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</para></summary>
1122+
public partial class ReloadSearchAnalyzersDescriptor : RequestDescriptorBase<ReloadSearchAnalyzersDescriptor, ReloadSearchAnalyzersRequestParameters, IReloadSearchAnalyzersRequest>, IReloadSearchAnalyzersRequest
1123+
{
1124+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesReloadSearchAnalyzers;
1125+
///<summary>/{index}/_reload_search_analyzers</summary>
1126+
///<param name = "index">this parameter is required</param>
1127+
public ReloadSearchAnalyzersDescriptor(Indices index): base(r => r.Required("index", index))
1128+
{
1129+
}
1130+
1131+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
1132+
[SerializationConstructor]
1133+
protected ReloadSearchAnalyzersDescriptor(): base()
1134+
{
1135+
}
1136+
1137+
// values part of the url path
1138+
Indices IReloadSearchAnalyzersRequest.Index => Self.RouteValues.Get<Indices>("index");
1139+
///<summary>A comma-separated list of index names to reload analyzers for</summary>
1140+
public ReloadSearchAnalyzersDescriptor Index(Indices index) => Assign(index, (a, v) => a.RouteValues.Required("index", v));
1141+
///<summary>a shortcut into calling Index(typeof(TOther))</summary>
1142+
public ReloadSearchAnalyzersDescriptor Index<TOther>()
1143+
where TOther : class => Assign(typeof(TOther), (a, v) => a.RouteValues.Required("index", (Indices)v));
1144+
///<summary>A shortcut into calling Index(Indices.All)</summary>
1145+
public ReloadSearchAnalyzersDescriptor AllIndices() => Index(Indices.All);
1146+
// Request parameters
1147+
///<summary>Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)</summary>
1148+
public ReloadSearchAnalyzersDescriptor AllowNoIndices(bool? allownoindices = true) => Qs("allow_no_indices", allownoindices);
1149+
///<summary>Whether to expand wildcard expression to concrete indices that are open, closed or both.</summary>
1150+
public ReloadSearchAnalyzersDescriptor ExpandWildcards(ExpandWildcards? expandwildcards) => Qs("expand_wildcards", expandwildcards);
1151+
///<summary>Whether specified concrete indices should be ignored when unavailable (missing or closed)</summary>
1152+
public ReloadSearchAnalyzersDescriptor IgnoreUnavailable(bool? ignoreunavailable = true) => Qs("ignore_unavailable", ignoreunavailable);
1153+
}
1154+
11211155
///<summary>Descriptor for Rollover <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html</para></summary>
11221156
public partial class RolloverIndexDescriptor : RequestDescriptorBase<RolloverIndexDescriptor, RolloverIndexRequestParameters, IRolloverIndexRequest>, IRolloverIndexRequest
11231157
{

src/Nest/ElasticClient.Indices.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,30 @@ public Task<PutMappingResponse> PutMappingAsync<TDocument>(Func<PutMappingDescri
739739
/// </summary>
740740
public Task<RefreshResponse> RefreshAsync(IRefreshRequest request, CancellationToken ct = default) => DoRequestAsync<IRefreshRequest, RefreshResponse>(request, request.RequestParameters, ct);
741741
/// <summary>
742+
/// <c>POST</c> request to the <c>indices.reload_search_analyzers</c> API, read more about this API online:
743+
/// <para></para>
744+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</a>
745+
/// </summary>
746+
public ReloadSearchAnalyzersResponse ReloadSearchAnalyzers(Indices index, Func<ReloadSearchAnalyzersDescriptor, IReloadSearchAnalyzersRequest> selector = null) => ReloadSearchAnalyzers(selector.InvokeOrDefault(new ReloadSearchAnalyzersDescriptor(index: index)));
747+
/// <summary>
748+
/// <c>POST</c> request to the <c>indices.reload_search_analyzers</c> API, read more about this API online:
749+
/// <para></para>
750+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</a>
751+
/// </summary>
752+
public Task<ReloadSearchAnalyzersResponse> ReloadSearchAnalyzersAsync(Indices index, Func<ReloadSearchAnalyzersDescriptor, IReloadSearchAnalyzersRequest> selector = null, CancellationToken ct = default) => ReloadSearchAnalyzersAsync(selector.InvokeOrDefault(new ReloadSearchAnalyzersDescriptor(index: index)), ct);
753+
/// <summary>
754+
/// <c>POST</c> request to the <c>indices.reload_search_analyzers</c> API, read more about this API online:
755+
/// <para></para>
756+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</a>
757+
/// </summary>
758+
public ReloadSearchAnalyzersResponse ReloadSearchAnalyzers(IReloadSearchAnalyzersRequest request) => DoRequest<IReloadSearchAnalyzersRequest, ReloadSearchAnalyzersResponse>(request, request.RequestParameters);
759+
/// <summary>
760+
/// <c>POST</c> request to the <c>indices.reload_search_analyzers</c> API, read more about this API online:
761+
/// <para></para>
762+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</a>
763+
/// </summary>
764+
public Task<ReloadSearchAnalyzersResponse> ReloadSearchAnalyzersAsync(IReloadSearchAnalyzersRequest request, CancellationToken ct = default) => DoRequestAsync<IReloadSearchAnalyzersRequest, ReloadSearchAnalyzersResponse>(request, request.RequestParameters, ct);
765+
/// <summary>
742766
/// <c>POST</c> request to the <c>indices.rollover</c> API, read more about this API online:
743767
/// <para></para>
744768
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html">https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html</a>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Collections.Generic;
2+
using System.Runtime.Serialization;
3+
using Elasticsearch.Net;
4+
5+
namespace Nest
6+
{
7+
public class ReloadDetails
8+
{
9+
[DataMember(Name ="index")]
10+
public string Index { get; internal set; }
11+
12+
[DataMember(Name ="reloaded_analyzers")]
13+
public IReadOnlyCollection<string> ReloadedAnalyzers { get; internal set; } = EmptyReadOnly<string>.Collection;
14+
15+
[DataMember(Name ="reloaded_node_ids")]
16+
public IReadOnlyCollection<string> ReloadedNodeIds { get; internal set; } = EmptyReadOnly<string>.Collection;
17+
}
18+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Nest
2+
{
3+
[MapsApi("indices.reload_search_analyzers.json")]
4+
public partial interface IReloadSearchAnalyzersRequest { }
5+
6+
public partial class ReloadSearchAnalyzersRequest { }
7+
8+
public partial class ReloadSearchAnalyzersDescriptor { }
9+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System.Collections.Generic;
2+
using System.Runtime.Serialization;
3+
using Elasticsearch.Net;
4+
5+
namespace Nest
6+
{
7+
public class ReloadSearchAnalyzersResponse : ResponseBase
8+
{
9+
[DataMember(Name ="_shards")]
10+
public ShardStatistics Shards { get; internal set; }
11+
12+
[DataMember(Name ="reload_details")]
13+
public IReadOnlyCollection<ReloadDetails> ReloadDetails { get; internal set; } = EmptyReadOnly<ReloadDetails>.Collection;
14+
}
15+
}

src/Nest/Requests.Indices.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2055,6 +2055,62 @@ public bool? IgnoreUnavailable
20552055
}
20562056
}
20572057

2058+
[InterfaceDataContract]
2059+
public partial interface IReloadSearchAnalyzersRequest : IRequest<ReloadSearchAnalyzersRequestParameters>
2060+
{
2061+
[IgnoreDataMember]
2062+
Indices Index
2063+
{
2064+
get;
2065+
}
2066+
}
2067+
2068+
///<summary>Request for ReloadSearchAnalyzers <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-reload-analyzers.html</para></summary>
2069+
public partial class ReloadSearchAnalyzersRequest : PlainRequestBase<ReloadSearchAnalyzersRequestParameters>, IReloadSearchAnalyzersRequest
2070+
{
2071+
protected IReloadSearchAnalyzersRequest Self => this;
2072+
internal override ApiUrls ApiUrls => ApiUrlsLookups.IndicesReloadSearchAnalyzers;
2073+
///<summary>/{index}/_reload_search_analyzers</summary>
2074+
///<param name = "index">this parameter is required</param>
2075+
public ReloadSearchAnalyzersRequest(Indices index): base(r => r.Required("index", index))
2076+
{
2077+
}
2078+
2079+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
2080+
[SerializationConstructor]
2081+
protected ReloadSearchAnalyzersRequest(): base()
2082+
{
2083+
}
2084+
2085+
// values part of the url path
2086+
[IgnoreDataMember]
2087+
Indices IReloadSearchAnalyzersRequest.Index => Self.RouteValues.Get<Indices>("index");
2088+
// Request parameters
2089+
///<summary>
2090+
/// Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have
2091+
/// been specified)
2092+
///</summary>
2093+
public bool? AllowNoIndices
2094+
{
2095+
get => Q<bool? >("allow_no_indices");
2096+
set => Q("allow_no_indices", value);
2097+
}
2098+
2099+
///<summary>Whether to expand wildcard expression to concrete indices that are open, closed or both.</summary>
2100+
public ExpandWildcards? ExpandWildcards
2101+
{
2102+
get => Q<ExpandWildcards? >("expand_wildcards");
2103+
set => Q("expand_wildcards", value);
2104+
}
2105+
2106+
///<summary>Whether specified concrete indices should be ignored when unavailable (missing or closed)</summary>
2107+
public bool? IgnoreUnavailable
2108+
{
2109+
get => Q<bool? >("ignore_unavailable");
2110+
set => Q("ignore_unavailable", value);
2111+
}
2112+
}
2113+
20582114
[InterfaceDataContract]
20592115
public partial interface IRolloverIndexRequest : IRequest<RolloverIndexRequestParameters>
20602116
{
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using Elasticsearch.Net;
3+
using Nest;
4+
using Tests.Core.ManagedElasticsearch.Clusters;
5+
using Tests.Framework.EndpointTests;
6+
using Tests.Framework.EndpointTests.TestState;
7+
8+
namespace Tests.Indices.ReloadSearchAnalyzers
9+
{
10+
public class ReloadSearchAnalyzersApiTests
11+
: ApiIntegrationTestBase<ReadOnlyCluster, ReloadSearchAnalyzersResponse, IReloadSearchAnalyzersRequest, ReloadSearchAnalyzersDescriptor, ReloadSearchAnalyzersRequest>
12+
{
13+
public ReloadSearchAnalyzersApiTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
14+
15+
protected override bool ExpectIsValid => true;
16+
protected override int ExpectStatusCode => 200;
17+
18+
protected override ReloadSearchAnalyzersDescriptor NewDescriptor() => new ReloadSearchAnalyzersDescriptor(CallIsolatedValue);
19+
20+
protected override Func<ReloadSearchAnalyzersDescriptor, IReloadSearchAnalyzersRequest> Fluent => d => d.Index(CallIsolatedValue);
21+
protected override HttpMethod HttpMethod => HttpMethod.POST;
22+
23+
protected override ReloadSearchAnalyzersRequest Initializer => new ReloadSearchAnalyzersRequest(CallIsolatedValue);
24+
protected override string UrlPath => $"/{CallIsolatedValue}/_reload_search_analyzers";
25+
26+
protected override LazyResponses ClientUsage() => Calls(
27+
(client, f) => client.Indices.ReloadSearchAnalyzers(CallIsolatedValue, f),
28+
(client, f) => client.Indices.ReloadSearchAnalyzersAsync(CallIsolatedValue, f),
29+
(client, r) => client.Indices.ReloadSearchAnalyzers(r),
30+
(client, r) => client.Indices.ReloadSearchAnalyzersAsync(r)
31+
);
32+
}
33+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System.Threading.Tasks;
2+
using Elastic.Xunit.XunitPlumbing;
3+
using Nest;
4+
using Tests.Framework.EndpointTests;
5+
using static Tests.Framework.EndpointTests.UrlTester;
6+
using static Nest.Indices;
7+
8+
namespace Tests.Indices.ReloadSearchAnalyzers
9+
{
10+
public class ReloadSearchAnalyzersUrlTests
11+
{
12+
[U] public async Task Urls()
13+
{
14+
await POST($"/_all/_reload_search_analyzers")
15+
.Fluent(c => c.Indices.ReloadSearchAnalyzers(All))
16+
.Request(c => c.Indices.ReloadSearchAnalyzers(new ReloadSearchAnalyzersRequest(All)))
17+
.FluentAsync(c => c.Indices.ReloadSearchAnalyzersAsync(All))
18+
.RequestAsync(c => c.Indices.ReloadSearchAnalyzersAsync(new ReloadSearchAnalyzersRequest(All)))
19+
;
20+
21+
var index = "index1,index2";
22+
await POST($"/index1%2Cindex2/_reload_search_analyzers")
23+
.Fluent(c => c.Indices.ReloadSearchAnalyzers(index))
24+
.Request(c => c.Indices.ReloadSearchAnalyzers(new ReloadSearchAnalyzersRequest(index)))
25+
.FluentAsync(c => c.Indices.ReloadSearchAnalyzersAsync(index))
26+
.RequestAsync(c => c.Indices.ReloadSearchAnalyzersAsync(new ReloadSearchAnalyzersRequest(index)))
27+
;
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)