Skip to content

Commit 61d98ab

Browse files
committed
Add suport for the PUT alias endpoint
1 parent 3ad399a commit 61d98ab

14 files changed

+259
-70
lines changed

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -3458,12 +3458,12 @@ public OptimizeRequestParameters Force(bool force)
34583458
///http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-aliases.html
34593459
///</pre>
34603460
///</summary>
3461-
public class IndicesPutAliasRequestParameters : FluentRequestParameters<IndicesPutAliasRequestParameters>
3461+
public class PutAliasRequestParameters : FluentRequestParameters<PutAliasRequestParameters>
34623462
{
34633463

34643464
internal string _timeout { get; set; }
34653465
///<summary>Explicit timestamp for the document</summary>
3466-
public IndicesPutAliasRequestParameters Timeout(string timeout)
3466+
public PutAliasRequestParameters Timeout(string timeout)
34673467
{
34683468
this._timeout = timeout;
34693469
this.AddQueryString("timeout", this._timeout);
@@ -3473,7 +3473,7 @@ public IndicesPutAliasRequestParameters Timeout(string timeout)
34733473

34743474
internal string _master_timeout { get; set; }
34753475
///<summary>Specify timeout for connection to master</summary>
3476-
public IndicesPutAliasRequestParameters MasterTimeout(string master_timeout)
3476+
public PutAliasRequestParameters MasterTimeout(string master_timeout)
34773477
{
34783478
this._master_timeout = master_timeout;
34793479
this.AddQueryString("master_timeout", this._master_timeout);

src/Elasticsearch.Net/ElasticsearchClient.Generated.cs

+32-32
Large diffs are not rendered by default.

src/Elasticsearch.Net/IElasticsearchClient.Generated.cs

+16-16
Original file line numberDiff line numberDiff line change
@@ -9290,7 +9290,7 @@ public interface IElasticsearchClient
92909290
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
92919291
///</returns>
92929292

9293-
ElasticsearchResponse<T> IndicesPutAlias<T>(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9293+
ElasticsearchResponse<T> IndicesPutAlias<T>(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
92949294

92959295
///<summary>Represents a PUT on /{index}/_alias/{name}
92969296
///<para></para>Returns: A task that'll return an ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9310,7 +9310,7 @@ public interface IElasticsearchClient
93109310
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
93119311
///</returns>
93129312

9313-
Task<ElasticsearchResponse<T>> IndicesPutAliasAsync<T>(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9313+
Task<ElasticsearchResponse<T>> IndicesPutAliasAsync<T>(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
93149314

93159315
///<summary>Represents a PUT on /{index}/_alias/{name}
93169316
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the response body deserialized as DynamicDictionary
@@ -9332,7 +9332,7 @@ public interface IElasticsearchClient
93329332
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
93339333
///</returns>
93349334

9335-
ElasticsearchResponse<DynamicDictionary> IndicesPutAlias(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9335+
ElasticsearchResponse<DynamicDictionary> IndicesPutAlias(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
93369336

93379337
///<summary>Represents a PUT on /{index}/_alias/{name}
93389338
///<para></para>Returns: Task that'll return an ElasticsearchResponse&lt;T$gt; holding the response body deserialized as DynamicDictionary
@@ -9354,7 +9354,7 @@ public interface IElasticsearchClient
93549354
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
93559355
///</returns>
93569356

9357-
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasAsync(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9357+
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasAsync(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
93589358

93599359
///<summary>Represents a PUT on /_alias/{name}
93609360
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9373,7 +9373,7 @@ public interface IElasticsearchClient
93739373
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
93749374
///</returns>
93759375

9376-
ElasticsearchResponse<T> IndicesPutAliasForAll<T>(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9376+
ElasticsearchResponse<T> IndicesPutAliasForAll<T>(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
93779377

93789378
///<summary>Represents a PUT on /_alias/{name}
93799379
///<para></para>Returns: A task that'll return an ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9392,7 +9392,7 @@ public interface IElasticsearchClient
93929392
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
93939393
///</returns>
93949394

9395-
Task<ElasticsearchResponse<T>> IndicesPutAliasForAllAsync<T>(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9395+
Task<ElasticsearchResponse<T>> IndicesPutAliasForAllAsync<T>(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
93969396

93979397
///<summary>Represents a PUT on /_alias/{name}
93989398
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the response body deserialized as DynamicDictionary
@@ -9413,7 +9413,7 @@ public interface IElasticsearchClient
94139413
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
94149414
///</returns>
94159415

9416-
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasForAll(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9416+
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasForAll(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
94179417

94189418
///<summary>Represents a PUT on /_alias/{name}
94199419
///<para></para>Returns: Task that'll return an ElasticsearchResponse&lt;T$gt; holding the response body deserialized as DynamicDictionary
@@ -9434,7 +9434,7 @@ public interface IElasticsearchClient
94349434
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
94359435
///</returns>
94369436

9437-
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasForAllAsync(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9437+
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasForAllAsync(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
94389438

94399439
///<summary>Represents a POST on /{index}/_alias/{name}
94409440
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9454,7 +9454,7 @@ public interface IElasticsearchClient
94549454
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
94559455
///</returns>
94569456

9457-
ElasticsearchResponse<T> IndicesPutAliasPost<T>(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9457+
ElasticsearchResponse<T> IndicesPutAliasPost<T>(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
94589458

94599459
///<summary>Represents a POST on /{index}/_alias/{name}
94609460
///<para></para>Returns: A task that'll return an ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9474,7 +9474,7 @@ public interface IElasticsearchClient
94749474
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
94759475
///</returns>
94769476

9477-
Task<ElasticsearchResponse<T>> IndicesPutAliasPostAsync<T>(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9477+
Task<ElasticsearchResponse<T>> IndicesPutAliasPostAsync<T>(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
94789478

94799479
///<summary>Represents a POST on /{index}/_alias/{name}
94809480
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the response body deserialized as DynamicDictionary
@@ -9496,7 +9496,7 @@ public interface IElasticsearchClient
94969496
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
94979497
///</returns>
94989498

9499-
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasPost(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9499+
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasPost(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
95009500

95019501
///<summary>Represents a POST on /{index}/_alias/{name}
95029502
///<para></para>Returns: Task that'll return an ElasticsearchResponse&lt;T$gt; holding the response body deserialized as DynamicDictionary
@@ -9518,7 +9518,7 @@ public interface IElasticsearchClient
95189518
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
95199519
///</returns>
95209520

9521-
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasPostAsync(string index, string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9521+
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasPostAsync(string index, string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
95229522

95239523
///<summary>Represents a POST on /_alias/{name}
95249524
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9537,7 +9537,7 @@ public interface IElasticsearchClient
95379537
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
95389538
///</returns>
95399539

9540-
ElasticsearchResponse<T> IndicesPutAliasPostForAll<T>(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9540+
ElasticsearchResponse<T> IndicesPutAliasPostForAll<T>(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
95419541

95429542
///<summary>Represents a POST on /_alias/{name}
95439543
///<para></para>Returns: A task that'll return an ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.
@@ -9556,7 +9556,7 @@ public interface IElasticsearchClient
95569556
///<para> - If T is of type VoidResponse the response stream will be ignored completely</para>
95579557
///</returns>
95589558

9559-
Task<ElasticsearchResponse<T>> IndicesPutAliasPostForAllAsync<T>(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9559+
Task<ElasticsearchResponse<T>> IndicesPutAliasPostForAllAsync<T>(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
95609560

95619561
///<summary>Represents a POST on /_alias/{name}
95629562
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the response body deserialized as DynamicDictionary
@@ -9577,7 +9577,7 @@ public interface IElasticsearchClient
95779577
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
95789578
///</returns>
95799579

9580-
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasPostForAll(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9580+
ElasticsearchResponse<DynamicDictionary> IndicesPutAliasPostForAll(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
95819581

95829582
///<summary>Represents a POST on /_alias/{name}
95839583
///<para></para>Returns: Task that'll return an ElasticsearchResponse&lt;T$gt; holding the response body deserialized as DynamicDictionary
@@ -9598,7 +9598,7 @@ public interface IElasticsearchClient
95989598
///<para> - can be safely dispatched to a nullable type even if intermediate properties do not exist</para>
95999599
///</returns>
96009600

9601-
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasPostForAllAsync(string name, object body, Func<IndicesPutAliasRequestParameters, IndicesPutAliasRequestParameters> requestParameters = null);
9601+
Task<ElasticsearchResponse<DynamicDictionary>> IndicesPutAliasPostForAllAsync(string name, object body, Func<PutAliasRequestParameters, PutAliasRequestParameters> requestParameters = null);
96029602

96039603
///<summary>Represents a PUT on /{index}/{type}/_mapping
96049604
///<para></para>Returns: ElasticsearchResponse&lt;T&gt; holding the reponse body deserialized as T.

src/Nest/DSL/PutAliasDescriptor.cs

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
using Elasticsearch.Net;
2+
using Newtonsoft.Json;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
8+
namespace Nest
9+
{
10+
11+
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
12+
public interface IPutAliasRequest : IIndexOptionalNamePath<PutAliasRequestParameters>
13+
{
14+
[JsonProperty("routing")]
15+
string Routing { get; set; }
16+
17+
[JsonProperty("filter")]
18+
IFilterContainer Filter { get; set; }
19+
}
20+
21+
internal static class PutAliasPathInfo
22+
{
23+
public static void Update(ElasticsearchPathInfo<PutAliasRequestParameters> pathInfo)
24+
{
25+
pathInfo.HttpMethod = PathInfoHttpMethod.PUT;
26+
}
27+
}
28+
29+
public partial class PutAliasRequest : IndexOptionalNamePathBase<PutAliasRequestParameters>, IPutAliasRequest
30+
{
31+
public PutAliasRequest(string name) : base(name) { }
32+
33+
public PutAliasRequest(string index, string name) : base(index, name) { }
34+
35+
public string Routing { get; set; }
36+
37+
public IFilterContainer Filter { get; set; }
38+
39+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<PutAliasRequestParameters> pathInfo)
40+
{
41+
PutAliasPathInfo.Update(pathInfo);
42+
}
43+
44+
}
45+
46+
[DescriptorFor("IndicesPutAlias")]
47+
public partial class PutAliasDescriptor
48+
: IndexOptionalNamePathDescriptor<PutAliasDescriptor, PutAliasRequestParameters>, IPutAliasRequest
49+
{
50+
IPutAliasRequest Self { get { return this; } }
51+
string IPutAliasRequest.Routing { get; set; }
52+
IFilterContainer IPutAliasRequest.Filter { get; set; }
53+
54+
public PutAliasDescriptor Routing(string routing)
55+
{
56+
Self.Routing = routing;
57+
return this;
58+
}
59+
60+
public PutAliasDescriptor Filter<T>(Func<FilterDescriptor<T>, FilterContainer> filterSelector)
61+
where T : class
62+
{
63+
filterSelector.ThrowIfNull("filterSelector");
64+
Self.Filter = filterSelector(new FilterDescriptor<T>());
65+
return this;
66+
}
67+
68+
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<PutAliasRequestParameters> pathInfo)
69+
{
70+
PutAliasPathInfo.Update(pathInfo);
71+
}
72+
73+
}
74+
}

src/Nest/DSL/_Descriptors.generated.cs

+3-9
Original file line numberDiff line numberDiff line change
@@ -3195,32 +3195,26 @@ public OptimizeDescriptor Force(bool force = true)
31953195
///http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-aliases.html
31963196
///</pre>
31973197
///</summary>
3198-
public partial class IndicesPutAliasDescriptor : BaseRequest<IndicesPutAliasRequestParameters>
3198+
public partial class PutAliasDescriptor
31993199
{
32003200

32013201

32023202

32033203
///<summary>Explicit timestamp for the document</summary>
3204-
public IndicesPutAliasDescriptor Timeout(string timeout)
3204+
public PutAliasDescriptor Timeout(string timeout)
32053205
{
32063206
this.Request.RequestParameters.Timeout(timeout);
32073207
return this;
32083208
}
32093209

32103210

32113211
///<summary>Specify timeout for connection to master</summary>
3212-
public IndicesPutAliasDescriptor MasterTimeout(string master_timeout)
3212+
public PutAliasDescriptor MasterTimeout(string master_timeout)
32133213
{
32143214
this.Request.RequestParameters.MasterTimeout(master_timeout);
32153215
return this;
32163216
}
32173217

3218-
3219-
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<IndicesPutAliasRequestParameters> pathInfo)
3220-
{
3221-
throw new NotImplementedException();
3222-
}
3223-
32243218

32253219
}
32263220

src/Nest/DSL/_Requests.generated.cs

+1-7
Original file line numberDiff line numberDiff line change
@@ -2910,7 +2910,7 @@ public bool Force
29102910
///http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/indices-aliases.html
29112911
///</pre>
29122912
///</summary>
2913-
public partial class IndicesPutAliasRequest : BasePathRequest<IndicesPutAliasRequestParameters>
2913+
public partial class PutAliasRequest
29142914
{
29152915

29162916
///<summary>Explicit timestamp for the document</summary>
@@ -2928,12 +2928,6 @@ public string MasterTimeout
29282928
set { this.Request.RequestParameters.AddQueryString("master_timeout", value); }
29292929
}
29302930

2931-
2932-
protected override void UpdatePathInfo(IConnectionSettingsValues settings, ElasticsearchPathInfo<IndicesPutAliasRequestParameters> pathInfo)
2933-
{
2934-
throw new NotImplementedException();
2935-
}
2936-
29372931
}
29382932

29392933

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace Nest
7+
{
8+
public interface IPutAliasResponse : IResponse
9+
{
10+
}
11+
12+
public class PutAliasResponse : BaseResponse, IPutAliasResponse
13+
{
14+
}
15+
}

src/Nest/ElasticClient-Aliases.cs

+35
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,41 @@ public Task<IGetAliasesResponse> GetAliasesAsync(IGetAliasesRequest getAliasesRe
137137
);
138138
}
139139

140+
/// <inheritdoc />
141+
public IPutAliasResponse PutAlias(IPutAliasRequest putAliasRequest)
142+
{
143+
return this.Dispatch<IPutAliasRequest, PutAliasRequestParameters, PutAliasResponse>(
144+
putAliasRequest,
145+
(p, d) => this.RawDispatch.IndicesPutAliasDispatch<PutAliasResponse>(p, d)
146+
);
147+
}
148+
149+
/// <inheritdoc />
150+
public Task<IPutAliasResponse> PutAliasAsync(IPutAliasRequest putAliasRequest)
151+
{
152+
return this.DispatchAsync<IPutAliasRequest, PutAliasRequestParameters, PutAliasResponse, IPutAliasResponse>(
153+
putAliasRequest,
154+
(p, d) => this.RawDispatch.IndicesPutAliasDispatchAsync<PutAliasResponse>(p, d)
155+
);
156+
}
157+
158+
/// <inheritdoc />
159+
public IPutAliasResponse PutAlias(Func<PutAliasDescriptor, PutAliasDescriptor> putAliasDescriptor)
160+
{
161+
return this.Dispatch<PutAliasDescriptor, PutAliasRequestParameters, PutAliasResponse>(
162+
putAliasDescriptor,
163+
(p, d) => this.RawDispatch.IndicesPutAliasDispatch<PutAliasResponse>(p, d)
164+
);
165+
}
166+
167+
/// <inheritdoc />
168+
public Task<IPutAliasResponse> PutAliasAsync(Func<PutAliasDescriptor, PutAliasDescriptor> putAliasDescriptor)
169+
{
170+
return this.DispatchAsync<PutAliasDescriptor, PutAliasRequestParameters, PutAliasResponse, IPutAliasResponse>(
171+
putAliasDescriptor,
172+
(p, d) => this.RawDispatch.IndicesPutAliasDispatchAsync<PutAliasResponse>(p, d)
173+
);
174+
}
140175

141176
/// <inheritdoc />
142177
private GetAliasesResponse DeserializeGetAliasesResponse(IElasticsearchResponse connectionStatus, Stream stream)

src/Nest/IElasticClient.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1007,7 +1007,14 @@ Task<IGetResponse<T>> GetAsync<T>(IGetRequest getRequest)
10071007

10081008
/// <inheritdoc />
10091009
Task<IGetAliasesResponse> GetAliasesAsync(IGetAliasesRequest getAliasesRequest);
1010-
1010+
1011+
IPutAliasResponse PutAlias(IPutAliasRequest putAliasRequest);
1012+
1013+
Task<IPutAliasResponse> PutAliasAsync(IPutAliasRequest putAliasRequest);
1014+
1015+
IPutAliasResponse PutAlias(Func<PutAliasDescriptor, PutAliasDescriptor> putAliasDescriptor);
1016+
1017+
Task<IPutAliasResponse> PutAliasAsync(Func<PutAliasDescriptor, PutAliasDescriptor> putAliasDescriptor);
10111018

10121019
/// <summary>
10131020
/// The optimize API allows to optimize one or more indices through an API. The optimize process basically optimizes

0 commit comments

Comments
 (0)