From 675af998dc69d01957e49c2345338ff3a7fbc53f Mon Sep 17 00:00:00 2001 From: seonwoo_jung <79202163+seonwooj0810@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:19:19 +0900 Subject: [PATCH] fix(kotlin): emit @get:JsonValue on nested Jackson enums Nested (inline) enum classes generated into Kotlin data classes were missing the @get:JsonValue annotation that top-level enum classes already carry. Without it, Jackson serializes an Int-valued nested enum by its constant name instead of its numeric value, producing wrong JSON output. Add @get:JsonValue (and the JsonValue import, guarded by hasEnums) to the nested enum declaration in the kotlin-client data_class template, mirroring enum_class.mustache. Regenerate affected Kotlin Jackson client samples and add a regression test. Fixes #23886 --- .../kotlin-client/data_class.mustache | 5 ++- .../kotlin/KotlinClientCodegenModelTest.java | 32 +++++++++++++++++-- ...issue23886-kotlin-nested-numeric-enum.yaml | 27 ++++++++++++++++ .../client/models/DefaultValue.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Query.kt | 3 +- .../client/models/DefaultValue.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Query.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- .../org/openapitools/client/models/Order.kt | 3 +- .../org/openapitools/client/models/Pet.kt | 3 +- 27 files changed, 109 insertions(+), 27 deletions(-) create mode 100644 modules/openapi-generator/src/test/resources/3_0/kotlin/issue23886-kotlin-nested-numeric-enum.yaml diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache index 28ec1da04089..d0db762e5b91 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/data_class.mustache @@ -22,6 +22,9 @@ import com.squareup.moshi.JsonClass import com.fasterxml.jackson.annotation.JsonEnumDefaultValue {{/enumUnknownDefaultCase}} import com.fasterxml.jackson.annotation.JsonProperty +{{#hasEnums}} +import com.fasterxml.jackson.annotation.JsonValue +{{/hasEnums}} {{#discriminator}} import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonSubTypes @@ -146,7 +149,7 @@ import {{packageName}}.infrastructure.ITransformForStorage {{#multiplatform}} @Serializable {{/multiplatform}} - {{#nonPublicApi}}internal {{/nonPublicApi}}{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}enum class {{{nameInPascalCase}}}({{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}{{dataType}}{{/mostInnerItems}}{{/isContainer}}) { + {{#nonPublicApi}}internal {{/nonPublicApi}}{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}enum class {{{nameInPascalCase}}}({{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{#jackson}}@get:JsonValue {{/jackson}}val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}{{dataType}}{{/mostInnerItems}}{{/isContainer}}) { {{#allowableValues}} {{#enumVars}} {{^multiplatform}} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java index 95bfa644bd4f..77d0b096a72a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java @@ -815,7 +815,7 @@ public void testIntArrayToEnum() throws IOException { final Path modelKt = Paths.get(output + "/src/main/kotlin/model/ModelWithIntArrayEnum.kt"); - TestUtils.assertFileContains(modelKt, "enum class DaysOfWeek(val value: kotlin.Int)"); + TestUtils.assertFileContains(modelKt, "enum class DaysOfWeek(@get:JsonValue val value: kotlin.Int)"); } @Test @@ -842,7 +842,7 @@ public void testBooleanConstEnumUsesBooleanLiteral() throws IOException { final Path modelKt = Paths.get(output + "/src/main/kotlin/model/ExceptionState.kt"); TestUtils.assertFileContains(modelKt, - "enum class ExceptionPeriodIsClosed(val value: kotlin.Boolean)", + "enum class ExceptionPeriodIsClosed(@get:JsonValue val value: kotlin.Boolean)", "@JsonProperty(value = \"true\")", "`true`(true);"); TestUtils.assertFileNotContains(modelKt, "`true`(\"true\")"); @@ -874,6 +874,34 @@ public void testJacksonEnumsUseJsonCreator() throws IOException { TestUtils.assertFileContains(enumKt, "@JsonCreator"); } + @Test + public void testJacksonNestedEnumsUseJsonValue() throws IOException { + File output = Files.createTempDirectory("test").toFile(); + output.deleteOnExit(); + + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName("kotlin") + .setLibrary("jvm-retrofit2") + .setAdditionalProperties(new HashMap<>() {{ + put(CodegenConstants.SERIALIZATION_LIBRARY, "jackson"); + put(CodegenConstants.MODEL_PACKAGE, "model"); + }}) + .setInputSpec("src/test/resources/3_0/kotlin/issue23886-kotlin-nested-numeric-enum.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + + final ClientOptInput clientOptInput = configurator.toClientOptInput(); + DefaultGenerator generator = new DefaultGenerator(); + + generator.opts(clientOptInput).generate(); + + final Path modelKt = Paths.get(output + "/src/main/kotlin/model/ExampleModel.kt"); + + // Without @get:JsonValue, Jackson serializes the Int-valued nested enum by its name instead + // of its numeric value. The import must be present so the generated code compiles. + TestUtils.assertFileContains(modelKt, "import com.fasterxml.jackson.annotation.JsonValue"); + TestUtils.assertFileContains(modelKt, "enum class Source(@get:JsonValue val value: kotlin.Int)"); + } + @Test public void testJacksonEnumsThrowForUnknownValue() throws IOException { File output = Files.createTempDirectory("test").toFile(); diff --git a/modules/openapi-generator/src/test/resources/3_0/kotlin/issue23886-kotlin-nested-numeric-enum.yaml b/modules/openapi-generator/src/test/resources/3_0/kotlin/issue23886-kotlin-nested-numeric-enum.yaml new file mode 100644 index 000000000000..9e502af406e6 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/kotlin/issue23886-kotlin-nested-numeric-enum.yaml @@ -0,0 +1,27 @@ +openapi: 3.0.0 +info: + title: 'Issue 23886 Jackson nested numeric enum' + version: latest +paths: + '/example': + get: + operationId: getExample + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ExampleModel' +components: + schemas: + ExampleModel: + type: object + properties: + source: + type: integer + format: int32 + enum: + - -1 + - 0 + - 1 diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt index 20d0b73459c4..42b64b37f14c 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.StringEnumRef import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * to test the default value of properties @@ -83,7 +84,7 @@ data class DefaultValue ( * * Values: success,failure,unclassified,unknown_default_open_api */ - enum class ArrayStringEnumDefault(val value: kotlin.String) { + enum class ArrayStringEnumDefault(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "success") success("success"), @JsonProperty(value = "failure") failure("failure"), @JsonProperty(value = "unclassified") unclassified("unclassified"), diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt index ed3cd54abb95..e38aa3175b68 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * @@ -75,7 +76,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Query.kt b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Query.kt index 9c0f39d1f515..b9216df7a295 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Query.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Query.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * @@ -53,7 +54,7 @@ data class Query ( * * Values: SUCCESS,FAILURE,SKIPPED,unknown_default_open_api */ - enum class Outcomes(val value: kotlin.String) { + enum class Outcomes(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "SUCCESS") SUCCESS("SUCCESS"), @JsonProperty(value = "FAILURE") FAILURE("FAILURE"), @JsonProperty(value = "SKIPPED") SKIPPED("SKIPPED"), diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt index 20d0b73459c4..42b64b37f14c 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/DefaultValue.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.StringEnumRef import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * to test the default value of properties @@ -83,7 +84,7 @@ data class DefaultValue ( * * Values: success,failure,unclassified,unknown_default_open_api */ - enum class ArrayStringEnumDefault(val value: kotlin.String) { + enum class ArrayStringEnumDefault(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "success") success("success"), @JsonProperty(value = "failure") failure("failure"), @JsonProperty(value = "unclassified") unclassified("unclassified"), diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt index ed3cd54abb95..e38aa3175b68 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * @@ -75,7 +76,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Query.kt b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Query.kt index 9c0f39d1f515..b9216df7a295 100644 --- a/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Query.kt +++ b/samples/client/echo_api/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Query.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * @@ -53,7 +54,7 @@ data class Query ( * * Values: SUCCESS,FAILURE,SKIPPED,unknown_default_open_api */ - enum class Outcomes(val value: kotlin.String) { + enum class Outcomes(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "SUCCESS") SUCCESS("SUCCESS"), @JsonProperty(value = "FAILURE") FAILURE("FAILURE"), @JsonProperty(value = "SKIPPED") SKIPPED("SKIPPED"), diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt index f15a2813981e..1b0bde962bdf 100644 --- a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: PLACED,APPROVED,DELIVERED,UNKNOWN_DEFAULT_OPEN_API */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") PLACED("placed"), @JsonProperty(value = "approved") APPROVED("approved"), @JsonProperty(value = "delivered") DELIVERED("delivered"), diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt index f8e01ef3253c..62ba8c357464 100644 --- a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -75,7 +76,7 @@ data class Pet ( * * Values: AVAILABLE,PENDING,SOLD,UNKNOWN_DEFAULT_OPEN_API */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") AVAILABLE("available"), @JsonProperty(value = "pending") PENDING("pending"), @JsonProperty(value = "sold") SOLD("sold"), diff --git a/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt index a87ce400fad2..fe1524b0b696 100644 --- a/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: placed,approved,delivered,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"), diff --git a/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt index a87a1c194345..1e0185b3314a 100644 --- a/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -76,7 +77,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt index a87ce400fad2..fe1524b0b696 100644 --- a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: placed,approved,delivered,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"), diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt index 8a367e796c23..92d03bd63e41 100644 --- a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -75,7 +76,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt index a87ce400fad2..fe1524b0b696 100644 --- a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: placed,approved,delivered,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"), diff --git a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt index a87a1c194345..1e0185b3314a 100644 --- a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -76,7 +77,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Order.kt index a87ce400fad2..fe1524b0b696 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: placed,approved,delivered,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"), diff --git a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt index a87a1c194345..1e0185b3314a 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-restclient/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -76,7 +77,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt index a87ce400fad2..fe1524b0b696 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -26,6 +26,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -73,7 +74,7 @@ data class Order ( * * Values: placed,approved,delivered,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"), diff --git a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt index a87a1c194345..1e0185b3314a 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -28,6 +28,7 @@ import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonEnumDefaultValue import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -76,7 +77,7 @@ data class Pet ( * * Values: available,pending,sold,unknown_default_open_api */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"), diff --git a/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Order.kt index 413e49518001..b8e0bba13b09 100644 --- a/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -25,6 +25,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -72,7 +73,7 @@ data class Order ( * * Values: placed,approved,delivered */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"); diff --git a/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Pet.kt index b8c7568be88f..9bf51adad1a2 100644 --- a/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-vertx-jackson-coroutines/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.Category import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -75,7 +76,7 @@ data class Pet ( * * Values: available,pending,sold */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"); diff --git a/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt index 413e49518001..b8e0bba13b09 100644 --- a/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -25,6 +25,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * An order for a pets from the pet store @@ -72,7 +73,7 @@ data class Order ( * * Values: placed,approved,delivered */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") placed("placed"), @JsonProperty(value = "approved") approved("approved"), @JsonProperty(value = "delivered") delivered("delivered"); diff --git a/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt index b8c7568be88f..9bf51adad1a2 100644 --- a/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-jvm-vertx-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.Category import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue /** * A pet for sale in the pet store @@ -75,7 +76,7 @@ data class Pet ( * * Values: available,pending,sold */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") available("available"), @JsonProperty(value = "pending") pending("pending"), @JsonProperty(value = "sold") sold("sold"); diff --git a/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt b/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt index 5af8de367f67..4bf4baddad14 100644 --- a/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt +++ b/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Order.kt @@ -25,6 +25,7 @@ package org.openapitools.client.models import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue import java.io.Serializable /** @@ -76,7 +77,7 @@ data class Order ( * * Values: PLACED,APPROVED,DELIVERED */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "placed") PLACED("placed"), @JsonProperty(value = "approved") APPROVED("approved"), @JsonProperty(value = "delivered") DELIVERED("delivered"); diff --git a/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt b/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt index 8ba0234fe261..dc8a849a6814 100644 --- a/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt +++ b/samples/client/petstore/kotlin-retrofit2-jackson/src/main/kotlin/org/openapitools/client/models/Pet.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.Category import org.openapitools.client.models.Tag import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue import java.io.Serializable /** @@ -79,7 +80,7 @@ data class Pet ( * * Values: AVAILABLE,PENDING,SOLD */ - enum class Status(val value: kotlin.String) { + enum class Status(@get:JsonValue val value: kotlin.String) { @JsonProperty(value = "available") AVAILABLE("available"), @JsonProperty(value = "pending") PENDING("pending"), @JsonProperty(value = "sold") SOLD("sold");