Skip to content

Commit bfdd07b

Browse files
authored
Update API spec, fix some spec-related java client issues (#344) (#345)
1 parent 4c2e1a8 commit bfdd07b

30 files changed

+1191
-401
lines changed

java-client/src/main/java/co/elastic/clients/elasticsearch/_types/Time.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import java.util.function.Function;
4444
import javax.annotation.Nullable;
4545

46-
// typedef: _types.Time
46+
// typedef: _types.Duration
4747

4848
/**
4949
* Whenever durations need to be specified, e.g. for a timeout parameter, the
@@ -52,7 +52,8 @@
5252
* @see <a href=
5353
* "https://github.com/elastic/elasticsearch/blob/master/libs/core/src/main/java/org/elasticsearch/core/TimeValue.java">Documentation
5454
* on elastic.co</a>
55-
* @see <a href="../doc-files/api-spec.html#_types.Time">API specification</a>
55+
* @see <a href="../doc-files/api-spec.html#_types.Duration">API
56+
* specification</a>
5657
*/
5758
@JsonpDeserializable
5859
public class Time implements TaggedUnion<Time.Kind, Object>, JsonpSerializable {

java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/DateHistogramAggregation.java

+28-13
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
package co.elastic.clients.elasticsearch._types.aggregations;
2525

2626
import co.elastic.clients.elasticsearch._types.Script;
27+
import co.elastic.clients.elasticsearch._types.SortOrder;
2728
import co.elastic.clients.elasticsearch._types.Time;
2829
import co.elastic.clients.elasticsearch.transform.PivotGroupBy;
2930
import co.elastic.clients.elasticsearch.transform.PivotGroupByVariant;
@@ -34,11 +35,13 @@
3435
import co.elastic.clients.json.ObjectBuilderDeserializer;
3536
import co.elastic.clients.json.ObjectDeserializer;
3637
import co.elastic.clients.util.ApiTypeHelper;
38+
import co.elastic.clients.util.NamedValue;
3739
import co.elastic.clients.util.ObjectBuilder;
3840
import jakarta.json.stream.JsonGenerator;
3941
import java.lang.Boolean;
4042
import java.lang.Integer;
4143
import java.lang.String;
44+
import java.util.List;
4245
import java.util.Map;
4346
import java.util.Objects;
4447
import java.util.function.Function;
@@ -84,8 +87,7 @@ public class DateHistogramAggregation extends BucketAggregationBase implements A
8487
@Nullable
8588
private final Time offset;
8689

87-
@Nullable
88-
private final HistogramOrder order;
90+
private final List<NamedValue<SortOrder>> order;
8991

9092
private final Map<String, JsonData> params;
9193

@@ -113,7 +115,7 @@ private DateHistogramAggregation(Builder builder) {
113115
this.minDocCount = builder.minDocCount;
114116
this.missing = builder.missing;
115117
this.offset = builder.offset;
116-
this.order = builder.order;
118+
this.order = ApiTypeHelper.unmodifiable(builder.order);
117119
this.params = ApiTypeHelper.unmodifiable(builder.params);
118120
this.script = builder.script;
119121
this.timeZone = builder.timeZone;
@@ -224,8 +226,7 @@ public final Time offset() {
224226
/**
225227
* API name: {@code order}
226228
*/
227-
@Nullable
228-
public final HistogramOrder order() {
229+
public final List<NamedValue<SortOrder>> order() {
229230
return this.order;
230231
}
231232

@@ -312,9 +313,17 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
312313
this.offset.serialize(generator, mapper);
313314

314315
}
315-
if (this.order != null) {
316+
if (ApiTypeHelper.isDefined(this.order)) {
316317
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();
318327

319328
}
320329
if (ApiTypeHelper.isDefined(this.params)) {
@@ -386,7 +395,7 @@ public static class Builder extends BucketAggregationBase.AbstractBuilder<Builde
386395
private Time offset;
387396

388397
@Nullable
389-
private HistogramOrder order;
398+
private List<NamedValue<SortOrder>> order;
390399

391400
@Nullable
392401
private Map<String, JsonData> params;
@@ -519,17 +528,22 @@ public final Builder offset(Function<Time.Builder, ObjectBuilder<Time>> fn) {
519528

520529
/**
521530
* API name: {@code order}
531+
* <p>
532+
* Adds all elements of <code>list</code> to <code>order</code>.
522533
*/
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);
525536
return this;
526537
}
527538

528539
/**
529540
* API name: {@code order}
541+
* <p>
542+
* Adds one or more values to <code>order</code>.
530543
*/
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;
533547
}
534548

535549
/**
@@ -624,7 +638,8 @@ protected static void setupDateHistogramAggregationDeserializer(
624638
op.add(Builder::minDocCount, JsonpDeserializer.integerDeserializer(), "min_doc_count");
625639
op.add(Builder::missing, JsonpDeserializer.stringDeserializer(), "missing");
626640
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");
628643
op.add(Builder::params, JsonpDeserializer.stringMapDeserializer(JsonData._DESERIALIZER), "params");
629644
op.add(Builder::script, Script._DESERIALIZER, "script");
630645
op.add(Builder::timeZone, JsonpDeserializer.stringDeserializer(), "time_zone");

java-client/src/main/java/co/elastic/clients/elasticsearch/_types/aggregations/HistogramAggregation.java

+29-13
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,23 @@
2424
package co.elastic.clients.elasticsearch._types.aggregations;
2525

2626
import co.elastic.clients.elasticsearch._types.Script;
27+
import co.elastic.clients.elasticsearch._types.SortOrder;
2728
import co.elastic.clients.elasticsearch.transform.PivotGroupBy;
2829
import co.elastic.clients.elasticsearch.transform.PivotGroupByVariant;
2930
import co.elastic.clients.json.JsonpDeserializable;
3031
import co.elastic.clients.json.JsonpDeserializer;
3132
import co.elastic.clients.json.JsonpMapper;
3233
import co.elastic.clients.json.ObjectBuilderDeserializer;
3334
import co.elastic.clients.json.ObjectDeserializer;
35+
import co.elastic.clients.util.ApiTypeHelper;
36+
import co.elastic.clients.util.NamedValue;
3437
import co.elastic.clients.util.ObjectBuilder;
3538
import jakarta.json.stream.JsonGenerator;
3639
import java.lang.Boolean;
3740
import java.lang.Double;
3841
import java.lang.Integer;
3942
import java.lang.String;
43+
import java.util.List;
4044
import java.util.Objects;
4145
import java.util.function.Function;
4246
import javax.annotation.Nullable;
@@ -72,8 +76,7 @@ public class HistogramAggregation extends BucketAggregationBase implements Aggre
7276
@Nullable
7377
private final Double offset;
7478

75-
@Nullable
76-
private final HistogramOrder order;
79+
private final List<NamedValue<SortOrder>> order;
7780

7881
@Nullable
7982
private final Script script;
@@ -96,7 +99,7 @@ private HistogramAggregation(Builder builder) {
9699
this.minDocCount = builder.minDocCount;
97100
this.missing = builder.missing;
98101
this.offset = builder.offset;
99-
this.order = builder.order;
102+
this.order = ApiTypeHelper.unmodifiable(builder.order);
100103
this.script = builder.script;
101104
this.format = builder.format;
102105
this.keyed = builder.keyed;
@@ -182,8 +185,7 @@ public final Double offset() {
182185
/**
183186
* API name: {@code order}
184187
*/
185-
@Nullable
186-
public final HistogramOrder order() {
188+
public final List<NamedValue<SortOrder>> order() {
187189
return this.order;
188190
}
189191

@@ -249,9 +251,17 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
249251
generator.write(this.offset);
250252

251253
}
252-
if (this.order != null) {
254+
if (ApiTypeHelper.isDefined(this.order)) {
253255
generator.writeKey("order");
254-
this.order.serialize(generator, mapper);
256+
generator.writeStartArray();
257+
for (NamedValue<SortOrder> item0 : this.order) {
258+
generator.writeStartObject();
259+
generator.writeKey(item0.name());
260+
item0.value().serialize(generator, mapper);
261+
generator.writeEnd();
262+
263+
}
264+
generator.writeEnd();
255265

256266
}
257267
if (this.script != null) {
@@ -303,7 +313,7 @@ public static class Builder extends BucketAggregationBase.AbstractBuilder<Builde
303313
private Double offset;
304314

305315
@Nullable
306-
private HistogramOrder order;
316+
private List<NamedValue<SortOrder>> order;
307317

308318
@Nullable
309319
private Script script;
@@ -388,17 +398,22 @@ public final Builder offset(@Nullable Double value) {
388398

389399
/**
390400
* API name: {@code order}
401+
* <p>
402+
* Adds all elements of <code>list</code> to <code>order</code>.
391403
*/
392-
public final Builder order(@Nullable HistogramOrder value) {
393-
this.order = value;
404+
public final Builder order(List<NamedValue<SortOrder>> list) {
405+
this.order = _listAddAll(this.order, list);
394406
return this;
395407
}
396408

397409
/**
398410
* API name: {@code order}
411+
* <p>
412+
* Adds one or more values to <code>order</code>.
399413
*/
400-
public final Builder order(Function<HistogramOrder.Builder, ObjectBuilder<HistogramOrder>> fn) {
401-
return this.order(fn.apply(new HistogramOrder.Builder()).build());
414+
public final Builder order(NamedValue<SortOrder> value, NamedValue<SortOrder>... values) {
415+
this.order = _listAdd(this.order, value, values);
416+
return this;
402417
}
403418

404419
/**
@@ -470,7 +485,8 @@ protected static void setupHistogramAggregationDeserializer(ObjectDeserializer<H
470485
op.add(Builder::minDocCount, JsonpDeserializer.integerDeserializer(), "min_doc_count");
471486
op.add(Builder::missing, JsonpDeserializer.doubleDeserializer(), "missing");
472487
op.add(Builder::offset, JsonpDeserializer.doubleDeserializer(), "offset");
473-
op.add(Builder::order, HistogramOrder._DESERIALIZER, "order");
488+
op.add(Builder::order,
489+
JsonpDeserializer.arrayDeserializer(NamedValue.deserializer(() -> SortOrder._DESERIALIZER)), "order");
474490
op.add(Builder::script, Script._DESERIALIZER, "script");
475491
op.add(Builder::format, JsonpDeserializer.stringDeserializer(), "format");
476492
op.add(Builder::keyed, JsonpDeserializer.booleanDeserializer(), "keyed");

0 commit comments

Comments
 (0)