From 440ac72d645c91f3aec14f310cb81e1b092a5a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 29 Jan 2026 23:55:36 +0100 Subject: [PATCH 1/4] fix issue #22696 --- .../src/main/resources/kotlin-client/interface_opt_var.mustache | 2 +- .../src/main/resources/kotlin-client/interface_req_var.mustache | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/interface_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/interface_opt_var.mustache index abf1447486d3..8d1449fea9c8 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/interface_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/interface_opt_var.mustache @@ -15,4 +15,4 @@ {{^isEnum}}{{^isArray}}{{^isPrimitiveType}}{{^isModel}}@Contextual {{/isModel}}{{/isPrimitiveType}}{{/isArray}}{{/isEnum}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/kotlinx_serialization}} {{/multiplatform}} - {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") abstract {{/multiplatform}}{{#kotlinx_serialization}}abstract {{/kotlinx_serialization}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}? \ No newline at end of file + {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") abstract {{/multiplatform}}{{#kotlinx_serialization}}abstract {{/kotlinx_serialization}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}{{#uniqueItems}}Set{{/uniqueItems}}{{^uniqueItems}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}? \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/interface_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/interface_req_var.mustache index dc821357f8a7..d863cfea8ebb 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/interface_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/interface_req_var.mustache @@ -15,4 +15,4 @@ {{^isEnum}}{{^isArray}}{{^isPrimitiveType}}{{^isModel}}@Contextual {{/isModel}}{{/isPrimitiveType}}{{/isArray}}{{/isEnum}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/kotlinx_serialization}} {{/multiplatform}} - {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required abstract {{/multiplatform}}{{#kotlinx_serialization}}abstract {{/kotlinx_serialization}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}{{#isNullable}}?{{/isNullable}} \ No newline at end of file + {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required abstract {{/multiplatform}}{{#kotlinx_serialization}}abstract {{/kotlinx_serialization}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}{{#uniqueItems}}Set{{/uniqueItems}}{{^uniqueItems}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}{{#isNullable}}?{{/isNullable}} \ No newline at end of file From df24bef4a201a373831ef37908c9994893cd2520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 29 Jan 2026 23:57:57 +0100 Subject: [PATCH 2/4] reduce unnecessary repetition in mustache schema --- .../main/resources/kotlin-client/data_class_opt_var.mustache | 2 +- .../main/resources/kotlin-client/data_class_req_var.mustache | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache index 486ad7bd7443..abaf53a3b30a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache @@ -21,4 +21,4 @@ {{#deprecated}} @Deprecated(message = "This property is deprecated.") {{/deprecated}} - {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}{{#uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}Set{{/uniqueItems}}{{^uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{^multiplatform}}{{{dataType}}}("{{{defaultValue}}}"){{/multiplatform}}{{#multiplatform}}({{{defaultValue}}}).toDouble(){{/multiplatform}}{{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}{{#uniqueItems}}Set{{/uniqueItems}}{{^uniqueItems}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{^multiplatform}}{{{dataType}}}("{{{defaultValue}}}"){{/multiplatform}}{{#multiplatform}}({{{defaultValue}}}).toDouble(){{/multiplatform}}{{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_req_var.mustache index e19dfc088f9d..0d9ec6067c5a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_req_var.mustache @@ -21,4 +21,4 @@ {{#deprecated}} @Deprecated(message = "This property is deprecated.") {{/deprecated}} - {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}{{#uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}Set{{/uniqueItems}}{{^uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{^multiplatform}}{{{dataType}}}("{{{defaultValue}}}"){{/multiplatform}}{{#multiplatform}}({{{defaultValue}}}).toDouble(){{/multiplatform}}{{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}{{#uniqueItems}}Set{{/uniqueItems}}{{^uniqueItems}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{^multiplatform}}{{{dataType}}}("{{{defaultValue}}}"){{/multiplatform}}{{#multiplatform}}({{{defaultValue}}}).toDouble(){{/multiplatform}}{{/isNumber}}{{/defaultValue}} \ No newline at end of file From 4bf5a0ed1627c886505af085f234618b6ef52441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 30 Jan 2026 09:21:41 +0100 Subject: [PATCH 3/4] add unit tests & regenerate files --- .../codegen/kotlin/KotlinClientCodegenModelTest.java | 8 ++++++++ .../codegen/kotlin/KotlinSpringServerCodegenTest.java | 4 ++++ .../src/test/resources/3_0/kotlin/polymorphism.yaml | 11 +++++++++++ .../docs/Animal.md | 2 ++ .../kotlin/org/openapitools/client/models/Animal.kt | 6 ++++++ .../kotlin/org/openapitools/client/models/Bird.kt | 8 ++++++++ .../docs/Animal.md | 2 ++ .../kotlin/org/openapitools/client/models/Animal.kt | 4 ++++ .../kotlin/org/openapitools/client/models/Bird.kt | 6 ++++++ 9 files changed, 51 insertions(+) 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 60ae71fe5c72..4b844bc3b57f 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 @@ -649,6 +649,10 @@ public void polymorphicJacksonSerialization() throws IOException { // base properties are present TestUtils.assertFileContains(animalKt, "val id"); TestUtils.assertFileContains(animalKt, "val optionalProperty"); + // base array with unique items = false is correctly handled as List + TestUtils.assertFileContains(animalKt, "val stringArray: kotlin.collections.List"); + // base array with unique items = true is correctly handled as Set + TestUtils.assertFileContains(animalKt, "val stringSet: kotlin.collections.Set"); // base doesn't contain discriminator TestUtils.assertFileNotContains(animalKt, "val discriminator"); @@ -658,6 +662,10 @@ public void polymorphicJacksonSerialization() throws IOException { // derived properties are overridden TestUtils.assertFileContains(birdKt, "override val id"); TestUtils.assertFileContains(birdKt, "override val optionalProperty"); + // derived array with unique items = false is correctly handled as List and with override + TestUtils.assertFileContains(birdKt, "override val stringArray: kotlin.collections.List"); + // derived array with unique items = true is correctly handled as Set and with override + TestUtils.assertFileContains(birdKt, "override val stringSet: kotlin.collections.Set"); // derived doesn't contain disciminator TestUtils.assertFileNotContains(birdKt, "val discriminator"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java index 86db332541e1..e66638589e7a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java @@ -89,6 +89,8 @@ public void polymorphicJacksonSerialization() throws IOException { // base properties are present TestUtils.assertFileContains(animalKt, "val id"); TestUtils.assertFileContains(animalKt, "val optionalProperty"); + TestUtils.assertFileContains(animalKt, "val stringArray: kotlin.collections.List"); + TestUtils.assertFileContains(animalKt, "val stringSet: kotlin.collections.Set"); // base doesn't contain discriminator TestUtils.assertFileNotContains(animalKt, "val discriminator"); @@ -98,6 +100,8 @@ public void polymorphicJacksonSerialization() throws IOException { // derived properties are overridden TestUtils.assertFileContains(birdKt, "override val id"); TestUtils.assertFileContains(birdKt, "override val optionalProperty"); + TestUtils.assertFileContains(birdKt, "override val stringArray: kotlin.collections.List"); + TestUtils.assertFileContains(birdKt, "override val stringSet: kotlin.collections.Set"); // derived doesn't contain disciminator TestUtils.assertFileNotContains(birdKt, "val discriminator"); } diff --git a/modules/openapi-generator/src/test/resources/3_0/kotlin/polymorphism.yaml b/modules/openapi-generator/src/test/resources/3_0/kotlin/polymorphism.yaml index 92cd1539bd1a..647a67ea01d3 100644 --- a/modules/openapi-generator/src/test/resources/3_0/kotlin/polymorphism.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/kotlin/polymorphism.yaml @@ -41,8 +41,19 @@ components: format: uuid optional_property: type: number + stringSet: + type: array + items: + type: string + uniqueItems: true + stringArray: + type: array + items: + type: string required: - id + - string_set + - string_array discriminator: propertyName: discriminator mapping: diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md index 99dc102efceb..5b48309bf358 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md @@ -5,6 +5,8 @@ | Name | Type | Description | Notes | | ------------ | ------------- | ------------- | ------------- | | **id** | [**java.util.UUID**](java.util.UUID.md) | | | +| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | | +| **stringArray** | **kotlin.collections.List<kotlin.String>** | | | | **optionalProperty** | [**java.math.BigDecimal**](java.math.BigDecimal.md) | | [optional] | diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt index 4cadeba6fee0..d6d36abd1ef9 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt @@ -31,6 +31,8 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * * @param id + * @param stringSet + * @param stringArray * @param optionalProperty */ @Serializable @@ -42,6 +44,10 @@ sealed class Animal { @Contextual @SerialName(value = "id") abstract val id: java.util.UUID + @SerialName(value = "string_set") + abstract val stringSet: kotlin.collections.Set + @SerialName(value = "string_array") + abstract val stringArray: kotlin.collections.List @Contextual @SerialName(value = "optional_property") abstract val optionalProperty: java.math.BigDecimal? diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt index dc9c9b72e59e..7298ac585a0a 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt @@ -30,6 +30,8 @@ import kotlinx.serialization.encoding.Encoder * * * @param id + * @param stringSet + * @param stringArray * @param featherType * @param optionalProperty */ @@ -41,6 +43,12 @@ data class Bird ( @Contextual @SerialName(value = "id") override val id: java.util.UUID, + @SerialName(value = "string_set") + override val stringSet: kotlin.collections.Set, + + @SerialName(value = "string_array") + override val stringArray: kotlin.collections.List, + @SerialName(value = "featherType") val featherType: kotlin.String, diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md index 3b86a8290107..d54caaecb249 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md @@ -5,6 +5,8 @@ | Name | Type | Description | Notes | | ------------ | ------------- | ------------- | ------------- | | **id** | **kotlin.String** | | | +| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | | +| **stringArray** | **kotlin.collections.List<kotlin.String>** | | | | **optionalProperty** | **kotlin.Double** | | [optional] | diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt index 9bd831ced28b..0ba8b2e671bb 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt @@ -25,6 +25,8 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * * @param id + * @param stringSet + * @param stringArray * @param optionalProperty */ @Serializable @@ -35,6 +37,8 @@ import kotlinx.serialization.json.JsonClassDiscriminator sealed class Animal { @SerialName(value = "id") @Required abstract val id: kotlin.String + @SerialName(value = "string_set") @Required abstract val stringSet: kotlin.collections.Set + @SerialName(value = "string_array") @Required abstract val stringArray: kotlin.collections.List @SerialName(value = "optional_property") abstract val optionalProperty: kotlin.Double? } diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt index dfa9d858b04c..9265a0011415 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt @@ -25,6 +25,8 @@ import kotlinx.serialization.encoding.* * * * @param id + * @param stringSet + * @param stringArray * @param featherType * @param optionalProperty */ @@ -35,6 +37,10 @@ data class Bird ( @SerialName(value = "id") @Required override val id: kotlin.String, + @SerialName(value = "string_set") @Required override val stringSet: kotlin.collections.Set, + + @SerialName(value = "string_array") @Required override val stringArray: kotlin.collections.List, + @SerialName(value = "featherType") @Required val featherType: kotlin.String, @SerialName(value = "optional_property") override val optionalProperty: kotlin.Double? = null From 0c4185662a0abfbd910e0bd3483f06f982f650b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 30 Jan 2026 09:24:42 +0100 Subject: [PATCH 4/4] regenerate files --- .../docs/Animal.md | 4 ++-- .../org/openapitools/client/models/Animal.kt | 10 +++++----- .../org/openapitools/client/models/Bird.kt | 18 +++++++++--------- .../docs/Animal.md | 4 ++-- .../org/openapitools/client/models/Animal.kt | 6 +++--- .../org/openapitools/client/models/Bird.kt | 12 ++++++------ 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md index 5b48309bf358..50d05c9baace 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/docs/Animal.md @@ -5,9 +5,9 @@ | Name | Type | Description | Notes | | ------------ | ------------- | ------------- | ------------- | | **id** | [**java.util.UUID**](java.util.UUID.md) | | | -| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | | -| **stringArray** | **kotlin.collections.List<kotlin.String>** | | | | **optionalProperty** | [**java.math.BigDecimal**](java.math.BigDecimal.md) | | [optional] | +| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | [optional] | +| **stringArray** | **kotlin.collections.List<kotlin.String>** | | [optional] | diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt index d6d36abd1ef9..9b8cd548b5ef 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Animal.kt @@ -31,9 +31,9 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * * @param id + * @param optionalProperty * @param stringSet * @param stringArray - * @param optionalProperty */ @Serializable @@ -44,12 +44,12 @@ sealed class Animal { @Contextual @SerialName(value = "id") abstract val id: java.util.UUID - @SerialName(value = "string_set") - abstract val stringSet: kotlin.collections.Set - @SerialName(value = "string_array") - abstract val stringArray: kotlin.collections.List @Contextual @SerialName(value = "optional_property") abstract val optionalProperty: java.math.BigDecimal? + @SerialName(value = "stringSet") + abstract val stringSet: kotlin.collections.Set? + @SerialName(value = "stringArray") + abstract val stringArray: kotlin.collections.List? } diff --git a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt index 7298ac585a0a..2777872c89fb 100644 --- a/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt +++ b/samples/client/petstore/kotlin-allOf-discriminator-kotlinx-serialization/src/main/kotlin/org/openapitools/client/models/Bird.kt @@ -30,10 +30,10 @@ import kotlinx.serialization.encoding.Encoder * * * @param id - * @param stringSet - * @param stringArray * @param featherType * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -43,17 +43,17 @@ data class Bird ( @Contextual @SerialName(value = "id") override val id: java.util.UUID, - @SerialName(value = "string_set") - override val stringSet: kotlin.collections.Set, - - @SerialName(value = "string_array") - override val stringArray: kotlin.collections.List, - @SerialName(value = "featherType") val featherType: kotlin.String, @Contextual @SerialName(value = "optional_property") - override val optionalProperty: java.math.BigDecimal? = null + override val optionalProperty: java.math.BigDecimal? = null, + + @SerialName(value = "stringSet") + override val stringSet: kotlin.collections.Set? = null, + + @SerialName(value = "stringArray") + override val stringArray: kotlin.collections.List? = null ) : Animal() { diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md index d54caaecb249..2dba157e1db0 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md @@ -5,9 +5,9 @@ | Name | Type | Description | Notes | | ------------ | ------------- | ------------- | ------------- | | **id** | **kotlin.String** | | | -| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | | -| **stringArray** | **kotlin.collections.List<kotlin.String>** | | | | **optionalProperty** | **kotlin.Double** | | [optional] | +| **stringSet** | **kotlin.collections.Set<kotlin.String>** | | [optional] | +| **stringArray** | **kotlin.collections.List<kotlin.String>** | | [optional] | diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt index 0ba8b2e671bb..dcf6124ecc91 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Animal.kt @@ -25,9 +25,9 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * * @param id + * @param optionalProperty * @param stringSet * @param stringArray - * @param optionalProperty */ @Serializable @@ -37,9 +37,9 @@ import kotlinx.serialization.json.JsonClassDiscriminator sealed class Animal { @SerialName(value = "id") @Required abstract val id: kotlin.String - @SerialName(value = "string_set") @Required abstract val stringSet: kotlin.collections.Set - @SerialName(value = "string_array") @Required abstract val stringArray: kotlin.collections.List @SerialName(value = "optional_property") abstract val optionalProperty: kotlin.Double? + @SerialName(value = "stringSet") abstract val stringSet: kotlin.collections.Set? + @SerialName(value = "stringArray") abstract val stringArray: kotlin.collections.List? } diff --git a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt index 9265a0011415..253de7a2e77d 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/src/commonMain/kotlin/org/openapitools/client/models/Bird.kt @@ -25,10 +25,10 @@ import kotlinx.serialization.encoding.* * * * @param id - * @param stringSet - * @param stringArray * @param featherType * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -37,13 +37,13 @@ data class Bird ( @SerialName(value = "id") @Required override val id: kotlin.String, - @SerialName(value = "string_set") @Required override val stringSet: kotlin.collections.Set, + @SerialName(value = "featherType") @Required val featherType: kotlin.String, - @SerialName(value = "string_array") @Required override val stringArray: kotlin.collections.List, + @SerialName(value = "optional_property") override val optionalProperty: kotlin.Double? = null, - @SerialName(value = "featherType") @Required val featherType: kotlin.String, + @SerialName(value = "stringSet") override val stringSet: kotlin.collections.Set? = null, - @SerialName(value = "optional_property") override val optionalProperty: kotlin.Double? = null + @SerialName(value = "stringArray") override val stringArray: kotlin.collections.List? = null ) : Animal() {