Skip to content

[Kotlin][Client] Fix url path for Retrofit, Fix optionals for @Query @Body, Set List as default collection for Kotlin data class #6456

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
7503c6b
Replace typeMapping kotlin.Array with kotlin.collections.List, becaus…
kuFEAR May 27, 2020
8321d0f
Fixed path(removed slash on begin path) for Jvm Kotlin Retrofit
kuFEAR May 27, 2020
3c2e6ec
Fixed handling optional bodyParams for Jvm Kotlin Retrofit
kuFEAR May 27, 2020
7a790d0
Fix kotlin tests
kuFEAR May 27, 2020
aee66fe
Fixed code format for detekt inspections #2
kuFEAR May 27, 2020
b22f22e
revert formatting
kuFEAR May 27, 2020
37db0c4
Added ability to generate optional @Query params.
kuFEAR May 27, 2020
6e4fcf6
Update Kotlin docs.
kuFEAR May 27, 2020
3c747a9
Update Kotlin openapi3 client samples
kuFEAR May 27, 2020
57f0797
Update Kotlin client samples
kuFEAR May 27, 2020
6729176
Merge remote-tracking branch 'base_origin/master' into kotlin_client_…
kuFEAR May 27, 2020
6215f12
Update Kotlin openapi3 client samples after merge with master
kuFEAR May 27, 2020
06aa8b5
Revert hardcoding List instead Array
kuFEAR May 27, 2020
4aa653c
Set List as default collectionType
kuFEAR May 27, 2020
48402f5
Update Kotlin samples
kuFEAR May 27, 2020
cf5f684
Fixed Kotlin multiplatform api template. fix mapper for Array type.
kuFEAR May 27, 2020
927089d
Update Kotlin multiplatform sample
kuFEAR May 27, 2020
1c8c952
Fix Kotlin multiplatform template code style
kuFEAR May 27, 2020
4dfc577
Update Kotlin multiplatform sample
kuFEAR May 27, 2020
4826bfd
Fix Kotlin multiplatform converting Array to List in Api.
kuFEAR May 27, 2020
9e40a1a
Update Kotlin multiplatform sample #3
kuFEAR May 27, 2020
ff3f63d
Fix Kotlin tests
kuFEAR May 28, 2020
198912a
Fix Kotlin jackson Application.kt
kuFEAR May 28, 2020
2648d1d
Fix Kotlin tests #2
kuFEAR May 28, 2020
93a373d
Merge remote-tracking branch 'base_origin/master' into kotlin_client_…
kuFEAR Jun 5, 2020
5b871fe
Fix merge conflict with master
kuFEAR Jun 5, 2020
0e01283
Merge remote-tracking branch 'base_origin/master' into kotlin_client_…
kuFEAR Jun 8, 2020
ccb5ae7
Merge remote-tracking branch 'base_origin/master' into kotlin_client_…
kuFEAR Jun 11, 2020
1d7e8bb
Generate samples after merge with master
kuFEAR Jun 11, 2020
35d72c2
Generate samples after merge with master #2
kuFEAR Jun 11, 2020
bc9d17f
Generate samples after merge with master #3
kuFEAR Jun 11, 2020
993c5e9
Merge remote-tracking branch 'base_origin/master' into kotlin_client_…
kuFEAR Jun 11, 2020
4f049e4
Generate samples after merge with master #4
kuFEAR Jun 11, 2020
b878f22
Merge branch 'master' of https://github.com/openapitools/openapi-gene…
wing328 Jun 14, 2020
d950cd0
update kotlin samples
wing328 Jun 14, 2020
dfbd8da
update all samples
wing328 Jun 14, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion docs/generators/kotlin.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ sidebar_label: kotlin
|apiSuffix|suffix for api classes| |Api|
|artifactId|Generated artifact id (name of jar).| |kotlin-client|
|artifactVersion|Generated artifact's package version.| |1.0.0|
|collectionType|Option. Collection type to use|<dl><dt>**array**</dt><dd>kotlin.Array</dd><dt>**list**</dt><dd>kotlin.collections.List</dd></dl>|array|
|collectionType|Option. Collection type to use|<dl><dt>**array**</dt><dd>kotlin.Array</dd><dt>**list**</dt><dd>kotlin.collections.List</dd></dl>|list|
|dateLibrary|Option. Date library to use|<dl><dt>**threetenbp-localdatetime**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, for legacy app only)</dd><dt>**string**</dt><dd>String</dd><dt>**java8-localdatetime**</dt><dd>Java 8 native JSR310 (jvm only, for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (jvm only, preferred for jdk 1.8+)</dd><dt>**threetenbp**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, preferred for jdk &lt; 1.8)</dd></dl>|java8|
|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |camelCase|
|groupId|Generated artifact package's organization (i.e. maven groupId).| |org.openapitools|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public AbstractKotlinCodegen() {
typeMapping.put("set", "kotlin.collections.Set");
typeMapping.put("map", "kotlin.collections.Map");
typeMapping.put("object", "kotlin.Any");
typeMapping.put("binary", "kotlin.Array<kotlin.Byte>");
typeMapping.put("binary", "kotlin.ByteArray");
typeMapping.put("Date", "java.time.LocalDate");
typeMapping.put("DateTime", "java.time.LocalDateTime");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package org.openapitools.codegen.languages;

