20
20
package org .elasticsearch .action .admin .indices .alias ;
21
21
22
22
import org .elasticsearch .ElasticsearchGenerationException ;
23
+ import org .elasticsearch .Version ;
23
24
import org .elasticsearch .action .ActionRequestValidationException ;
24
25
import org .elasticsearch .action .AliasesRequest ;
25
26
import org .elasticsearch .action .support .IndicesOptions ;
@@ -84,6 +85,7 @@ public static class AliasActions implements AliasesRequest, Writeable, ToXConten
84
85
private static final ParseField ROUTING = new ParseField ("routing" );
85
86
private static final ParseField INDEX_ROUTING = new ParseField ("index_routing" , "indexRouting" , "index-routing" );
86
87
private static final ParseField SEARCH_ROUTING = new ParseField ("search_routing" , "searchRouting" , "search-routing" );
88
+ private static final ParseField IS_WRITE_INDEX = new ParseField ("is_write_index" );
87
89
88
90
private static final ParseField ADD = new ParseField ("add" );
89
91
private static final ParseField REMOVE = new ParseField ("remove" );
@@ -179,6 +181,7 @@ private static ObjectParser<AliasActions, Void> parser(String name, Supplier<Ali
179
181
ADD_PARSER .declareField (AliasActions ::routing , XContentParser ::text , ROUTING , ValueType .INT );
180
182
ADD_PARSER .declareField (AliasActions ::indexRouting , XContentParser ::text , INDEX_ROUTING , ValueType .INT );
181
183
ADD_PARSER .declareField (AliasActions ::searchRouting , XContentParser ::text , SEARCH_ROUTING , ValueType .INT );
184
+ ADD_PARSER .declareField (AliasActions ::writeIndex , XContentParser ::booleanValue , IS_WRITE_INDEX , ValueType .BOOLEAN );
182
185
}
183
186
private static final ObjectParser <AliasActions , Void > REMOVE_PARSER = parser (REMOVE .getPreferredName (), AliasActions ::remove );
184
187
private static final ObjectParser <AliasActions , Void > REMOVE_INDEX_PARSER = parser (REMOVE_INDEX .getPreferredName (),
@@ -215,6 +218,7 @@ private static ObjectParser<AliasActions, Void> parser(String name, Supplier<Ali
215
218
private String routing ;
216
219
private String indexRouting ;
217
220
private String searchRouting ;
221
+ private Boolean writeIndex ;
218
222
219
223
public AliasActions (AliasActions .Type type ) {
220
224
this .type = type ;
@@ -231,6 +235,9 @@ public AliasActions(StreamInput in) throws IOException {
231
235
routing = in .readOptionalString ();
232
236
searchRouting = in .readOptionalString ();
233
237
indexRouting = in .readOptionalString ();
238
+ if (in .getVersion ().onOrAfter (Version .V_7_0_0_alpha1 )) {
239
+ writeIndex = in .readOptionalBoolean ();
240
+ }
234
241
}
235
242
236
243
@ Override
@@ -242,6 +249,9 @@ public void writeTo(StreamOutput out) throws IOException {
242
249
out .writeOptionalString (routing );
243
250
out .writeOptionalString (searchRouting );
244
251
out .writeOptionalString (indexRouting );
252
+ if (out .getVersion ().onOrAfter (Version .V_7_0_0_alpha1 )) {
253
+ out .writeOptionalBoolean (writeIndex );
254
+ }
245
255
}
246
256
247
257
/**
@@ -401,6 +411,18 @@ public AliasActions filter(QueryBuilder filter) {
401
411
}
402
412
}
403
413
414
+ public AliasActions writeIndex (Boolean writeIndex ) {
415
+ if (type != AliasActions .Type .ADD ) {
416
+ throw new IllegalArgumentException ("[is_write_index] is unsupported for [" + type + "]" );
417
+ }
418
+ this .writeIndex = writeIndex ;
419
+ return this ;
420
+ }
421
+
422
+ public Boolean writeIndex () {
423
+ return writeIndex ;
424
+ }
425
+
404
426
@ Override
405
427
public String [] aliases () {
406
428
return aliases ;
0 commit comments