diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html b/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html index 8cd083e6f..aa6264a0e 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/doc-files/api-spec.html @@ -1747,45 +1747,46 @@ 'ingest._types.GrokProcessor': 'ingest/_types/Processors.ts#L950-L981', 'ingest._types.GsubProcessor': 'ingest/_types/Processors.ts#L983-L1007', 'ingest._types.HtmlStripProcessor': 'ingest/_types/Processors.ts#L1009-L1025', -'ingest._types.InferenceConfig': 'ingest/_types/Processors.ts#L1048-L1060', -'ingest._types.InferenceConfigClassification': 'ingest/_types/Processors.ts#L1075-L1101', -'ingest._types.InferenceConfigRegression': 'ingest/_types/Processors.ts#L1062-L1073', -'ingest._types.InferenceProcessor': 'ingest/_types/Processors.ts#L1027-L1046', +'ingest._types.InferenceConfig': 'ingest/_types/Processors.ts#L1066-L1078', +'ingest._types.InferenceConfigClassification': 'ingest/_types/Processors.ts#L1093-L1119', +'ingest._types.InferenceConfigRegression': 'ingest/_types/Processors.ts#L1080-L1091', +'ingest._types.InferenceProcessor': 'ingest/_types/Processors.ts#L1027-L1059', 'ingest._types.Ingest': 'ingest/_types/Simulation.ts#L29-L37', +'ingest._types.InputConfig': 'ingest/_types/Processors.ts#L1061-L1064', 'ingest._types.IpLocationProcessor': 'ingest/_types/Processors.ts#L478-L512', 'ingest._types.Ipinfo': 'ingest/_types/Database.ts#L59-L59', -'ingest._types.JoinProcessor': 'ingest/_types/Processors.ts#L1103-L1118', -'ingest._types.JsonProcessor': 'ingest/_types/Processors.ts#L1120-L1149', -'ingest._types.JsonProcessorConflictStrategy': 'ingest/_types/Processors.ts#L1151-L1156', -'ingest._types.KeyValueProcessor': 'ingest/_types/Processors.ts#L1158-L1210', +'ingest._types.JoinProcessor': 'ingest/_types/Processors.ts#L1121-L1136', +'ingest._types.JsonProcessor': 'ingest/_types/Processors.ts#L1138-L1167', +'ingest._types.JsonProcessorConflictStrategy': 'ingest/_types/Processors.ts#L1169-L1174', +'ingest._types.KeyValueProcessor': 'ingest/_types/Processors.ts#L1176-L1228', 'ingest._types.Local': 'ingest/_types/Database.ts#L63-L65', -'ingest._types.LowercaseProcessor': 'ingest/_types/Processors.ts#L1212-L1228', +'ingest._types.LowercaseProcessor': 'ingest/_types/Processors.ts#L1230-L1246', 'ingest._types.Maxmind': 'ingest/_types/Database.ts#L55-L57', -'ingest._types.NetworkDirectionProcessor': 'ingest/_types/Processors.ts#L1230-L1264', +'ingest._types.NetworkDirectionProcessor': 'ingest/_types/Processors.ts#L1248-L1282', 'ingest._types.Pipeline': 'ingest/_types/Pipeline.ts#L23-L51', 'ingest._types.PipelineConfig': 'ingest/_types/Pipeline.ts#L67-L81', -'ingest._types.PipelineProcessor': 'ingest/_types/Processors.ts#L1266-L1277', +'ingest._types.PipelineProcessor': 'ingest/_types/Processors.ts#L1284-L1295', 'ingest._types.PipelineSimulation': 'ingest/_types/Simulation.ts#L52-L60', 'ingest._types.ProcessorBase': 'ingest/_types/Processors.ts#L303-L326', 'ingest._types.ProcessorContainer': 'ingest/_types/Processors.ts#L27-L301', 'ingest._types.Redact': 'ingest/_types/Simulation.ts#L39-L44', -'ingest._types.RedactProcessor': 'ingest/_types/Processors.ts#L1279-L1320', -'ingest._types.RegisteredDomainProcessor': 'ingest/_types/Processors.ts#L1322-L1338', -'ingest._types.RemoveProcessor': 'ingest/_types/Processors.ts#L1340-L1354', -'ingest._types.RenameProcessor': 'ingest/_types/Processors.ts#L1356-L1372', -'ingest._types.RerouteProcessor': 'ingest/_types/Processors.ts#L1374-L1402', -'ingest._types.ScriptProcessor': 'ingest/_types/Processors.ts#L1404-L1424', -'ingest._types.SetProcessor': 'ingest/_types/Processors.ts#L1426-L1460', -'ingest._types.SetSecurityUserProcessor': 'ingest/_types/Processors.ts#L1462-L1471', -'ingest._types.ShapeType': 'ingest/_types/Processors.ts#L1473-L1476', +'ingest._types.RedactProcessor': 'ingest/_types/Processors.ts#L1297-L1338', +'ingest._types.RegisteredDomainProcessor': 'ingest/_types/Processors.ts#L1340-L1356', +'ingest._types.RemoveProcessor': 'ingest/_types/Processors.ts#L1358-L1372', +'ingest._types.RenameProcessor': 'ingest/_types/Processors.ts#L1374-L1390', +'ingest._types.RerouteProcessor': 'ingest/_types/Processors.ts#L1392-L1420', +'ingest._types.ScriptProcessor': 'ingest/_types/Processors.ts#L1422-L1442', +'ingest._types.SetProcessor': 'ingest/_types/Processors.ts#L1444-L1478', +'ingest._types.SetSecurityUserProcessor': 'ingest/_types/Processors.ts#L1480-L1489', +'ingest._types.ShapeType': 'ingest/_types/Processors.ts#L1491-L1494', 'ingest._types.SimulateDocumentResult': 'ingest/_types/Simulation.ts#L46-L50', -'ingest._types.SortProcessor': 'ingest/_types/Processors.ts#L1478-L1494', -'ingest._types.SplitProcessor': 'ingest/_types/Processors.ts#L1496-L1521', -'ingest._types.TerminateProcessor': 'ingest/_types/Processors.ts#L1523-L1523', -'ingest._types.TrimProcessor': 'ingest/_types/Processors.ts#L1525-L1541', -'ingest._types.UppercaseProcessor': 'ingest/_types/Processors.ts#L1543-L1559', -'ingest._types.UriPartsProcessor': 'ingest/_types/Processors.ts#L1579-L1605', -'ingest._types.UrlDecodeProcessor': 'ingest/_types/Processors.ts#L1561-L1577', +'ingest._types.SortProcessor': 'ingest/_types/Processors.ts#L1496-L1512', +'ingest._types.SplitProcessor': 'ingest/_types/Processors.ts#L1514-L1539', +'ingest._types.TerminateProcessor': 'ingest/_types/Processors.ts#L1541-L1541', +'ingest._types.TrimProcessor': 'ingest/_types/Processors.ts#L1543-L1559', +'ingest._types.UppercaseProcessor': 'ingest/_types/Processors.ts#L1561-L1577', +'ingest._types.UriPartsProcessor': 'ingest/_types/Processors.ts#L1597-L1623', +'ingest._types.UrlDecodeProcessor': 'ingest/_types/Processors.ts#L1579-L1595', 'ingest._types.UserAgentProcessor': 'ingest/_types/Processors.ts#L514-L545', 'ingest._types.UserAgentProperty': 'ingest/_types/Processors.ts#L547-L553', 'ingest._types.Web': 'ingest/_types/Database.ts#L61-L61', @@ -3049,10 +3050,10 @@ if (hash.length > 1) { hash = hash.substring(1); } - window.location = "https://github.com/elastic/elasticsearch-specification/tree/c623a5d20613557e3e5d63a7a32eb36b58ac92ec/specification/" + (paths[hash] || ""); + window.location = "https://github.com/elastic/elasticsearch-specification/tree/d42bde26cc35dfaa40757f48306a3559ab8d4ea8/specification/" + (paths[hash] || ""); - Please see the Elasticsearch API specification. + Please see the Elasticsearch API specification. diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/ingest/InferenceProcessor.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/ingest/InferenceProcessor.java index 48de84447..7d733465e 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/ingest/InferenceProcessor.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/ingest/InferenceProcessor.java @@ -28,7 +28,9 @@ import co.elastic.clients.util.ApiTypeHelper; import co.elastic.clients.util.ObjectBuilder; import jakarta.json.stream.JsonGenerator; +import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; @@ -69,6 +71,11 @@ public class InferenceProcessor extends ProcessorBase implements ProcessorVarian @Nullable private final InferenceConfig inferenceConfig; + private final List inputOutput; + + @Nullable + private final Boolean ignoreMissing; + // --------------------------------------------------------------------------------------------- private InferenceProcessor(Builder builder) { @@ -78,6 +85,8 @@ private InferenceProcessor(Builder builder) { this.targetField = builder.targetField; this.fieldMap = ApiTypeHelper.unmodifiable(builder.fieldMap); this.inferenceConfig = builder.inferenceConfig; + this.inputOutput = ApiTypeHelper.unmodifiable(builder.inputOutput); + this.ignoreMissing = builder.ignoreMissing; } @@ -134,6 +143,30 @@ public final InferenceConfig inferenceConfig() { return this.inferenceConfig; } + /** + * Input fields for inference and output (destination) fields for the inference + * results. This option is incompatible with the target_field and field_map + * options. + *