import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
Expand Down Expand Up @@ -60,7 +61,7 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {

protected String dateLibrary = DateLibrary.JAVA8.value;
protected String requestDateConverter = RequestDateConverter.TO_JSON.value;
protected String collectionType = CollectionType.ARRAY.value;
protected String collectionType = CollectionType.LIST.value;
protected boolean useRxJava = false;
protected boolean useRxJava2 = false;
protected boolean useCoroutines = false;
Expand Down Expand Up @@ -567,6 +568,10 @@ public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> o
List<CodegenOperation> ops = (List<CodegenOperation>) operations.get("operation");
for (CodegenOperation operation : ops) {

if (JVM_RETROFIT2.equals(getLibrary()) && StringUtils.isNotEmpty(operation.path) && operation.path.startsWith("/")) {
operation.path = operation.path.substring(1);
}

// set multipart against all relevant operations
if (operation.hasConsumes == Boolean.TRUE) {
if (isMultipartType(operation.consumes)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import kotlinx.serialization.internal.CommonEnumSerializer
{{#serializableModel}}
import java.io.Serializable
{{/serializableModel}}

/**
* {{{description}}}
{{#allVars}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#isBodyParam}}@Body {{{paramName}}}: {{{dataType}}}{{/isBodyParam}}
{{#isBodyParam}}@Body {{{paramName}}}: {{{dataType}}}{{^required}}? = null{{/required}}{{/isBodyParam}}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#isQueryParam}}@Query("{{baseName}}") {{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{/isQueryParam}}
{{#isQueryParam}}@Query("{{baseName}}") {{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{^required}}? = null{{/required}}{{/isQueryParam}}
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,33 @@ import kotlinx.serialization.internal.StringDescriptor

{{#operations}}
{{#nonPublicApi}}internal {{/nonPublicApi}}class {{classname}} @UseExperimental(UnstableDefault::class) constructor(
baseUrl: kotlin.String = "{{{basePath}}}",
httpClientEngine: HttpClientEngine? = null,
serializer: KotlinxSerializer)
: ApiClient(baseUrl, httpClientEngine, serializer) {
baseUrl: kotlin.String = "{{{basePath}}}",
httpClientEngine: HttpClientEngine? = null,
serializer: KotlinxSerializer
) : ApiClient(baseUrl, httpClientEngine, serializer) {

@UseExperimental(UnstableDefault::class)
constructor(
baseUrl: kotlin.String = "{{{basePath}}}",
httpClientEngine: HttpClientEngine? = null,
jsonConfiguration: JsonConfiguration = JsonConfiguration.Default)
: this(baseUrl, httpClientEngine, KotlinxSerializer(Json(jsonConfiguration)))
jsonConfiguration: JsonConfiguration = JsonConfiguration.Default
) : this(baseUrl, httpClientEngine, KotlinxSerializer(Json(jsonConfiguration)))

{{#operation}}
/**
* {{summary}}
* {{notes}}
{{#allParams}}* @param {{{paramName}}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
{{/allParams}}* @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
*/
* {{summary}}
* {{notes}}
{{#allParams}} * @param {{{paramName}}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
{{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
*/
{{#returnType}}
@Suppress("UNCHECKED_CAST")
{{/returnType}}
suspend fun {{operationId}}({{#allParams}}{{{paramName}}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : HttpResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Unit{{/returnType}}> {
suspend fun {{operationId}}({{#allParams}}{{{paramName}}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}): HttpResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Unit{{/returnType}}> {

val localVariableAuthNames = listOf<String>({{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}})

val localVariableBody = {{#hasBodyParam}}{{#bodyParam}}{{#isListContainer}}{{operationIdCamelCase}}Request({{{paramName}}}.asList()){{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}{{operationIdCamelCase}}Request({{{paramName}}}){{/isMapContainer}}{{^isMapContainer}}{{{paramName}}}{{/isMapContainer}}{{/isListContainer}}{{/bodyParam}}{{/hasBodyParam}}
val localVariableBody = {{#hasBodyParam}}{{#bodyParam}}{{#isListContainer}}{{operationIdCamelCase}}Request({{{paramName}}}{{^isList}}.asList(){{/isList}}){{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}{{operationIdCamelCase}}Request({{{paramName}}}){{/isMapContainer}}{{^isMapContainer}}{{{paramName}}}{{/isMapContainer}}{{/isListContainer}}{{/bodyParam}}{{/hasBodyParam}}
{{^hasBodyParam}}
{{#hasFormParams}}
{{#isMultipart}}
Expand Down Expand Up @@ -78,7 +78,7 @@ import kotlinx.serialization.internal.StringDescriptor

val localVariableConfig = RequestConfig(
RequestMethod.{{httpMethod}},
"{{path}}"{{#pathParams}}.replace("{"+"{{baseName}}"+"}", "${{{paramName}}}"){{/pathParams}},
"{{path}}"{{#pathParams}}.replace("{" + "{{baseName}}" + "}", "${{{paramName}}}"){{/pathParams}},
query = localVariableQuery,
headers = localVariableHeaders
)
Expand All @@ -87,20 +87,20 @@ import kotlinx.serialization.internal.StringDescriptor
localVariableConfig,
localVariableBody,
localVariableAuthNames
).{{#isListContainer}}wrap<{{operationIdCamelCase}}Response>().map { value.toTypedArray() }{{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}wrap<{{operationIdCamelCase}}Response>().map { value }{{/isMapContainer}}{{^isMapContainer}}wrap(){{/isMapContainer}}{{/isListContainer}}
).{{#isListContainer}}wrap<{{operationIdCamelCase}}Response>().map { value{{^isList}}.toTypedArray(){{/isList}} }{{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}wrap<{{operationIdCamelCase}}Response>().map { value }{{/isMapContainer}}{{^isMapContainer}}wrap(){{/isMapContainer}}{{/isListContainer}}
}

{{#hasBodyParam}}
{{#bodyParam}}
{{#isListContainer}}{{>serial_wrapper_request_list}}{{/isListContainer}}{{#isMapContainer}}{{>serial_wrapper_request_map}}{{/isMapContainer}}
{{/bodyParam}}
{{/hasBodyParam}}
{{#isListContainer}}
{{>serial_wrapper_response_list}}
{{/isListContainer}}
{{#isMapContainer}}
{{>serial_wrapper_response_map}}
{{/isMapContainer}}
{{#hasBodyParam}}
{{#bodyParam}}
{{#isListContainer}}{{>serial_wrapper_request_list}}{{/isListContainer}}{{#isMapContainer}}{{>serial_wrapper_request_map}}{{/isMapContainer}}
{{/bodyParam}}
{{/hasBodyParam}}
{{#isListContainer}}
{{>serial_wrapper_response_list}}
{{/isListContainer}}
{{#isMapContainer}}
{{>serial_wrapper_response_map}}
{{/isMapContainer}}

{{/operation}}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Serializable
private class {{operationIdCamelCase}}Request(val value: List<{{#bodyParam}}{{baseType}}{{/bodyParam}}>) {
@Serializer({{operationIdCamelCase}}Request::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Request> {
private val serializer: KSerializer<List<{{#bodyParam}}{{baseType}}{{/bodyParam}}>> = {{#bodyParam}}{{baseType}}{{/bodyParam}}.serializer().list
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Request")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Request) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Request(serializer.deserialize(decoder))
}
}
@Serializable
private class {{operationIdCamelCase}}Request(val value: List<{{#bodyParam}}{{baseType}}{{/bodyParam}}>) {
@Serializer({{operationIdCamelCase}}Request::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Request> {
private val serializer: KSerializer<List<{{#bodyParam}}{{baseType}}{{/bodyParam}}>> = {{#bodyParam}}{{baseType}}{{/bodyParam}}.serializer().list
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Request")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Request) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Request(serializer.deserialize(decoder))
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Serializable
private class {{operationIdCamelCase}}Request(val value: Map<kotlin.String, {{#bodyParam}}{{baseType}}{{/bodyParam}}>) {
@Serializer({{operationIdCamelCase}}Request::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Request> {
private val serializer: KSerializer<Map<kotlin.String, {{#bodyParam}}{{baseType}}{{/bodyParam}}>> = (kotlin.String.serializer() to {{#bodyParam}}{{baseType}}{{/bodyParam}}.serializer()).map
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Request")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Request) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Request(serializer.deserialize(decoder))
}
}
@Serializable
private class {{operationIdCamelCase}}Request(val value: Map<kotlin.String, {{#bodyParam}}{{baseType}}{{/bodyParam}}>) {
@Serializer({{operationIdCamelCase}}Request::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Request> {
private val serializer: KSerializer<Map<kotlin.String, {{#bodyParam}}{{baseType}}{{/bodyParam}}>> = (kotlin.String.serializer() to {{#bodyParam}}{{baseType}}{{/bodyParam}}.serializer()).map
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Request")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Request) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Request(serializer.deserialize(decoder))
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Serializable
private class {{operationIdCamelCase}}Response(val value: List<{{returnBaseType}}>) {
@Serializer({{operationIdCamelCase}}Response::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Response> {
private val serializer: KSerializer<List<{{returnBaseType}}>> = {{returnBaseType}}.serializer().list
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Response")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Response) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Response(serializer.deserialize(decoder))
}
}
@Serializable
private class {{operationIdCamelCase}}Response(val value: List<{{returnBaseType}}>) {
@Serializer({{operationIdCamelCase}}Response::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Response> {
private val serializer: KSerializer<List<{{returnBaseType}}>> = {{returnBaseType}}.serializer().list
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Response")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Response) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Response(serializer.deserialize(decoder))
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@Serializable
private class {{operationIdCamelCase}}Response(val value: Map<kotlin.String, {{returnBaseType}}>) {
@Serializer({{operationIdCamelCase}}Response::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Response> {
private val serializer: KSerializer<Map<kotlin.String, {{returnBaseType}}>> = (kotlin.String.serializer() to {{returnBaseType}}.serializer()).map
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Response")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Response) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Response(serializer.deserialize(decoder))
}
}
@Serializable
private class {{operationIdCamelCase}}Response(val value: Map<kotlin.String, {{returnBaseType}}>) {
@Serializer({{operationIdCamelCase}}Response::class)
{{#nonPublicApi}}internal {{/nonPublicApi}}companion object : KSerializer<{{operationIdCamelCase}}Response> {
private val serializer: KSerializer<Map<kotlin.String, {{returnBaseType}}>> = (kotlin.String.serializer() to {{returnBaseType}}.serializer()).map
override val descriptor = StringDescriptor.withName("{{operationIdCamelCase}}Response")
override fun serialize(encoder: Encoder, obj: {{operationIdCamelCase}}Response) = serializer.serialize(encoder, obj.value)
override fun deserialize(decoder: Decoder) = {{operationIdCamelCase}}Response(serializer.deserialize(decoder))
}
}
4 changes: 2 additions & 2 deletions samples/client/petstore/kotlin-gson/docs/Pet.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **kotlin.String** | |
**photoUrls** | **kotlin.Array&lt;kotlin.String&gt;** | |
**photoUrls** | **kotlin.collections.List&lt;kotlin.String&gt;** | |
**id** | **kotlin.Long** | | [optional]
**category** | [**Category**](Category.md) | | [optional]
**tags** | [**kotlin.Array&lt;Tag&gt;**](Tag.md) | | [optional]
**tags** | [**kotlin.collections.List&lt;Tag&gt;**](Tag.md) | | [optional]
**status** | [**inline**](#StatusEnum) | pet status in the store | [optional]


Expand Down
20 changes: 10 additions & 10 deletions samples/client/petstore/kotlin-gson/docs/PetApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Configure petstore_auth:

<a name="findPetsByStatus"></a>
# **findPetsByStatus**
> kotlin.Array&lt;Pet&gt; findPetsByStatus(status)
> kotlin.collections.List&lt;Pet&gt; findPetsByStatus(status)

Finds Pets by status

Expand All @@ -123,9 +123,9 @@ Multiple status values can be provided with comma separated strings
//import org.openapitools.client.models.*

val apiInstance = PetApi()
val status : kotlin.Array<kotlin.String> = // kotlin.Array<kotlin.String> | Status values that need to be considered for filter
val status : kotlin.collections.List<kotlin.String> = // kotlin.collections.List<kotlin.String> | Status values that need to be considered for filter
try {
val result : kotlin.Array<Pet> = apiInstance.findPetsByStatus(status)
val result : kotlin.collections.List<Pet> = apiInstance.findPetsByStatus(status)
println(result)
} catch (e: ClientException) {
println("4xx response calling PetApi#findPetsByStatus")
Expand All @@ -140,11 +140,11 @@ try {

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**status** | [**kotlin.Array&lt;kotlin.String&gt;**](kotlin.String.md)| Status values that need to be considered for filter | [enum: available, pending, sold]
**status** | [**kotlin.collections.List&lt;kotlin.String&gt;**](kotlin.String.md)| Status values that need to be considered for filter | [enum: available, pending, sold]

### Return type

[**kotlin.Array&lt;Pet&gt;**](Pet.md)
[**kotlin.collections.List&lt;Pet&gt;**](Pet.md)

### Authorization

Expand All @@ -159,7 +159,7 @@ Configure petstore_auth:

<a name="findPetsByTags"></a>
# **findPetsByTags**
> kotlin.Array&lt;Pet&gt; findPetsByTags(tags)
> kotlin.collections.List&lt;Pet&gt; findPetsByTags(tags)

Finds Pets by tags

Expand All @@ -172,9 +172,9 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3
//import org.openapitools.client.models.*

val apiInstance = PetApi()
val tags : kotlin.Array<kotlin.String> = // kotlin.Array<kotlin.String> | Tags to filter by
val tags : kotlin.collections.List<kotlin.String> = // kotlin.collections.List<kotlin.String> | Tags to filter by
try {
val result : kotlin.Array<Pet> = apiInstance.findPetsByTags(tags)
val result : kotlin.collections.List<Pet> = apiInstance.findPetsByTags(tags)
println(result)
} catch (e: ClientException) {
println("4xx response calling PetApi#findPetsByTags")
Expand All @@ -189,11 +189,11 @@ try {

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**tags** | [**kotlin.Array&lt;kotlin.String&gt;**](kotlin.String.md)| Tags to filter by |
**tags** | [**kotlin.collections.List&lt;kotlin.String&gt;**](kotlin.String.md)| Tags to filter by |

### Return type

[**kotlin.Array&lt;Pet&gt;**](Pet.md)
[**kotlin.collections.List&lt;Pet&gt;**](Pet.md)

### Authorization

Expand Down
Loading