From 2a556ff24eba029fde48c48e8f36a2dc2aede8a5 Mon Sep 17 00:00:00 2001 From: yzaoui <9062006+yzaoui@users.noreply.github.com> Date: Fri, 5 Sep 2025 22:17:28 -0400 Subject: [PATCH] Fix missing `@Serializable` on enums for kotlin/jvm-retrofit2 (#21907) * Add @Serializable annotation to enum for kotlinx-serialization * Adjust template, generate samples * Fix template --- .../kotlin-client/libraries/jvm-retrofit2/api.mustache | 3 ++- .../src/main/kotlin/org/openapitools/client/apis/PetApi.kt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/api.mustache index e6ad5f06d19..9cd7ef3fea0 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/api.mustache @@ -77,7 +77,8 @@ import okhttp3.MultipartBody /** * enum for parameter {{paramName}} */ - {{#nonPublicApi}}internal {{/nonPublicApi}}{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}enum class {{enumName}}{{operationIdCamelCase}}({{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}kotlin.String{{/isContainer}}) { + {{#kotlinx_serialization}}@Serializable + {{/kotlinx_serialization}}{{#nonPublicApi}}internal {{/nonPublicApi}}{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}enum class {{enumName}}{{operationIdCamelCase}}({{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}kotlin.String{{/isContainer}}) { {{^enumUnknownDefaultCase}} {{#allowableValues}} {{#enumVars}} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/PetApi.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/PetApi.kt index 7818bd2d5de..17890ff744d 100644 --- a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/PetApi.kt +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/PetApi.kt @@ -44,6 +44,7 @@ interface PetApi { /** * enum for parameter status */ + @Serializable enum class StatusFindPetsByStatus(val value: kotlin.String) { @SerialName(value = "available") AVAILABLE("available"), @SerialName(value = "pending") PENDING("pending"),