+ * API name: {@code input_output} + */ + public final List inputOutput() { + return this.inputOutput; + } + + /** + * If true and any of the input fields defined in input_ouput are missing then + * those missing fields are quietly ignored, otherwise a missing field causes a + * failure. Only applies when using input_output configurations to explicitly + * list the input fields. + *

+ * API name: {@code ignore_missing} + */ + @Nullable + public final Boolean ignoreMissing() { + return this.ignoreMissing; + } + protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { super.serializeInternal(generator, mapper); @@ -161,6 +194,21 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { this.inferenceConfig.serialize(generator, mapper); } + if (ApiTypeHelper.isDefined(this.inputOutput)) { + generator.writeKey("input_output"); + generator.writeStartArray(); + for (InputConfig item0 : this.inputOutput) { + item0.serialize(generator, mapper); + + } + generator.writeEnd(); + + } + if (this.ignoreMissing != null) { + generator.writeKey("ignore_missing"); + generator.write(this.ignoreMissing); + + } } @@ -184,6 +232,12 @@ public static class Builder extends ProcessorBase.AbstractBuilder @Nullable private InferenceConfig inferenceConfig; + @Nullable + private List inputOutput; + + @Nullable + private Boolean ignoreMissing; + /** * Required - The ID or alias for the trained model, or the ID of the * deployment. @@ -262,6 +316,60 @@ public final Builder inferenceConfig(InferenceConfigVariant value) { return this; } + /** + * Input fields for inference and output (destination) fields for the inference + * results. This option is incompatible with the target_field and field_map + * options. + *

+ * API name: {@code input_output} + *

+ * Adds all elements of list to inputOutput. + */ + public final Builder inputOutput(List list) { + this.inputOutput = _listAddAll(this.inputOutput, list); + return this; + } + + /** + * Input fields for inference and output (destination) fields for the inference + * results. This option is incompatible with the target_field and field_map + * options. + *

+ * API name: {@code input_output} + *

+ * Adds one or more values to inputOutput. + */ + public final Builder inputOutput(InputConfig value, InputConfig... values) { + this.inputOutput = _listAdd(this.inputOutput, value, values); + return this; + } + + /** + * Input fields for inference and output (destination) fields for the inference + * results. This option is incompatible with the target_field and field_map + * options. + *

+ * API name: {@code input_output} + *

+ * Adds a value to inputOutput using a builder lambda. + */ + public final Builder inputOutput(Function> fn) { + return inputOutput(fn.apply(new InputConfig.Builder()).build()); + } + + /** + * If true and any of the input fields defined in input_ouput are missing then + * those missing fields are quietly ignored, otherwise a missing field causes a + * failure. Only applies when using input_output configurations to explicitly + * list the input fields. + *

+ * API name: {@code ignore_missing} + */ + public final Builder ignoreMissing(@Nullable Boolean value) { + this.ignoreMissing = value; + return this; + } + @Override protected Builder self() { return this; @@ -294,6 +402,8 @@ protected static void setupInferenceProcessorDeserializer(ObjectDeserializerAPI + * specification + */ +@JsonpDeserializable +public class InputConfig implements JsonpSerializable { + private final String inputField; + + private final String outputField; + + // --------------------------------------------------------------------------------------------- + + private InputConfig(Builder builder) { + + this.inputField = ApiTypeHelper.requireNonNull(builder.inputField, this, "inputField"); + this.outputField = ApiTypeHelper.requireNonNull(builder.outputField, this, "outputField"); + + } + + public static InputConfig of(Function> fn) { + return fn.apply(new Builder()).build(); + } + + /** + * Required - API name: {@code input_field} + */ + public final String inputField() { + return this.inputField; + } + + /** + * Required - API name: {@code output_field} + */ + public final String outputField() { + return this.outputField; + } + + /** + * Serialize this object to JSON. + */ + public void serialize(JsonGenerator generator, JsonpMapper mapper) { + generator.writeStartObject(); + serializeInternal(generator, mapper); + generator.writeEnd(); + } + + protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { + + generator.writeKey("input_field"); + generator.write(this.inputField); + + generator.writeKey("output_field"); + generator.write(this.outputField); + + } + + @Override + public String toString() { + return JsonpUtils.toString(this); + } + + // --------------------------------------------------------------------------------------------- + + /** + * Builder for {@link InputConfig}. + */ + + public static class Builder extends WithJsonObjectBuilderBase implements ObjectBuilder { + private String inputField; + + private String outputField; + + /** + * Required - API name: {@code input_field} + */ + public final Builder inputField(String value) { + this.inputField = value; + return this; + } + + /** + * Required - API name: {@code output_field} + */ + public final Builder outputField(String value) { + this.outputField = value; + return this; + } + + @Override + protected Builder self() { + return this; + } + + /** + * Builds a {@link InputConfig}. + * + * @throws NullPointerException + * if some of the required fields are null. + */ + public InputConfig build() { + _checkSingleUse(); + + return new InputConfig(this); + } + } + + // --------------------------------------------------------------------------------------------- + + /** + * Json deserializer for {@link InputConfig} + */ + public static final JsonpDeserializer _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new, + InputConfig::setupInputConfigDeserializer); + + protected static void setupInputConfigDeserializer(ObjectDeserializer op) { + + op.add(Builder::inputField, JsonpDeserializer.stringDeserializer(), "input_field"); + op.add(Builder::outputField, JsonpDeserializer.stringDeserializer(), "output_field"); + + } + +}