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 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 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..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 @@ -6,6 +6,8 @@ | ------------ | ------------- | ------------- | ------------- | | **id** | [**java.util.UUID**](java.util.UUID.md) | | | | **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 4cadeba6fee0..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 @@ -32,6 +32,8 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * @param id * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -44,6 +46,10 @@ sealed class Animal { abstract val id: java.util.UUID @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 dc9c9b72e59e..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 @@ -32,6 +32,8 @@ import kotlinx.serialization.encoding.Encoder * @param id * @param featherType * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -45,7 +47,13 @@ data class Bird ( 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 3b86a8290107..2dba157e1db0 100644 --- a/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md +++ b/samples/client/petstore/kotlin-multiplatform-allOf-discriminator/docs/Animal.md @@ -6,6 +6,8 @@ | ------------ | ------------- | ------------- | ------------- | | **id** | **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 9bd831ced28b..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 @@ -26,6 +26,8 @@ import kotlinx.serialization.json.JsonClassDiscriminator * * @param id * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -36,6 +38,8 @@ sealed class Animal { @SerialName(value = "id") @Required abstract val id: kotlin.String @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 dfa9d858b04c..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 @@ -27,6 +27,8 @@ import kotlinx.serialization.encoding.* * @param id * @param featherType * @param optionalProperty + * @param stringSet + * @param stringArray */ @Serializable @@ -37,7 +39,11 @@ data class Bird ( @SerialName(value = "featherType") @Required val featherType: kotlin.String, - @SerialName(value = "optional_property") override val optionalProperty: kotlin.Double? = null + @SerialName(value = "optional_property") override val optionalProperty: kotlin.Double? = null, + + @SerialName(value = "stringSet") override val stringSet: kotlin.collections.Set? = null, + + @SerialName(value = "stringArray") override val stringArray: kotlin.collections.List? = null ) : Animal() {