From 785c921d787a1681f0eac82be6fef0a141eb7b20 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 00:06:08 +0000 Subject: [PATCH] Re-generate client code using latest OpenSearch API specification (2025-03-03) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../client/opensearch/_types/PluginStats.java | 58 ++ java-codegen/opensearch-openapi.yaml | 685 ++++++++++++------ .../client/codegen/model/SpecTransformer.java | 20 +- .../codegen/model/overrides/Overrides.java | 4 +- 4 files changed, 553 insertions(+), 214 deletions(-) diff --git a/java-client/src/generated/java/org/opensearch/client/opensearch/_types/PluginStats.java b/java-client/src/generated/java/org/opensearch/client/opensearch/_types/PluginStats.java index ea8f24216..42cc4a5f2 100644 --- a/java-client/src/generated/java/org/opensearch/client/opensearch/_types/PluginStats.java +++ b/java-client/src/generated/java/org/opensearch/client/opensearch/_types/PluginStats.java @@ -87,6 +87,9 @@ public class PluginStats implements PlainJsonSerializable, ToCopyableBuilder optionalExtendedPlugins; + @Nonnull private final String version; @@ -102,6 +105,7 @@ private PluginStats(Builder builder) { this.licensed = builder.licensed; this.name = ApiTypeHelper.requireNonNull(builder.name, this, "name"); this.opensearchVersion = ApiTypeHelper.requireNonNull(builder.opensearchVersion, this, "opensearchVersion"); + this.optionalExtendedPlugins = ApiTypeHelper.unmodifiable(builder.optionalExtendedPlugins); this.version = ApiTypeHelper.requireNonNull(builder.version, this, "version"); } @@ -180,6 +184,14 @@ public final String opensearchVersion() { return this.opensearchVersion; } + /** + * API name: {@code optional_extended_plugins} + */ + @Nonnull + public final List optionalExtendedPlugins() { + return this.optionalExtendedPlugins; + } + /** * Required - API name: {@code version} */ @@ -234,6 +246,15 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { generator.writeKey("opensearch_version"); generator.write(this.opensearchVersion); + if (ApiTypeHelper.isDefined(this.optionalExtendedPlugins)) { + generator.writeKey("optional_extended_plugins"); + generator.writeStartArray(); + for (String item0 : this.optionalExtendedPlugins) { + generator.write(item0); + } + generator.writeEnd(); + } + generator.writeKey("version"); generator.write(this.version); } @@ -266,6 +287,8 @@ public static class Builder extends ObjectBuilderBase implements CopyableBuilder private Boolean licensed; private String name; private String opensearchVersion; + @Nullable + private List optionalExtendedPlugins; private String version; public Builder() {} @@ -280,6 +303,7 @@ private Builder(PluginStats o) { this.licensed = o.licensed; this.name = o.name; this.opensearchVersion = o.opensearchVersion; + this.optionalExtendedPlugins = _listCopy(o.optionalExtendedPlugins); this.version = o.version; } @@ -293,6 +317,7 @@ private Builder(Builder o) { this.licensed = o.licensed; this.name = o.name; this.opensearchVersion = o.opensearchVersion; + this.optionalExtendedPlugins = _listCopy(o.optionalExtendedPlugins); this.version = o.version; } @@ -400,6 +425,32 @@ public final Builder opensearchVersion(String value) { return this; } + /** + * API name: {@code optional_extended_plugins} + * + *

+ * Adds all elements of list to optionalExtendedPlugins. + *

+ */ + @Nonnull + public final Builder optionalExtendedPlugins(List list) { + this.optionalExtendedPlugins = _listAddAll(this.optionalExtendedPlugins, list); + return this; + } + + /** + * API name: {@code optional_extended_plugins} + * + *

+ * Adds one or more values to optionalExtendedPlugins. + *

+ */ + @Nonnull + public final Builder optionalExtendedPlugins(String value, String... values) { + this.optionalExtendedPlugins = _listAdd(this.optionalExtendedPlugins, value, values); + return this; + } + /** * Required - API name: {@code version} */ @@ -443,6 +494,11 @@ protected static void setupPluginStatsDeserializer(ObjectDeserializer props.forEach((k, v) -> taggedUnion.addVariant(k, mapType(v)))); - } else { + if (oneOrAnyOf != null) { taggedUnion.setExternallyDiscriminated(TaggedUnionShape.ExternallyDiscriminated.REQUIRED); oneOrAnyOf.forEach(s -> { var prop = s.getProperties().flatMap(m -> m.entrySet().stream().findFirst()).orElseThrow(); taggedUnion.addVariant(prop.getKey(), mapType(prop.getValue())); }); + } else { + taggedUnion.setExternallyDiscriminated( + unionSchema.getMinProperties().orElse(0) == 1 + ? TaggedUnionShape.ExternallyDiscriminated.REQUIRED + : TaggedUnionShape.ExternallyDiscriminated.OPTIONAL + ); + unionSchema.getProperties().ifPresent(props -> props.forEach((k, v) -> taggedUnion.addVariant(k, mapType(v)))); } } } else if (isShortcutPropertyObject || schema.determineSingleType().orElse(null) == OpenApiSchemaType.Object) { @@ -1031,8 +1031,6 @@ private static boolean isExternallyTaggedUnion(List oneOf) { } private static boolean isExternallyTaggedUnionVariant(OpenApiSchema schema) { - return schema.isObject() - && schema.getProperties().map(Map::size).orElse(0) == 1 - && schema.getRequired().map(Set::size).orElse(0) == 1; + return schema.getProperties().map(Map::size).orElse(0) == 1 && schema.getRequired().map(Set::size).orElse(0) == 1; } } diff --git a/java-codegen/src/main/java/org/opensearch/client/codegen/model/overrides/Overrides.java b/java-codegen/src/main/java/org/opensearch/client/codegen/model/overrides/Overrides.java index 4878f8e14..2f6b4c4ca 100644 --- a/java-codegen/src/main/java/org/opensearch/client/codegen/model/overrides/Overrides.java +++ b/java-codegen/src/main/java/org/opensearch/client/codegen/model/overrides/Overrides.java @@ -74,7 +74,9 @@ private static JsonPointer schema(String namespace, String name) { ) .with( schema("_common.aggregations", "AggregationContainer").append("allOf", "0"), - so -> so.withProperties(p -> p.with("aggregations", po -> po.withAliases(Set.of("aggs")))) + so -> so.withProperties( + p -> p.with("aggregations", po -> po.withAliases(Set.of("aggs"))).with("aggs", po -> po.withIgnore(true)) + ) ) .with( schema("_common.aggregations", "BucketsQueryContainer"),