Skip to content

Commit 0a47bd2

Browse files
committed
[codegen] Update to latest API spec
1 parent b822dcb commit 0a47bd2

39 files changed

+6435
-501
lines changed

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

+107-92
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,22 @@
2323

2424
package co.elastic.clients.elasticsearch._types.aggregations;
2525

26+
import co.elastic.clients.elasticsearch.ml.ClassificationInferenceOptions;
27+
import co.elastic.clients.elasticsearch.ml.RegressionInferenceOptions;
28+
import co.elastic.clients.json.JsonEnum;
2629
import co.elastic.clients.json.JsonpDeserializable;
2730
import co.elastic.clients.json.JsonpDeserializer;
2831
import co.elastic.clients.json.JsonpMapper;
2932
import co.elastic.clients.json.JsonpSerializable;
3033
import co.elastic.clients.json.ObjectBuilderDeserializer;
3134
import co.elastic.clients.json.ObjectDeserializer;
35+
import co.elastic.clients.util.ApiTypeHelper;
3236
import co.elastic.clients.util.ObjectBuilder;
37+
import co.elastic.clients.util.TaggedUnion;
38+
import co.elastic.clients.util.TaggedUnionUtils;
3339
import co.elastic.clients.util.WithJsonObjectBuilderBase;
3440
import jakarta.json.stream.JsonGenerator;
41+
import java.lang.Object;
3542
import java.util.Objects;
3643
import java.util.function.Function;
3744
import javax.annotation.Nullable;
@@ -45,19 +52,62 @@
4552
* specification</a>
4653
*/
4754
@JsonpDeserializable
48-
public class InferenceConfig implements JsonpSerializable {
49-
@Nullable
50-
private final RegressionInferenceOptions regression;
55+
public class InferenceConfig implements TaggedUnion<InferenceConfig.Kind, Object>, JsonpSerializable {
5156

52-
@Nullable
53-
private final ClassificationInferenceOptions classification;
57+
/**
58+
* {@link InferenceConfig} variant kinds.
59+
*/
60+
/**
61+
* {@link InferenceConfig} variant kinds.
62+
*
63+
* @see <a href=
64+
* "../../doc-files/api-spec.html#_types.aggregations.InferenceConfigContainer">API
65+
* specification</a>
66+
*/
67+
68+
public enum Kind implements JsonEnum {
69+
Regression("regression"),
70+
71+
Classification("classification"),
72+
73+
;
74+
75+
private final String jsonValue;
76+
77+
Kind(String jsonValue) {
78+
this.jsonValue = jsonValue;
79+
}
80+
81+
public String jsonValue() {
82+
return this.jsonValue;
83+
}
84+
85+
}
5486

55-
// ---------------------------------------------------------------------------------------------
87+
private final Kind _kind;
88+
private final Object _value;
89+
90+
@Override
91+
public final Kind _kind() {
92+
return _kind;
93+
}
94+
95+
@Override
96+
public final Object _get() {
97+
return _value;
98+
}
99+
100+
public InferenceConfig(InferenceConfigVariant value) {
101+
102+
this._kind = ApiTypeHelper.requireNonNull(value._inferenceConfigKind(), this, "<variant kind>");
103+
this._value = ApiTypeHelper.requireNonNull(value, this, "<variant value>");
104+
105+
}
56106

57107
private InferenceConfig(Builder builder) {
58108

59-
this.regression = builder.regression;
60-
this.classification = builder.classification;
109+
this._kind = ApiTypeHelper.requireNonNull(builder._kind, builder, "<variant kind>");
110+
this._value = ApiTypeHelper.requireNonNull(builder._value, builder, "<variant value>");
61111

62112
}
63113

@@ -66,133 +116,98 @@ public static InferenceConfig of(Function<Builder, ObjectBuilder<InferenceConfig
66116
}
67117

68118
/**
69-
* Regression configuration for inference.
70-
* <p>
71-
* API name: {@code regression}
119+
* Is this variant instance of kind {@code regression}?
72120
*/
73-
@Nullable
74-
public final RegressionInferenceOptions regression() {
75-
return this.regression;
121+
public boolean isRegression() {
122+
return _kind == Kind.Regression;
76123
}
77124

78125
/**
79-
* Classification configuration for inference.
80-
* <p>
81-
* API name: {@code classification}
126+
* Get the {@code regression} variant value.
127+
*
128+
* @throws IllegalStateException
129+
* if the current variant is not of the {@code regression} kind.
82130
*/
83-
@Nullable
84-
public final ClassificationInferenceOptions classification() {
85-
return this.classification;
131+
public RegressionInferenceOptions regression() {
132+
return TaggedUnionUtils.get(this, Kind.Regression);
86133
}
87134

88135
/**
89-
* Serialize this object to JSON.
136+
* Is this variant instance of kind {@code classification}?
90137
*/
91-
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
92-
generator.writeStartObject();
93-
serializeInternal(generator, mapper);
94-
generator.writeEnd();
138+
public boolean isClassification() {
139+
return _kind == Kind.Classification;
95140
}
96141

97-
protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
142+
/**
143+
* Get the {@code classification} variant value.
144+
*
145+
* @throws IllegalStateException
146+
* if the current variant is not of the {@code classification} kind.
147+
*/
148+
public ClassificationInferenceOptions classification() {
149+
return TaggedUnionUtils.get(this, Kind.Classification);
150+
}
98151

99-
if (this.regression != null) {
100-
generator.writeKey("regression");
101-
this.regression.serialize(generator, mapper);
152+
@Override
153+
@SuppressWarnings("unchecked")
154+
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
102155

103-
}
104-
if (this.classification != null) {
105-
generator.writeKey("classification");
106-
this.classification.serialize(generator, mapper);
156+
generator.writeStartObject();
107157

158+
generator.writeKey(_kind.jsonValue());
159+
if (_value instanceof JsonpSerializable) {
160+
((JsonpSerializable) _value).serialize(generator, mapper);
108161
}
109162

110-
}
111-
112-
// ---------------------------------------------------------------------------------------------
163+
generator.writeEnd();
113164

114-
/**
115-
* Builder for {@link InferenceConfig}.
116-
*/
165+
}
117166

118167
public static class Builder extends WithJsonObjectBuilderBase<Builder> implements ObjectBuilder<InferenceConfig> {
119-
@Nullable
120-
private RegressionInferenceOptions regression;
121-
122-
@Nullable
123-
private ClassificationInferenceOptions classification;
124-
125-
/**
126-
* Regression configuration for inference.
127-
* <p>
128-
* API name: {@code regression}
129-
*/
130-
public final Builder regression(@Nullable RegressionInferenceOptions value) {
131-
this.regression = value;
168+
private Kind _kind;
169+
private Object _value;
170+
171+
@Override
172+
protected Builder self() {
173+
return this;
174+
}
175+
public ObjectBuilder<InferenceConfig> regression(RegressionInferenceOptions v) {
176+
this._kind = Kind.Regression;
177+
this._value = v;
132178
return this;
133179
}
134180

135-
/**
136-
* Regression configuration for inference.
137-
* <p>
138-
* API name: {@code regression}
139-
*/
140-
public final Builder regression(
181+
public ObjectBuilder<InferenceConfig> regression(
141182
Function<RegressionInferenceOptions.Builder, ObjectBuilder<RegressionInferenceOptions>> fn) {
142183
return this.regression(fn.apply(new RegressionInferenceOptions.Builder()).build());
143184
}
144185

145-
/**
146-
* Classification configuration for inference.
147-
* <p>
148-
* API name: {@code classification}
149-
*/
150-
public final Builder classification(@Nullable ClassificationInferenceOptions value) {
151-
this.classification = value;
186+
public ObjectBuilder<InferenceConfig> classification(ClassificationInferenceOptions v) {
187+
this._kind = Kind.Classification;
188+
this._value = v;
152189
return this;
153190
}
154191

155-
/**
156-
* Classification configuration for inference.
157-
* <p>
158-
* API name: {@code classification}
159-
*/
160-
public final Builder classification(
192+
public ObjectBuilder<InferenceConfig> classification(
161193
Function<ClassificationInferenceOptions.Builder, ObjectBuilder<ClassificationInferenceOptions>> fn) {
162194
return this.classification(fn.apply(new ClassificationInferenceOptions.Builder()).build());
163195
}
164196

165-
@Override
166-
protected Builder self() {
167-
return this;
168-
}
169-
170-
/**
171-
* Builds a {@link InferenceConfig}.
172-
*
173-
* @throws NullPointerException
174-
* if some of the required fields are null.
175-
*/
176197
public InferenceConfig build() {
177198
_checkSingleUse();
178-
179199
return new InferenceConfig(this);
180200
}
181-
}
182201

183-
// ---------------------------------------------------------------------------------------------
184-
185-
/**
186-
* Json deserializer for {@link InferenceConfig}
187-
*/
188-
public static final JsonpDeserializer<InferenceConfig> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
189-
InferenceConfig::setupInferenceConfigDeserializer);
202+
}
190203

191-
protected static void setupInferenceConfigDeserializer(ObjectDeserializer<InferenceConfig.Builder> op) {
204+
protected static void setupInferenceConfigDeserializer(ObjectDeserializer<Builder> op) {
192205

193206
op.add(Builder::regression, RegressionInferenceOptions._DESERIALIZER, "regression");
194207
op.add(Builder::classification, ClassificationInferenceOptions._DESERIALIZER, "classification");
195208

196209
}
197210

211+
public static final JsonpDeserializer<InferenceConfig> _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new,
212+
InferenceConfig::setupInferenceConfigDeserializer, Builder::build);
198213
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* Licensed to Elasticsearch B.V. under one or more contributor
3+
* license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright
5+
* ownership. Elasticsearch B.V. licenses this file to you under
6+
* the Apache License, Version 2.0 (the "License"); you may
7+
* not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
//----------------------------------------------------
21+
// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST.
22+
//----------------------------------------------------
23+
24+
package co.elastic.clients.elasticsearch._types.aggregations;
25+
26+
import co.elastic.clients.elasticsearch.ml.ClassificationInferenceOptions;
27+
import co.elastic.clients.elasticsearch.ml.RegressionInferenceOptions;
28+
import co.elastic.clients.util.ObjectBuilder;
29+
import java.util.function.Function;
30+
31+
/**
32+
* Builders for {@link InferenceConfig} variants.
33+
*/
34+
public class InferenceConfigBuilders {
35+
private InferenceConfigBuilders() {
36+
}
37+
38+
/**
39+
* Creates a builder for the {@link RegressionInferenceOptions regression}
40+
* {@code InferenceConfig} variant.
41+
*/
42+
public static RegressionInferenceOptions.Builder regression() {
43+
return new RegressionInferenceOptions.Builder();
44+
}
45+
46+
/**
47+
* Creates a InferenceConfig of the {@link RegressionInferenceOptions
48+
* regression} {@code InferenceConfig} variant.
49+
*/
50+
public static InferenceConfig regression(
51+
Function<RegressionInferenceOptions.Builder, ObjectBuilder<RegressionInferenceOptions>> fn) {
52+
InferenceConfig.Builder builder = new InferenceConfig.Builder();
53+
builder.regression(fn.apply(new RegressionInferenceOptions.Builder()).build());
54+
return builder.build();
55+
}
56+
57+
/**
58+
* Creates a builder for the {@link ClassificationInferenceOptions
59+
* classification} {@code InferenceConfig} variant.
60+
*/
61+
public static ClassificationInferenceOptions.Builder classification() {
62+
return new ClassificationInferenceOptions.Builder();
63+
}
64+
65+
/**
66+
* Creates a InferenceConfig of the {@link ClassificationInferenceOptions
67+
* classification} {@code InferenceConfig} variant.
68+
*/
69+
public static InferenceConfig classification(
70+
Function<ClassificationInferenceOptions.Builder, ObjectBuilder<ClassificationInferenceOptions>> fn) {
71+
InferenceConfig.Builder builder = new InferenceConfig.Builder();
72+
builder.classification(fn.apply(new ClassificationInferenceOptions.Builder()).build());
73+
return builder.build();
74+
}
75+
76+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Licensed to Elasticsearch B.V. under one or more contributor
3+
* license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright
5+
* ownership. Elasticsearch B.V. licenses this file to you under
6+
* the Apache License, Version 2.0 (the "License"); you may
7+
* not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
//----------------------------------------------------
21+
// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST.
22+
//----------------------------------------------------
23+
24+
package co.elastic.clients.elasticsearch._types.aggregations;
25+
26+
/**
27+
* Base interface for {@link InferenceConfig} variants.
28+
*/
29+
public interface InferenceConfigVariant {
30+
31+
InferenceConfig.Kind _inferenceConfigKind();
32+
33+
default InferenceConfig _toInferenceConfig() {
34+
return new InferenceConfig(this);
35+
}
36+
37+
}

0 commit comments

Comments
 (0)