|
24 | 24 | package co.elastic.clients.elasticsearch._types.aggregations;
|
25 | 25 |
|
26 | 26 | import co.elastic.clients.elasticsearch._types.Script;
|
| 27 | +import co.elastic.clients.elasticsearch._types.SortOrder; |
27 | 28 | import co.elastic.clients.elasticsearch._types.Time;
|
28 | 29 | import co.elastic.clients.elasticsearch.transform.PivotGroupBy;
|
29 | 30 | import co.elastic.clients.elasticsearch.transform.PivotGroupByVariant;
|
|
34 | 35 | import co.elastic.clients.json.ObjectBuilderDeserializer;
|
35 | 36 | import co.elastic.clients.json.ObjectDeserializer;
|
36 | 37 | import co.elastic.clients.util.ApiTypeHelper;
|
| 38 | +import co.elastic.clients.util.NamedValue; |
37 | 39 | import co.elastic.clients.util.ObjectBuilder;
|
38 | 40 | import jakarta.json.stream.JsonGenerator;
|
39 | 41 | import java.lang.Boolean;
|
40 | 42 | import java.lang.Integer;
|
41 | 43 | import java.lang.String;
|
| 44 | +import java.util.List; |
42 | 45 | import java.util.Map;
|
43 | 46 | import java.util.Objects;
|
44 | 47 | import java.util.function.Function;
|
@@ -84,8 +87,7 @@ public class DateHistogramAggregation extends BucketAggregationBase implements A
|
84 | 87 | @Nullable
|
85 | 88 | private final Time offset;
|
86 | 89 |
|
87 |
| - @Nullable |
88 |
| - private final HistogramOrder order; |
| 90 | + private final List<NamedValue<SortOrder>> order; |
89 | 91 |
|
90 | 92 | private final Map<String, JsonData> params;
|
91 | 93 |
|
@@ -113,7 +115,7 @@ private DateHistogramAggregation(Builder builder) {
|
113 | 115 | this.minDocCount = builder.minDocCount;
|
114 | 116 | this.missing = builder.missing;
|
115 | 117 | this.offset = builder.offset;
|
116 |
| - this.order = builder.order; |
| 118 | + this.order = ApiTypeHelper.unmodifiable(builder.order); |
117 | 119 | this.params = ApiTypeHelper.unmodifiable(builder.params);
|
118 | 120 | this.script = builder.script;
|
119 | 121 | this.timeZone = builder.timeZone;
|
@@ -224,8 +226,7 @@ public final Time offset() {
|
224 | 226 | /**
|
225 | 227 | * API name: {@code order}
|
226 | 228 | */
|
227 |
| - @Nullable |
228 |
| - public final HistogramOrder order() { |
| 229 | + public final List<NamedValue<SortOrder>> order() { |
229 | 230 | return this.order;
|
230 | 231 | }
|
231 | 232 |
|
@@ -312,9 +313,17 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
|
312 | 313 | this.offset.serialize(generator, mapper);
|
313 | 314 |
|
314 | 315 | }
|
315 |
| - if (this.order != null) { |
| 316 | + if (ApiTypeHelper.isDefined(this.order)) { |
316 | 317 | generator.writeKey("order");
|
317 |
| - this.order.serialize(generator, mapper); |
| 318 | + generator.writeStartArray(); |
| 319 | + for (NamedValue<SortOrder> item0 : this.order) { |
| 320 | + generator.writeStartObject(); |
| 321 | + generator.writeKey(item0.name()); |
| 322 | + item0.value().serialize(generator, mapper); |
| 323 | + generator.writeEnd(); |
| 324 | + |
| 325 | + } |
| 326 | + generator.writeEnd(); |
318 | 327 |
|
319 | 328 | }
|
320 | 329 | if (ApiTypeHelper.isDefined(this.params)) {
|
@@ -386,7 +395,7 @@ public static class Builder extends BucketAggregationBase.AbstractBuilder<Builde
|
386 | 395 | private Time offset;
|
387 | 396 |
|
388 | 397 | @Nullable
|
389 |
| - private HistogramOrder order; |
| 398 | + private List<NamedValue<SortOrder>> order; |
390 | 399 |
|
391 | 400 | @Nullable
|
392 | 401 | private Map<String, JsonData> params;
|
@@ -519,17 +528,22 @@ public final Builder offset(Function<Time.Builder, ObjectBuilder<Time>> fn) {
|
519 | 528 |
|
520 | 529 | /**
|
521 | 530 | * API name: {@code order}
|
| 531 | + * <p> |
| 532 | + * Adds all elements of <code>list</code> to <code>order</code>. |
522 | 533 | */
|
523 |
| - public final Builder order(@Nullable HistogramOrder value) { |
524 |
| - this.order = value; |
| 534 | + public final Builder order(List<NamedValue<SortOrder>> list) { |
| 535 | + this.order = _listAddAll(this.order, list); |
525 | 536 | return this;
|
526 | 537 | }
|
527 | 538 |
|
528 | 539 | /**
|
529 | 540 | * API name: {@code order}
|
| 541 | + * <p> |
| 542 | + * Adds one or more values to <code>order</code>. |
530 | 543 | */
|
531 |
| - public final Builder order(Function<HistogramOrder.Builder, ObjectBuilder<HistogramOrder>> fn) { |
532 |
| - return this.order(fn.apply(new HistogramOrder.Builder()).build()); |
| 544 | + public final Builder order(NamedValue<SortOrder> value, NamedValue<SortOrder>... values) { |
| 545 | + this.order = _listAdd(this.order, value, values); |
| 546 | + return this; |
533 | 547 | }
|
534 | 548 |
|
535 | 549 | /**
|
@@ -624,7 +638,8 @@ protected static void setupDateHistogramAggregationDeserializer(
|
624 | 638 | op.add(Builder::minDocCount, JsonpDeserializer.integerDeserializer(), "min_doc_count");
|
625 | 639 | op.add(Builder::missing, JsonpDeserializer.stringDeserializer(), "missing");
|
626 | 640 | op.add(Builder::offset, Time._DESERIALIZER, "offset");
|
627 |
| - op.add(Builder::order, HistogramOrder._DESERIALIZER, "order"); |
| 641 | + op.add(Builder::order, |
| 642 | + JsonpDeserializer.arrayDeserializer(NamedValue.deserializer(() -> SortOrder._DESERIALIZER)), "order"); |
628 | 643 | op.add(Builder::params, JsonpDeserializer.stringMapDeserializer(JsonData._DESERIALIZER), "params");
|
629 | 644 | op.add(Builder::script, Script._DESERIALIZER, "script");
|
630 | 645 | op.add(Builder::timeZone, JsonpDeserializer.stringDeserializer(), "time_zone");
|
|
0 commit comments