diff --git a/.github/workflows/samples-kotlin-server-jdk17.yaml b/.github/workflows/samples-kotlin-server-jdk17.yaml index 999e2f4d817b..a95a26de17de 100644 --- a/.github/workflows/samples-kotlin-server-jdk17.yaml +++ b/.github/workflows/samples-kotlin-server-jdk17.yaml @@ -37,6 +37,8 @@ jobs: - samples/server/petstore/kotlin-server-required-and-nullable-properties - samples/server/petstore/kotlin-springboot-3 - samples/server/petstore/kotlin-springboot-3-no-response-entity + - samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2 + - samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only - samples/server/petstore/kotlin-springboot-additionalproperties - samples/server/petstore/kotlin-springboot-delegate-nodefaults - samples/server/petstore/kotlin-springboot-request-cookie diff --git a/.github/workflows/samples-kotlin-server.yaml b/.github/workflows/samples-kotlin-server.yaml index 0ab8e5389059..5865ec6b38f9 100644 --- a/.github/workflows/samples-kotlin-server.yaml +++ b/.github/workflows/samples-kotlin-server.yaml @@ -41,6 +41,7 @@ jobs: - samples/server/petstore/kotlin-springboot-source-swagger2 - samples/server/petstore/kotlin-springboot-springfox - samples/server/petstore/kotlin-springboot-x-kotlin-implements + - samples/server/petstore/kotlin-springboot-dollar-issue-swagger1 - samples/server/petstore/kotlin-springboot-include-http-request-context-delegate - samples/server/petstore/kotlin-server/ktor - samples/server/petstore/kotlin-server/ktor2 diff --git a/bin/configs/kotlin-explicit.yaml b/bin/configs/kotlin-explicit.yaml index 26e0259de95d..942bc3bad062 100644 --- a/bin/configs/kotlin-explicit.yaml +++ b/bin/configs/kotlin-explicit.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-explicit -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-explicit diff --git a/bin/configs/kotlin-gson.yaml b/bin/configs/kotlin-gson.yaml index e4e55689509d..cad8426093f4 100644 --- a/bin/configs/kotlin-gson.yaml +++ b/bin/configs/kotlin-gson.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-gson -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: serializationLibrary: gson diff --git a/bin/configs/kotlin-jackson.yaml b/bin/configs/kotlin-jackson.yaml index d16fee65eeeb..7dadac5e6ab0 100644 --- a/bin/configs/kotlin-jackson.yaml +++ b/bin/configs/kotlin-jackson.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-jackson -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: serializationLibrary: jackson diff --git a/bin/configs/kotlin-jvm-ktor-jackson.yaml b/bin/configs/kotlin-jvm-ktor-jackson.yaml index 5fc856c88df3..1c11ce31dc46 100644 --- a/bin/configs/kotlin-jvm-ktor-jackson.yaml +++ b/bin/configs/kotlin-jvm-ktor-jackson.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-jvm-ktor-jackson library: jvm-ktor -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-jvm-ktor-jackson diff --git a/bin/configs/kotlin-jvm-okhttp4-coroutines.yaml b/bin/configs/kotlin-jvm-okhttp4-coroutines.yaml index 0718c164d565..aaccdb218b81 100644 --- a/bin/configs/kotlin-jvm-okhttp4-coroutines.yaml +++ b/bin/configs/kotlin-jvm-okhttp4-coroutines.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-jvm-okhttp4-coroutines library: jvm-okhttp4 -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: serializationLibrary: gson diff --git a/bin/configs/kotlin-jvm-retrofit2-kotlinx_serialization.yaml b/bin/configs/kotlin-jvm-retrofit2-kotlinx_serialization.yaml index f54496d25f1c..ea3536bca1b9 100644 --- a/bin/configs/kotlin-jvm-retrofit2-kotlinx_serialization.yaml +++ b/bin/configs/kotlin-jvm-retrofit2-kotlinx_serialization.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-retrofit2-kotlinx_serialization library: jvm-retrofit2 -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: serializationLibrary: kotlinx_serialization diff --git a/bin/configs/kotlin-jvm-retrofit2-retrofit2.yaml b/bin/configs/kotlin-jvm-retrofit2-retrofit2.yaml index 0729bf8ecd82..9cb3cc66a794 100644 --- a/bin/configs/kotlin-jvm-retrofit2-retrofit2.yaml +++ b/bin/configs/kotlin-jvm-retrofit2-retrofit2.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-retrofit2 library: jvm-retrofit2 -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-retrofit2 diff --git a/bin/configs/kotlin-jvm-retrofit2-rx3.yaml b/bin/configs/kotlin-jvm-retrofit2-rx3.yaml index 06284f2fa249..3f30b2b8f5a7 100644 --- a/bin/configs/kotlin-jvm-retrofit2-rx3.yaml +++ b/bin/configs/kotlin-jvm-retrofit2-rx3.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-retrofit2-rx3 library: jvm-retrofit2 -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-retrofit2-rx3 diff --git a/bin/configs/kotlin-jvm-volley.yaml b/bin/configs/kotlin-jvm-volley.yaml index cdb8ac51a9b4..f89087fdb3b8 100644 --- a/bin/configs/kotlin-jvm-volley.yaml +++ b/bin/configs/kotlin-jvm-volley.yaml @@ -1,7 +1,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-jvm-volley library: jvm-volley -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-jvm-volley diff --git a/bin/configs/kotlin-kotlinx-datetime.yaml b/bin/configs/kotlin-kotlinx-datetime.yaml index cff9e901791a..91e269ce2207 100644 --- a/bin/configs/kotlin-kotlinx-datetime.yaml +++ b/bin/configs/kotlin-kotlinx-datetime.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-kotlinx-datetime -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-threetenbp diff --git a/bin/configs/kotlin-modelMutable.yaml b/bin/configs/kotlin-modelMutable.yaml index 584224804edd..7aebc7a63c2a 100644 --- a/bin/configs/kotlin-modelMutable.yaml +++ b/bin/configs/kotlin-modelMutable.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-modelMutable -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-modelMutable diff --git a/bin/configs/kotlin-moshi-codegen.yaml b/bin/configs/kotlin-moshi-codegen.yaml index 00536bbf1cf4..a5bae74dab29 100644 --- a/bin/configs/kotlin-moshi-codegen.yaml +++ b/bin/configs/kotlin-moshi-codegen.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-moshi-codegen -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: serializationLibrary: moshi diff --git a/bin/configs/kotlin-multiplatform-kotlinx-datetime.yaml b/bin/configs/kotlin-multiplatform-kotlinx-datetime.yaml index dd5fb8f1075a..4322ff263d85 100644 --- a/bin/configs/kotlin-multiplatform-kotlinx-datetime.yaml +++ b/bin/configs/kotlin-multiplatform-kotlinx-datetime.yaml @@ -2,7 +2,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-multiplatform-kotlinx-datetime library: multiplatform dateLibrary: kotlinx-datetime -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-client-petstore-multiplatform-kotlinx-datetime diff --git a/bin/configs/kotlin-multiplatform.yaml b/bin/configs/kotlin-multiplatform.yaml index f4bc9a60f027..2fd89aa06328 100644 --- a/bin/configs/kotlin-multiplatform.yaml +++ b/bin/configs/kotlin-multiplatform.yaml @@ -2,7 +2,7 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-multiplatform library: multiplatform dateLibrary: kotlinx-datetime -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-client-petstore-multiplatform diff --git a/bin/configs/kotlin-nonpublic.yaml b/bin/configs/kotlin-nonpublic.yaml index fbc64ceb00d1..58c3babac288 100644 --- a/bin/configs/kotlin-nonpublic.yaml +++ b/bin/configs/kotlin-nonpublic.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-nonpublic -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: nonPublicApi: "true" diff --git a/bin/configs/kotlin-nullable.yaml b/bin/configs/kotlin-nullable.yaml index 27fe5c6b0d89..a1085484beef 100644 --- a/bin/configs/kotlin-nullable.yaml +++ b/bin/configs/kotlin-nullable.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin-nullable -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-nullable diff --git a/bin/configs/kotlin-server-jaxrs-spec-mutiny.yaml b/bin/configs/kotlin-server-jaxrs-spec-mutiny.yaml index 28c51a4a4ef6..8aea27eda1bf 100644 --- a/bin/configs/kotlin-server-jaxrs-spec-mutiny.yaml +++ b/bin/configs/kotlin-server-jaxrs-spec-mutiny.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-server outputDir: samples/server/petstore/kotlin-server/jaxrs-spec-mutiny library: jaxrs-spec -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-server additionalProperties: returnResponse: "true" diff --git a/bin/configs/kotlin-server-jaxrs-spec.yaml b/bin/configs/kotlin-server-jaxrs-spec.yaml index 11d4fcec7a8d..9b933e21e418 100644 --- a/bin/configs/kotlin-server-jaxrs-spec.yaml +++ b/bin/configs/kotlin-server-jaxrs-spec.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-server outputDir: samples/server/petstore/kotlin-server/jaxrs-spec library: jaxrs-spec -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-server additionalProperties: useCoroutines: "true" diff --git a/bin/configs/kotlin-server-ktor.yaml b/bin/configs/kotlin-server-ktor.yaml index ad5bce1047e1..61039abad327 100644 --- a/bin/configs/kotlin-server-ktor.yaml +++ b/bin/configs/kotlin-server-ktor.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-server outputDir: samples/server/petstore/kotlin-server/ktor library: ktor -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-server additionalProperties: hideGenerationTimestamp: "true" diff --git a/bin/configs/kotlin-server-modelMutable.yaml b/bin/configs/kotlin-server-modelMutable.yaml index 1af6d3edb627..c128ecf973e1 100644 --- a/bin/configs/kotlin-server-modelMutable.yaml +++ b/bin/configs/kotlin-server-modelMutable.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-server outputDir: samples/server/petstore/kotlin-server-modelMutable library: ktor -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-server additionalProperties: hideGenerationTimestamp: "true" diff --git a/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2-interface-only.yaml b/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2-interface-only.yaml new file mode 100644 index 000000000000..5a42e32a9666 --- /dev/null +++ b/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2-interface-only.yaml @@ -0,0 +1,14 @@ +generatorName: kotlin-spring +outputDir: samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only +library: spring-boot +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml +templateDir: modules/openapi-generator/src/main/resources/kotlin-spring +additionalProperties: + documentationProvider: springDoc + annotationLibrary: swagger2 + useSwaggerUI: "false" + interfaceOnly: "true" + serializableModel: "true" + beanValidations: "true" + useSpringBoot3: "true" + requestMappingMode: api_interface diff --git a/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2.yaml b/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2.yaml new file mode 100644 index 000000000000..daa8216e4a43 --- /dev/null +++ b/bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2.yaml @@ -0,0 +1,14 @@ +generatorName: kotlin-spring +outputDir: samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2 +library: spring-boot +inputSpec: modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml +templateDir: modules/openapi-generator/src/main/resources/kotlin-spring +additionalProperties: + documentationProvider: springDoc + annotationLibrary: swagger2 + useSwaggerUI: "false" + serviceImplementation: "true" + serializableModel: "true" + beanValidations: "true" + useSpringBoot3: "true" + requestMappingMode: api_interface diff --git a/bin/configs/kotlin-spring-boot-dollar-issue-swagger1.yaml b/bin/configs/kotlin-spring-boot-dollar-issue-swagger1.yaml new file mode 100644 index 000000000000..25aa6b750647 --- /dev/null +++ b/bin/configs/kotlin-spring-boot-dollar-issue-swagger1.yaml @@ -0,0 +1,13 @@ +generatorName: kotlin-spring +outputDir: samples/server/petstore/kotlin-springboot-dollar-issue-swagger1 +library: spring-boot +inputSpec: modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml +templateDir: modules/openapi-generator/src/main/resources/kotlin-spring +additionalProperties: + documentationProvider: springFox + annotationLibrary: swagger1 + useSwaggerUI: "false" + serviceImplementation: "true" + serializableModel: "true" + beanValidations: "true" + requestMappingMode: api_interface diff --git a/bin/configs/kotlin-spring-boot-x-kotlin-implements.yaml b/bin/configs/kotlin-spring-boot-x-kotlin-implements.yaml index 1d1218b58452..8d5911e56c37 100644 --- a/bin/configs/kotlin-spring-boot-x-kotlin-implements.yaml +++ b/bin/configs/kotlin-spring-boot-x-kotlin-implements.yaml @@ -9,7 +9,7 @@ additionalProperties: useSwaggerUI: false serviceImplementation: false skipDefaultInterface: true - interfaceOnly: true + interfaceOnly: false serializableModel: true beanValidations: true includeHttpRequestContext: true diff --git a/bin/configs/kotlin-spring-declarative-interface-reactive-coroutines.yaml b/bin/configs/kotlin-spring-declarative-interface-reactive-coroutines.yaml index f5375f8f0fb7..30e6dc86712e 100644 --- a/bin/configs/kotlin-spring-declarative-interface-reactive-coroutines.yaml +++ b/bin/configs/kotlin-spring-declarative-interface-reactive-coroutines.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-spring outputDir: samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines library: spring-declarative-http-interface -inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-spring additionalProperties: documentationProvider: springDoc diff --git a/bin/configs/kotlin-spring-declarative-interface-reactive-reactor-wrapped.yaml b/bin/configs/kotlin-spring-declarative-interface-reactive-reactor-wrapped.yaml index 0826f5059e33..e4dc0aba73e8 100644 --- a/bin/configs/kotlin-spring-declarative-interface-reactive-reactor-wrapped.yaml +++ b/bin/configs/kotlin-spring-declarative-interface-reactive-reactor-wrapped.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-spring outputDir: samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped library: spring-declarative-http-interface -inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-spring additionalProperties: documentationProvider: springDoc diff --git a/bin/configs/kotlin-spring-declarative-interface-wrapped.yaml b/bin/configs/kotlin-spring-declarative-interface-wrapped.yaml index ce0d79f6e97b..5332cf5c0448 100644 --- a/bin/configs/kotlin-spring-declarative-interface-wrapped.yaml +++ b/bin/configs/kotlin-spring-declarative-interface-wrapped.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-spring outputDir: samples/server/petstore/kotlin-spring-declarative-interface-wrapped library: spring-declarative-http-interface -inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-spring additionalProperties: documentationProvider: springDoc diff --git a/bin/configs/kotlin-spring-declarative-interface.yaml b/bin/configs/kotlin-spring-declarative-interface.yaml index da5c9c0a8854..b399470a5a2e 100644 --- a/bin/configs/kotlin-spring-declarative-interface.yaml +++ b/bin/configs/kotlin-spring-declarative-interface.yaml @@ -1,7 +1,7 @@ generatorName: kotlin-spring outputDir: samples/server/petstore/kotlin-spring-declarative-interface library: spring-declarative-http-interface -inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-spring additionalProperties: documentationProvider: springDoc diff --git a/bin/configs/kotlin.yaml b/bin/configs/kotlin.yaml index 136fff6480de..577349b2709a 100644 --- a/bin/configs/kotlin.yaml +++ b/bin/configs/kotlin.yaml @@ -1,6 +1,6 @@ generatorName: kotlin outputDir: samples/client/petstore/kotlin -inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml +inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml templateDir: modules/openapi-generator/src/main/resources/kotlin-client additionalProperties: artifactId: kotlin-petstore-client diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java index 47e09ea292d4..e8c89ac9b6fa 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java @@ -33,7 +33,7 @@ public class CodegenOperation { hasErrorResponseObject; // if 4xx, 5xx responses have at least one error object defined public CodegenProperty returnProperty; public String path, operationId, returnType, returnFormat, httpMethod, returnBaseType, - returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse; + returnContainer, summary, unescapedSummary, unescapedNotes, notes, baseName, defaultResponse; public CodegenDiscriminator discriminator; public List> consumes, produces, prioritizedContentTypes; public List servers = new ArrayList(); @@ -429,6 +429,7 @@ public String toString() { sb.append(", returnBaseType='").append(returnBaseType).append('\''); sb.append(", returnContainer='").append(returnContainer).append('\''); sb.append(", summary='").append(summary).append('\''); + sb.append(", unescapedSummary='").append(unescapedSummary).append('\''); sb.append(", unescapedNotes='").append(unescapedNotes).append('\''); sb.append(", notes='").append(notes).append('\''); sb.append(", baseName='").append(baseName).append('\''); @@ -502,6 +503,7 @@ public boolean equals(Object o) { Objects.equals(returnBaseType, that.returnBaseType) && Objects.equals(returnContainer, that.returnContainer) && Objects.equals(summary, that.summary) && + Objects.equals(unescapedSummary, that.unescapedSummary) && Objects.equals(unescapedNotes, that.unescapedNotes) && Objects.equals(notes, that.notes) && Objects.equals(baseName, that.baseName) && @@ -547,7 +549,7 @@ public int hashCode() { returnTypeIsPrimitive, returnSimpleType, subresourceOperation, isMap, isArray, isMultipart, isVoid, isResponseBinary, isResponseFile, isResponseOptional, hasReference, isDeprecated, isCallbackRequest, uniqueItems, path, operationId, returnType, httpMethod, - returnBaseType, returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse, + returnBaseType, returnContainer, summary, unescapedSummary, unescapedNotes, notes, baseName, defaultResponse, discriminator, consumes, produces, prioritizedContentTypes, servers, bodyParam, allParams, bodyParams, pathParams, queryParams, headerParams, formParams, cookieParams, requiredParams, returnProperty, optionalParams, authMethods, tags, responses, callbacks, imports, examples, requestBodyExamples, externalDocs, diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java index 3298d80868f2..c9a426d7b9a1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java @@ -33,6 +33,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { public boolean is4xx; public boolean is5xx; public String message; + public String unescapedMessage; public List> examples; public String dataType; public String baseType; @@ -109,7 +110,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { @Override public int hashCode() { - return Objects.hash(headers, code, message, examples, dataType, baseType, containerType, containerTypeMapped, hasHeaders, + return Objects.hash(headers, code, message, unescapedMessage, examples, dataType, baseType, containerType, containerTypeMapped, hasHeaders, isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBoolean, isDate, isDateTime, isUuid, isEmail, isPassword, isModel, isFreeFormObject, isAnyType, isDefault, simpleType, primitiveType, isMap, isOptional, isArray, isBinary, isFile, schema, jsonSchema, vendorExtensions, items, additionalProperties, @@ -182,6 +183,7 @@ public boolean equals(Object o) { Objects.equals(headers, that.headers) && Objects.equals(code, that.code) && Objects.equals(message, that.message) && + Objects.equals(unescapedMessage, that.unescapedMessage) && Objects.equals(examples, that.examples) && Objects.equals(dataType, that.dataType) && Objects.equals(baseType, that.baseType) && @@ -582,6 +584,7 @@ public String toString() { sb.append(", is4xx='").append(is4xx).append('\''); sb.append(", is5xx='").append(is5xx).append('\''); sb.append(", message='").append(message).append('\''); + sb.append(", unescapedMessage='").append(unescapedMessage).append('\''); sb.append(", examples=").append(examples); sb.append(", dataType='").append(dataType).append('\''); sb.append(", baseType='").append(baseType).append('\''); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index bd2683cf6826..c1e609891642 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -4675,6 +4675,7 @@ public CodegenOperation fromOperation(String path, } op.summary = escapeText(operation.getSummary()); + op.unescapedSummary = operation.getSummary(); op.unescapedNotes = operation.getDescription(); op.notes = escapeText(operation.getDescription()); op.hasConsumes = false; @@ -4839,6 +4840,7 @@ public CodegenOperation fromOperation(String path, if (bodyParam != null) { bodyParam.description = escapeText(requestBody.getDescription()); + bodyParam.unescapedDescription = requestBody.getDescription(); postProcessParameter(bodyParam); bodyParams.add(bodyParam); if (prependFormOrBodyParameters) { @@ -5029,6 +5031,7 @@ public CodegenResponse fromResponse(String responseCode, ApiResponse response) { } r.schema = responseSchema; r.message = escapeText(response.getDescription()); + r.unescapedMessage = response.getDescription(); // adding examples to API responses Map examples = ExamplesUtils.getExamplesFromResponse(openAPI, response); @@ -7575,6 +7578,7 @@ protected void addBodyModelSchema(CodegenParameter codegenParameter, String name codegenParameter.baseType = codegenModel.classname; codegenParameter.dataType = getTypeDeclaration(codegenModel.classname); codegenParameter.description = codegenModel.description; + codegenParameter.unescapedDescription = codegenModel.unescapedDescription; codegenParameter.isNullable = codegenModel.isNullable; imports.add(codegenParameter.baseType); } else { @@ -7948,6 +7952,7 @@ public CodegenParameter fromRequestBody(RequestBody body, Set imports, S codegenParameter.baseName = "UNKNOWN_BASE_NAME"; codegenParameter.paramName = "UNKNOWN_PARAM_NAME"; codegenParameter.description = escapeText(body.getDescription()); + codegenParameter.unescapedDescription = body.getDescription(); codegenParameter.required = body.getRequired() != null ? body.getRequired() : Boolean.FALSE; codegenParameter.isBodyParam = Boolean.TRUE; if (body.getExtensions() != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java index 09b03e1a1f95..5e024d05f71e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java @@ -1131,7 +1131,8 @@ protected void updateModelForObject(CodegenModel m, Schema schema) { @Override protected ImmutableMap.Builder addMustacheLambdas() { return super.addMustacheLambdas() - .put("escapeDollar", new EscapeChar("(?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}}{{#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}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/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..e9342df00004 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}}{{#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}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/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/libraries/jvm-ktor/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-ktor/api.mustache index 03efece88e47..45f3e4c01ec9 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-ktor/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-ktor/api.mustache @@ -69,19 +69,19 @@ import com.fasterxml.jackson.databind.ObjectMapper {{^isArray}} {{^isString}} {{^isNumber}} - {{{paramName}}}?.apply { append("{{{baseName}}}", {{{paramName}}}.toString()) } + {{{paramName}}}?.apply { append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}.toString()) } {{/isNumber}} {{#isNumber}} - {{{paramName}}}?.apply { append("{{{baseName}}}", {{{paramName}}}.toString()) } + {{{paramName}}}?.apply { append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}.toString()) } {{/isNumber}} {{/isString}} {{#isString}} - {{{paramName}}}?.apply { append("{{{baseName}}}", {{{paramName}}}) } + {{{paramName}}}?.apply { append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}) } {{/isString}} {{/isArray}} {{#isArray}} for (x in {{paramName}} ?: listOf()) { - {{#isFile}}append(it){{/isFile}}{{^isFile}}append("{{{baseName}}}", x.toString()){{/isFile}} + {{#isFile}}append(it){{/isFile}}{{^isFile}}append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", x.toString()){{/isFile}} } {{/isArray}} {{/isFile}} @@ -92,25 +92,25 @@ import com.fasterxml.jackson.databind.ObjectMapper ParametersBuilder().also { {{#formParams}} {{#isFile}} - {{{paramName}}}?.apply { it.append("{{{baseName}}}", {{{paramName}}}) } + {{{paramName}}}?.apply { it.append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}) } {{/isFile}} {{^isFile}} {{^isArray}} {{^isString}} {{^isNumber}} - {{{paramName}}}?.apply { it.append("{{{baseName}}}", {{{paramName}}}.toString()) } + {{{paramName}}}?.apply { it.append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}.toString()) } {{/isNumber}} {{#isNumber}} - {{{paramName}}}?.apply { it.append("{{{baseName}}}", {{{paramName}}}.toString()) } + {{{paramName}}}?.apply { it.append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}.toString()) } {{/isNumber}} {{/isString}} {{#isString}} - {{{paramName}}}?.apply { it.append("{{{baseName}}}", {{{paramName}}}) } + {{{paramName}}}?.apply { it.append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}) } {{/isString}} {{/isArray}} {{#isArray}} for (x in {{paramName}} ?: listOf()) { - append("{{{baseName}}}", x.toString()) + append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", x.toString()) } {{/isArray}} {{/isFile}} @@ -125,17 +125,17 @@ import com.fasterxml.jackson.databind.ObjectMapper val localVariableQuery = mutableMapOf>() {{#queryParams}} - {{{paramName}}}?.apply { localVariableQuery["{{baseName}}"] = {{#isContainer}}toMultiValue(this, "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf("${{{paramName}}}"){{/isContainer}} } + {{{paramName}}}?.apply { localVariableQuery["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}toMultiValue(this, "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf("${{{paramName}}}"){{/isContainer}} } {{/queryParams}} val localVariableHeaders = mutableMapOf() {{#headerParams}} - {{{paramName}}}?.apply { localVariableHeaders["{{baseName}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } + {{{paramName}}}?.apply { localVariableHeaders["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } {{/headerParams}} val localVariableConfig = RequestConfig( RequestMethod.{{httpMethod}}, - "{{{path}}}"{{#pathParams}}.replace("{" + "{{baseName}}" + "}", "${{{paramName}}}"){{/pathParams}}, + "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"{{#pathParams}}.replace("{" + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" + "}", "${{{paramName}}}"){{/pathParams}}, query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = {{#hasAuthMethods}}true{{/hasAuthMethods}}{{^hasAuthMethods}}false{{/hasAuthMethods}}, diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-okhttp/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-okhttp/api.mustache index 3569367be6ee..a841930c364e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-okhttp/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-okhttp/api.mustache @@ -139,7 +139,7 @@ import {{packageName}}.infrastructure.toMultiValue {{#isDeprecated}} @Deprecated(message = "This operation is deprecated.") {{/isDeprecated}} - {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{^doNotUseRxAndCoroutines}}{{#useCoroutines}}suspend {{/useCoroutines}}{{/doNotUseRxAndCoroutines}}fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) : {{#returnType}}{{{returnType}}}{{#nullableReturnType}}?{{/nullableReturnType}}{{/returnType}}{{^returnType}}Unit{{/returnType}}{{^doNotUseRxAndCoroutines}}{{#useCoroutines}} = withContext(Dispatchers.IO){{/useCoroutines}}{{/doNotUseRxAndCoroutines}} { + {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{^doNotUseRxAndCoroutines}}{{#useCoroutines}}suspend {{/useCoroutines}}{{/doNotUseRxAndCoroutines}}fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) : {{#returnType}}{{{returnType}}}{{#nullableReturnType}}?{{/nullableReturnType}}{{/returnType}}{{^returnType}}Unit{{/returnType}}{{^doNotUseRxAndCoroutines}}{{#useCoroutines}} = withContext(Dispatchers.IO){{/useCoroutines}}{{/doNotUseRxAndCoroutines}} { {{#isDeprecated}} @Suppress("DEPRECATION") {{/isDeprecated}} @@ -261,7 +261,7 @@ import {{packageName}}.infrastructure.toMultiValue return RequestConfig( method = RequestMethod.{{httpMethod}}, - path = "{{{path}}}"{{#pathParams}}.replace("{"+"{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"+"}", encodeURIComponent({{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}.toString(){{/isContainer}})){{/pathParams}}, + path = "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"{{#pathParams}}.replace("{"+"{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"+"}", encodeURIComponent({{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}.toString(){{/isContainer}})){{/pathParams}}, query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = {{#hasAuthMethods}}true{{/hasAuthMethods}}{{^hasAuthMethods}}false{{/hasAuthMethods}}, 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 9cd7ef3fea02..5f433eebec9a 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 @@ -155,7 +155,7 @@ import okhttp3.MultipartBody {{/-first}} {{/prioritizedContentTypes}} {{/formParams}} - @{{httpMethod}}("{{{path}}}") + @{{httpMethod}}("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{^doNotUseRxAndCoroutines}}{{#useCoroutines}}suspend {{/useCoroutines}}{{/doNotUseRxAndCoroutines}}fun {{operationId}}({{^allParams}}){{/allParams}}{{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}}, {{/-last}}{{#-last}}){{/-last}}{{/allParams}}{{#returnType}}: {{/returnType}}{{^returnType}}{{#useResponseAsReturnType}}: {{/useResponseAsReturnType}}{{/returnType}}{{^doNotUseRxAndCoroutines}}{{#useRxJava}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Unit{{/returnType}}{{/isResponseFile}}>{{/useRxJava}}{{#useRxJava2}}{{#returnType}}Single<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Single<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{#useCoroutines}}{{#useResponseAsReturnType}}Response<{{/useResponseAsReturnType}}{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}{{#useResponseAsReturnType}}Unit{{/useResponseAsReturnType}}{{/returnType}}{{/isResponseFile}}{{#useResponseAsReturnType}}>{{/useResponseAsReturnType}}{{/useCoroutines}}{{/doNotUseRxAndCoroutines}}{{#doNotUseRxAndCoroutines}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{^returnType}}Unit{{/returnType}}{{/isResponseFile}}>{{/doNotUseRxAndCoroutines}} {{/operation}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/explodedQueryParam.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/explodedQueryParam.mustache index 3aaa4e67fbf4..77c343c6d53b 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/explodedQueryParam.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/explodedQueryParam.mustache @@ -1 +1 @@ -@Query("{{baseName}}") {{{baseName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}} \ No newline at end of file +@Query("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") {{{baseName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/formParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/formParams.mustache index fe5c9db69053..c1d3f0a105f3 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/formParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/formParams.mustache @@ -1 +1 @@ -{{#isFormParam}}{{^isFile}}{{#isMultipart}}@Part{{/isMultipart}}{{^isMultipart}}@Field{{/isMultipart}}("{{baseName}}") {{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isFile}}{{#isFile}}{{#isMultipart}}@Part{{/isMultipart}}{{^isMultipart}}@Field("{{baseName}}"){{/isMultipart}} {{{paramName}}}: {{#isCollectionFormatMulti}}List<{{/isCollectionFormatMulti}}MultipartBody.Part{{#isCollectionFormatMulti}}>{{/isCollectionFormatMulti}}{{^required}}? = null{{/required}}{{/isFile}}{{/isFormParam}} \ No newline at end of file +{{#isFormParam}}{{^isFile}}{{#isMultipart}}@Part{{/isMultipart}}{{^isMultipart}}@Field{{/isMultipart}}("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") {{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isFile}}{{#isFile}}{{#isMultipart}}@Part{{/isMultipart}}{{^isMultipart}}@Field("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"){{/isMultipart}} {{{paramName}}}: {{#isCollectionFormatMulti}}List<{{/isCollectionFormatMulti}}MultipartBody.Part{{#isCollectionFormatMulti}}>{{/isCollectionFormatMulti}}{{^required}}? = null{{/required}}{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/headerParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/headerParams.mustache index 53f81b071750..8815c1992944 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/headerParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}@Header("{{baseName}}") {{{paramName}}}: {{#isEnum}}{{enumName}}{{operationIdCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}@Header("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") {{{paramName}}}: {{#isEnum}}{{enumName}}{{operationIdCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/pathParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/pathParams.mustache index 685c514e6a90..7365e28b8c6f 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/pathParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/pathParams.mustache @@ -1 +1 @@ -{{#isPathParam}}@Path("{{baseName}}") {{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isPathParam}} \ No newline at end of file +{{#isPathParam}}@Path("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") {{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isPathParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/queryParam.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/queryParam.mustache index 86ece566a3c2..fd327b4d2d22 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/queryParam.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/queryParam.mustache @@ -1 +1 @@ -@Query("{{baseName}}") {{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}@JvmSuppressWildcards {{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}} \ No newline at end of file +@Query("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") {{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}@JvmSuppressWildcards {{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/api.mustache index 2c4d5986aa8b..c74ad65cad95 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/api.mustache @@ -92,7 +92,7 @@ import {{packageName}}.infrastructure.* }}{{#bodyParams}}{{{paramName}}}{{/bodyParams}}{{/hasBodyParam}}{{^hasBodyParam}}{{! }}{{^hasFormParams}}null{{/hasFormParams}}{{! }}{{#hasFormParams}}mapOf({{#formParams}} - "{{{baseName}}}" to PartConfig(body = {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}, headers = mutableMapOf({{#contentType}}"Content-Type" to "{{contentType}}"{{/contentType}})),{{! + "{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}" to PartConfig(body = {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}, headers = mutableMapOf({{#contentType}}"Content-Type" to "{{contentType}}"{{/contentType}})),{{! }}{{/formParams}}){{/hasFormParams}}{{! }}{{/hasBodyParam}} val localVariableQuery = {{^hasQueryParams}}mutableMapOf>() @@ -101,17 +101,17 @@ import {{packageName}}.infrastructure.* {{#queryParams}} {{^required}} if ({{{paramName}}} != null) { - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } {{/required}} {{#required}} {{#isNullable}} if ({{{paramName}}} != null) { - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } {{/isNullable}} {{^isNullable}} - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) {{/isNullable}} {{/required}} {{/queryParams}} @@ -119,7 +119,7 @@ import {{packageName}}.infrastructure.* {{/hasQueryParams}} val localVariableHeaders: MutableMap = mutableMapOf({{#hasFormParams}}"Content-Type" to {{^consumes}}"multipart/form-data"{{/consumes}}{{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{/hasFormParams}}) {{#headerParams}} - {{{paramName}}}{{^required}}?{{/required}}.apply { localVariableHeaders["{{baseName}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } + {{{paramName}}}{{^required}}?{{/required}}.apply { localVariableHeaders["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } {{/headerParams}} {{^hasFormParams}}{{#hasConsumes}}{{#consumes}}localVariableHeaders["Content-Type"] = "{{{mediaType}}}" {{/consumes}}{{/hasConsumes}}{{/hasFormParams}}{{#hasProduces}}localVariableHeaders["Accept"] = "{{#produces}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}" @@ -127,13 +127,13 @@ import {{packageName}}.infrastructure.* val params = mutableMapOf( {{#pathParams}} - "{{baseName}}" to {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{/isContainer}}, + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" to {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{/isContainer}}, {{/pathParams}} ) return RequestConfig( method = RequestMethod.{{httpMethod}}, - path = "{{{path}}}", + path = "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}", params = params, query = localVariableQuery, headers = localVariableHeaders, diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/api.mustache index 8668d4bbf1c4..a74a09f81ed8 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/api.mustache @@ -94,7 +94,7 @@ import {{packageName}}.infrastructure.* }}{{#bodyParams}}{{{paramName}}}{{/bodyParams}}{{/hasBodyParam}}{{^hasBodyParam}}{{! }}{{^hasFormParams}}null{{/hasFormParams}}{{! }}{{#hasFormParams}}mapOf({{#formParams}} - "{{{baseName}}}" to PartConfig(body = {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}, headers = mutableMapOf({{#contentType}}"Content-Type" to "{{contentType}}"{{/contentType}})),{{! + "{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}" to PartConfig(body = {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}, headers = mutableMapOf({{#contentType}}"Content-Type" to "{{contentType}}"{{/contentType}})),{{! }}{{/formParams}}){{/hasFormParams}}{{! }}{{/hasBodyParam}} val localVariableQuery = {{^hasQueryParams}}mutableMapOf>() @@ -103,17 +103,17 @@ import {{packageName}}.infrastructure.* {{#queryParams}} {{^required}} if ({{{paramName}}} != null) { - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } {{/required}} {{#required}} {{#isNullable}} if ({{{paramName}}} != null) { - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } {{/isNullable}} {{^isNullable}} - put("{{baseName}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) + put("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue({{{paramName}}}.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString({{{paramName}}}){{/isDateTime}}{{#isDate}}parseDateToQueryString({{{paramName}}}){{/isDate}}{{^isDateTime}}{{^isDate}}{{{paramName}}}.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) {{/isNullable}} {{/required}} {{/queryParams}} @@ -121,7 +121,7 @@ import {{packageName}}.infrastructure.* {{/hasQueryParams}} val localVariableHeaders: MutableMap = mutableMapOf({{#hasFormParams}}"Content-Type" to {{^consumes}}"multipart/form-data"{{/consumes}}{{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{/hasFormParams}}) {{#headerParams}} - {{{paramName}}}{{^required}}?{{/required}}.apply { localVariableHeaders["{{baseName}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } + {{{paramName}}}{{^required}}?{{/required}}.apply { localVariableHeaders["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} } {{/headerParams}} {{^hasFormParams}}{{#hasConsumes}}{{#consumes}}localVariableHeaders["Content-Type"] = "{{{mediaType}}}" {{/consumes}}{{/hasConsumes}}{{/hasFormParams}}{{#hasProduces}}localVariableHeaders["Accept"] = "{{#produces}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}" @@ -129,13 +129,13 @@ import {{packageName}}.infrastructure.* val params = mutableMapOf( {{#pathParams}} - "{{baseName}}" to {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{/isContainer}}, + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" to {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{/isContainer}}, {{/pathParams}} ) return RequestConfig( method = RequestMethod.{{httpMethod}}, - path = "{{{path}}}", + path = "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}", params = params, query = localVariableQuery, headers = localVariableHeaders, diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-vertx/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-vertx/api.mustache index 9289029838fb..c0ee7584f859 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-vertx/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-vertx/api.mustache @@ -104,7 +104,7 @@ import {{packageName}}.infrastructure.* {{#isDeprecated}} @Deprecated(message = "This operation is deprecated.") {{/isDeprecated}} - {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{#useCoroutines}}suspend {{/useCoroutines}}fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) : {{^useCoroutines}}Future<{{/useCoroutines}}{{#returnType}}{{{returnType}}}{{#nullableReturnType}}{{^isResponseOptional}}?{{/isResponseOptional}}{{/nullableReturnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Unit{{/returnType}}{{^useCoroutines}}>{{/useCoroutines}} { + {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}{{#useCoroutines}}suspend {{/useCoroutines}}fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) : {{^useCoroutines}}Future<{{/useCoroutines}}{{#returnType}}{{{returnType}}}{{#nullableReturnType}}{{^isResponseOptional}}?{{/isResponseOptional}}{{/nullableReturnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Unit{{/returnType}}{{^useCoroutines}}>{{/useCoroutines}} { return {{operationId}}WithHttpInfo({{#allParams}}{{{paramName}}} = {{{paramName}}}{{^-last}}, {{/-last}}{{/allParams}}).map { localVarResponse -> when (localVarResponse.responseType) { ResponseType.Success -> {{#returnType}}(localVarResponse as Success<*>).data as {{{returnType}}}{{#nullableReturnType}}{{^isResponseOptional}}?{{/isResponseOptional}}{{/nullableReturnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Unit{{/returnType}} @@ -138,10 +138,10 @@ import {{packageName}}.infrastructure.* {{/isDeprecated}} {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}fun {{operationId}}WithHttpInfo({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}?{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) : Future> { val vertxClient = WebClient.create(vertx) - val request = vertxClient.requestAbs(HttpMethod.{{httpMethod}}, UriTemplate.of("$basePath{{{path}}}"{{#pathParams}}.replace("{"+"{{baseName}}"+"}", encodeURIComponent({{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}.toString(){{/isContainer}})){{/pathParams}})) + val request = vertxClient.requestAbs(HttpMethod.{{httpMethod}}, UriTemplate.of("$basePath{{{path}}}"{{#pathParams}}.replace("{"+"{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"+"}", encodeURIComponent({{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}.toString(){{/isContainer}})){{/pathParams}})) {{#hasFormParams}}request.putHeader("Content-Type", {{^consumes}}"multipart/form-data"{{/consumes}}{{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}){{/hasFormParams}} - {{#headerParams}}{{{paramName}}}{{^required}}?{{/required}}.apply { request.putHeader("{{baseName}}", {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}})}{{/headerParams}} + {{#headerParams}}{{{paramName}}}{{^required}}?{{/required}}.apply { request.putHeader("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}})}{{/headerParams}} {{^hasFormParams}}{{#hasConsumes}} {{#consumes}} request.putHeader("Content-Type", "{{{mediaType}}}") @@ -152,13 +152,13 @@ import {{packageName}}.infrastructure.* {{#hasFormParams}} val form = io.vertx.core.MultiMap.caseInsensitiveMultiMap(); {{#formParams}} - {{{paramName}}}{{^required}}?{{/required}}.let { form.add("{{{baseName}}}", {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{^isString}}.toString(){{/isString}}) } + {{{paramName}}}{{^required}}?{{/required}}.let { form.add("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}{{#isEnum}}{{^required}}?{{/required}}.value{{/isEnum}}{{^isString}}.toString(){{/isString}}) } {{/formParams}} {{/hasFormParams}} {{#hasQueryParams}} {{#queryParams}} - {{{paramName}}}{{^required}}?{{/required}}.let { request.queryParams().add("{{baseName}}", {{#isContainer}}toMultiValue(it.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString(it){{/isDateTime}}{{#isDate}}parseDateToQueryString(it){{/isDate}}{{^isDateTime}}{{^isDate}}it.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } + {{{paramName}}}{{^required}}?{{/required}}.let { request.queryParams().add("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}", {{#isContainer}}toMultiValue(it.toList(), "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{#isDateTime}}parseDateToQueryString(it){{/isDateTime}}{{#isDate}}parseDateToQueryString(it){{/isDate}}{{^isDateTime}}{{^isDate}}it.toString(){{/isDate}}{{/isDateTime}}){{/isContainer}}) } {{/queryParams}} {{/hasQueryParams}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/api.mustache index 03b5967ef63f..ea3de595aa98 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/api.mustache @@ -63,10 +63,10 @@ import {{packageName}}.infrastructure.CollectionFormats.* // to make it easy to override with your own. // create path and map variables - val path = "{{{path}}}"{{#pathParams}}.replace("{" + "{{baseName}}" + "}", {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}IRequestFactory.escapeString({{{paramName}}}.toString()){{/isContainer}}){{/pathParams}} + val path = "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"{{#pathParams}}.replace("{" + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" + "}", {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}IRequestFactory.escapeString({{{paramName}}}.toString()){{/isContainer}}){{/pathParams}} val formParams = mapOf({{^formParams}}){{/formParams}}{{#formParams}} - "{{baseName}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} ){{/-last}}{{/formParams}} @@ -74,12 +74,12 @@ import {{packageName}}.infrastructure.CollectionFormats.* // TODO, if its apikey auth, then add the header names here and the hardcoded auth key // Only support hard coded apikey in query param auth for when we do this first path val queryParams = mapOf({{^queryParams}}){{/queryParams}}{{#queryParams}} - "{{baseName}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} ){{/-last}}{{/queryParams}} .filter { it.value.isNotEmpty() } val headerParams: Map = mapOf({{^headerParams}}){{/headerParams}}{{#headerParams}} - "{{baseName}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" to IRequestFactory.parameterToString({{paramName}}){{^-last}},{{/-last}}{{#-last}} ){{/-last}}{{/headerParams}} return suspendCoroutine { continuation -> diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/formParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/formParams.mustache index 98427cd4817c..f7e2b033bf87 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/formParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/formParams.mustache @@ -1 +1 @@ -{{#isFormParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isFormParam}} \ No newline at end of file +{{#isFormParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/headerParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/headerParams.mustache index 3e5c64b2cd8e..930c51be322a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/headerParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/pathParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/pathParams.mustache index 4cc7de2240bd..1c6e564940f9 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/pathParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/pathParams.mustache @@ -1 +1 @@ -{{#isPathParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isPathParam}} \ No newline at end of file +{{#isPathParam}}{{{paramName}}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isPathParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/queryParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/queryParams.mustache index da0a0c0930ac..1efb9f29d838 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/queryParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-volley/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}{{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}{{{paramName}}}: {{#collectionFormat}}{{#isCollectionFormatMulti}}{{{dataType}}}{{/isCollectionFormatMulti}}{{^isCollectionFormatMulti}}{{{collectionFormat.toUpperCase}}}Params{{/isCollectionFormatMulti}}{{/collectionFormat}}{{^collectionFormat}}{{{dataType}}}{{/collectionFormat}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isQueryParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/multiplatform/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/multiplatform/api.mustache index a29af763c715..4529d1cf8d80 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/multiplatform/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/multiplatform/api.mustache @@ -64,7 +64,7 @@ import kotlinx.serialization.encoding.* {{#returnType}} @Suppress("UNCHECKED_CAST") {{/returnType}} - {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}open suspend fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}): HttpResponse<{{{returnType}}}{{^returnType}}Unit{{/returnType}}> { + {{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}open suspend fun {{operationId}}({{#allParams}}{{{paramName}}}: {{#isEnum}}{{#isContainer}}kotlin.collections.List<{{enumName}}{{operationIdCamelCase}}>{{/isContainer}}{{^isContainer}}{{enumName}}{{operationIdCamelCase}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#required}}{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{^isNumber}}{{#isEnum}}{{enumName}}{{operationIdCamelCase}}.{{enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}): HttpResponse<{{{returnType}}}{{^returnType}}Unit{{/returnType}}> { val localVariableAuthNames = listOf({{#authMethods}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}}) @@ -76,11 +76,11 @@ import kotlinx.serialization.encoding.* {{#formParams}} {{#isArray}} {{{paramName}}}?.onEach { - {{#isFile}}append(it){{/isFile}}{{^isFile}}append("{{{baseName}}}", it){{/isFile}} + {{#isFile}}append(it){{/isFile}}{{^isFile}}append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", it){{/isFile}} } {{/isArray}} {{^isArray}} - {{{paramName}}}?.apply { {{#isFile}}append({{{baseName}}}){{/isFile}}{{^isFile}}append("{{{baseName}}}", {{^isEnumOrRef}}{{{paramName}}}{{/isEnumOrRef}}{{#isEnumOrRef}}{{{paramName}}}.value{{/isEnumOrRef}}){{/isFile}} } + {{{paramName}}}?.apply { {{#isFile}}append({{{baseName}}}){{/isFile}}{{^isFile}}append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{^isEnumOrRef}}{{{paramName}}}{{/isEnumOrRef}}{{#isEnumOrRef}}{{{paramName}}}.value{{/isEnumOrRef}}){{/isFile}} } {{/isArray}} {{/formParams}} } @@ -88,7 +88,7 @@ import kotlinx.serialization.encoding.* {{^isMultipart}} ParametersBuilder().also { {{#formParams}} - {{{paramName}}}?.apply { it.append("{{{baseName}}}", {{{paramName}}}.toString()) } + {{{paramName}}}?.apply { it.append("{{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}}", {{{paramName}}}.toString()) } {{/formParams}} }.build() {{/isMultipart}} @@ -99,13 +99,13 @@ import kotlinx.serialization.encoding.* {{/hasBodyParam}} val localVariableQuery = mutableMapOf>(){{#queryParams}} - {{{paramName}}}?.apply { localVariableQuery["{{baseName}}"] = {{#isContainer}}toMultiValue(this, "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{^isEnumOrRef}}"${{{paramName}}}"{{/isEnumOrRef}}{{#isEnumOrRef}}"${ {{paramName}}.value }"{{/isEnumOrRef}}){{/isContainer}} }{{/queryParams}} + {{{paramName}}}?.apply { localVariableQuery["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}toMultiValue(this, "{{collectionFormat}}"){{/isContainer}}{{^isContainer}}listOf({{^isEnumOrRef}}"${{{paramName}}}"{{/isEnumOrRef}}{{#isEnumOrRef}}"${ {{paramName}}.value }"{{/isEnumOrRef}}){{/isContainer}} }{{/queryParams}} val localVariableHeaders = mutableMapOf(){{#headerParams}} - {{{paramName}}}?.apply { localVariableHeaders["{{baseName}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} }{{/headerParams}} + {{{paramName}}}?.apply { localVariableHeaders["{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"] = {{#isContainer}}this.joinToString(separator = collectionDelimiter("{{collectionFormat}}")){{/isContainer}}{{^isContainer}}this.toString(){{/isContainer}} }{{/headerParams}} val localVariableConfig = RequestConfig( RequestMethod.{{httpMethod}}, - "{{{path}}}"{{#pathParams}}.replace("{" + "{{baseName}}" + "}", {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{^isEnumOrRef}}"${{{paramName}}}"{{/isEnumOrRef}}{{#isEnumOrRef}}"${ {{paramName}}.value }"{{/isEnumOrRef}}{{/isContainer}}){{/pathParams}}, + "{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"{{#pathParams}}.replace("{" + "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}" + "}", {{#isContainer}}{{paramName}}.joinToString(","){{/isContainer}}{{^isContainer}}{{^isEnumOrRef}}"${{{paramName}}}"{{/isEnumOrRef}}{{#isEnumOrRef}}"${ {{paramName}}.value }"{{/isEnumOrRef}}{{/isContainer}}){{/pathParams}}, query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = {{#hasAuthMethods}}true{{/hasAuthMethods}}{{^hasAuthMethods}}false{{/hasAuthMethods}}, diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/model_room_init_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/model_room_init_var.mustache index 3e6f299d3d6e..bb5f29c1a357 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/model_room_init_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/model_room_init_var.mustache @@ -1 +1 @@ -{{#isNullable}}?{{/isNullable}}{{^required}}{{^isNullable}}?{{/isNullable}}{{/required}}{{#defaultvalue}} = {{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}{{#isNullable}} = null{{/isNullable}}{{^required}}{{^isNullable}} = null{{/isNullable}}{{/required}}{{/defaultvalue}} \ No newline at end of file +{{#isNullable}}?{{/isNullable}}{{^required}}{{^isNullable}}?{{/isNullable}}{{/required}}{{#defaultvalue}} = {{#lambda.escapeDollar}}{{defaultValue}}{{/lambda.escapeDollar}}{{/defaultvalue}}{{^defaultvalue}}{{#isNullable}} = null{{/isNullable}}{{^required}}{{^isNullable}} = null{{/isNullable}}{{/required}}{{/defaultvalue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/param_default_value.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/param_default_value.mustache index 1639fdc5374e..414ac6c6c513 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/param_default_value.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/param_default_value.mustache @@ -1 +1 @@ -{{^isNumber}}{{#isEnum}}{{#enumDefaultValue}}{{enumName}}{{operationIdCamelCase}}.{{.}}{{/enumDefaultValue}}{{^enumDefaultValue}}null{{/enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{{defaultValue}}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}} \ No newline at end of file +{{^isNumber}}{{#isEnum}}{{#enumDefaultValue}}{{enumName}}{{operationIdCamelCase}}.{{.}}{{/enumDefaultValue}}{{^enumDefaultValue}}null{{/enumDefaultValue}}{{/isEnum}}{{^isEnum}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isEnum}}{{/isNumber}}{{#isNumber}}{{{defaultValue}}}.toDouble(){{/isNumber}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache index 9d9f929aeed6..8a9b24c28d19 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache @@ -45,7 +45,7 @@ class {{classname}}Action @Inject constructor( {{#operation}} @{{httpMethod}}("{{{actionPathPrefix}}}{{path}}") - @Description("{{{summary}}}"){{#hasConsumes}} + @Description("{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}"){{#hasConsumes}} {{{actionRequestContentType}}}({{#consumes}}{{{actionRequestContentTypePrefix}}}.{{{mediaType}}}{{^-last}}, {{/-last}}{{/consumes}}){{/hasConsumes}}{{#hasProduces}} @ResponseContentType({{#produces}}MediaTypes.{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}){{/hasProduces}} {{#actionAnnotations}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/cookieParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/cookieParams.mustache index 028264a18bcf..201f3f863bbf 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/cookieParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/cookieParams.mustache @@ -1 +1 @@ -{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@CookieValue(name = "{{baseName}}"{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isCookieParam}} \ No newline at end of file +{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@CookieValue(name = "{{baseName}}"{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue = "{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}"{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isCookieParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/model.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/model.mustache index 88970ebaba28..416d4173488c 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/model.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/model.mustache @@ -23,7 +23,7 @@ data class {{classname}}( {{#description}} /** {{description}} */ {{/description}} - val {{{name}}}: {{{dataType}}}{{^required}}?{{/required}}{{#defaultValue}}{{#isNumber}} = {{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{^isNumber}} = {{{defaultValue}}}{{/isNumber}}{{/defaultValue}}{{^defaultValue}}{{^required}} = null{{/required}}{{/defaultValue}}{{^-last}},{{/-last}} + val {{{name}}}: {{{dataType}}}{{^required}}?{{/required}}{{#defaultValue}}{{#isNumber}} = {{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{^isNumber}} = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{/defaultValue}}{{^defaultValue}}{{^required}} = null{{/required}}{{/defaultValue}}{{^-last}},{{/-last}} {{/vars}} ) {{/isEnum}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/data_class_opt_var.mustache index a5885bca9b72..316f6f155d1e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/data_class_opt_var.mustache @@ -1,4 +1,4 @@ {{#description}} /* {{{.}}} */ {{/description}} - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/data_class_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/data_class_req_var.mustache index 4adcedf78cba..3d31e95d0f55 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/data_class_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/data_class_req_var.mustache @@ -2,4 +2,4 @@ /* {{{.}}} */ {{/description}} {{! Note that required properties may be nullable according to the OpenAPI specification. }} - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/Main.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/Main.kt.mustache index f3c418d21f73..d3ece4bc8a40 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/Main.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/Main.kt.mustache @@ -23,7 +23,7 @@ fun main() { {{#apis}} {{#operations}} {{#operation}} - {{#lowercase}}{{httpMethod}}{{/lowercase}}("{{{path}}}", {{classname}}::{{operationId}}) + {{#lowercase}}{{httpMethod}}{{/lowercase}}("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}", {{classname}}::{{operationId}}) {{/operation}} {{/operations}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_opt_var.mustache index dfbcaafa2062..09b39c74f4d5 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_opt_var.mustache @@ -3,4 +3,4 @@ {{/description}} {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} @field:com.fasterxml.jackson.annotation.JsonProperty("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_req_var.mustache index 94bf2e8d24b5..1ab6409a1f4b 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/data_class_req_var.mustache @@ -3,4 +3,4 @@ {{/description}} {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} @field:com.fasterxml.jackson.annotation.JsonProperty("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/paramDefault.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/paramDefault.mustache index dd5fc214c553..f518c90460bf 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/paramDefault.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin5/paramDefault.mustache @@ -1,2 +1,2 @@ -{{#defaultValue}} ?:{{#isInteger}}{{{defaultValue}}}{{/isInteger}}{{#isLong}}{{{defaultValue}}}L{{/isLong}}{{#isShort}}{{{defaultValue}}}.toShort(){{/isShort}}{{#isDouble}}{{{defaultValue}}}.toDouble(){{/isDouble}}{{#isFloat}}{{{defaultValue}}}f{{/isFloat}}{{#isEnum}}{{{dataType}}}.valueOf("{{{defaultValue}}}"){{/isEnum}}{{#isBoolean}}{{{defaultValue}}}{{/isBoolean}}{{#isString}}"{{{defaultValue}}}"{{/isString}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}} +{{#defaultValue}} ?:{{#isInteger}}{{{defaultValue}}}{{/isInteger}}{{#isLong}}{{{defaultValue}}}L{{/isLong}}{{#isShort}}{{{defaultValue}}}.toShort(){{/isShort}}{{#isDouble}}{{{defaultValue}}}.toDouble(){{/isDouble}}{{#isFloat}}{{{defaultValue}}}f{{/isFloat}}{{#isEnum}}{{{dataType}}}.valueOf("{{{defaultValue}}}"){{/isEnum}}{{#isBoolean}}{{{defaultValue}}}{{/isBoolean}}{{#isString}}"{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}"{{/isString}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}} {{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/Main.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/Main.kt.mustache index c34133013593..01bb295275c4 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/Main.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/Main.kt.mustache @@ -23,7 +23,7 @@ fun main() { {{#apis}} {{#operations}} {{#operation}} - path("{{path}}") { {{#lowercase}}{{httpMethod}}{{/lowercase}}({{#camelcase}}{{classname}}{{/camelcase}}::{{operationId}}) } + path("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") { {{#lowercase}}{{httpMethod}}{{/lowercase}}({{#camelcase}}{{classname}}{{/camelcase}}::{{operationId}}) } {{/operation}} {{/operations}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_opt_var.mustache index dfbcaafa2062..09b39c74f4d5 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_opt_var.mustache @@ -3,4 +3,4 @@ {{/description}} {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} @field:com.fasterxml.jackson.annotation.JsonProperty("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_req_var.mustache index 94bf2e8d24b5..1ab6409a1f4b 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/data_class_req_var.mustache @@ -3,4 +3,4 @@ {{/description}} {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} @field:com.fasterxml.jackson.annotation.JsonProperty("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/paramDefault.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/paramDefault.mustache index dd5fc214c553..f518c90460bf 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/paramDefault.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/javalin6/paramDefault.mustache @@ -1,2 +1,2 @@ -{{#defaultValue}} ?:{{#isInteger}}{{{defaultValue}}}{{/isInteger}}{{#isLong}}{{{defaultValue}}}L{{/isLong}}{{#isShort}}{{{defaultValue}}}.toShort(){{/isShort}}{{#isDouble}}{{{defaultValue}}}.toDouble(){{/isDouble}}{{#isFloat}}{{{defaultValue}}}f{{/isFloat}}{{#isEnum}}{{{dataType}}}.valueOf("{{{defaultValue}}}"){{/isEnum}}{{#isBoolean}}{{{defaultValue}}}{{/isBoolean}}{{#isString}}"{{{defaultValue}}}"{{/isString}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}} +{{#defaultValue}} ?:{{#isInteger}}{{{defaultValue}}}{{/isInteger}}{{#isLong}}{{{defaultValue}}}L{{/isLong}}{{#isShort}}{{{defaultValue}}}.toShort(){{/isShort}}{{#isDouble}}{{{defaultValue}}}.toDouble(){{/isDouble}}{{#isFloat}}{{{defaultValue}}}f{{/isFloat}}{{#isEnum}}{{{dataType}}}.valueOf("{{{defaultValue}}}"){{/isEnum}}{{#isBoolean}}{{{defaultValue}}}{{/isBoolean}}{{#isString}}"{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}"{{/isString}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}}{{#isUuid}}"UUID.fromString({{{defaultValue}}})"{{/isUuid}} {{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/api.mustache index 6794c91ecd4f..9d4a6cb2068c 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/api.mustache @@ -15,7 +15,7 @@ import java.io.InputStream import {{javaxPackage}}.validation.Valid{{/useBeanValidation}} {{#useSwaggerAnnotations}} -@Api(description = "the {{{baseName}}} API"){{/useSwaggerAnnotations}}{{#hasConsumes}} +@Api(description = "the {{#lambda.escapeDollar}}{{{baseName}}}{{/lambda.escapeDollar}} API"){{/useSwaggerAnnotations}}{{#hasConsumes}} @Consumes({ {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} }){{/hasConsumes}}{{#hasProduces}} @Produces({ {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} }){{/hasProduces}} @Path("/") diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiInterface.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiInterface.mustache index 7994ec111f21..63ba661f7d85 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiInterface.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiInterface.mustache @@ -1,13 +1,13 @@ @{{httpMethod}} - @Path("{{{path}}}"){{#hasConsumes}} + @Path("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"){{#hasConsumes}} @Consumes({{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}}){{/hasConsumes}}{{#hasProduces}} @Produces({{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}){{/hasProduces}}{{#useSwaggerAnnotations}} - @ApiOperation(value = "{{{summary}}}", notes = "{{{notes}}}"{{#hasAuthMethods}}, authorizations = { + @ApiOperation(value = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", notes = "{{#lambda.escapeDollar}}{{{notes}}}{{/lambda.escapeDollar}}"{{#hasAuthMethods}}, authorizations = { {{#authMethods}}{{#isOAuth}}@Authorization(value = "{{name}}", scopes = { {{#scopes}}@AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}} }){{^-last}},{{/-last}}{{/isOAuth}} {{^isOAuth}}@Authorization(value = "{{name}}"){{^-last}},{{/-last}} {{/isOAuth}}{{/authMethods}} }{{/hasAuthMethods}}, tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{^-last}}, {{/-last}}{{/vendorExtensions.x-tags}} }) @ApiResponses(value = { {{#responses}} - @ApiResponse(code = {{{code}}}, message = "{{{message}}}", response = {{{baseType}}}.class{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}){{^-last}},{{/-last}}{{/responses}} }){{/useSwaggerAnnotations}} + @ApiResponse(code = {{{code}}}, message = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}", response = {{{baseType}}}.class{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}){{^-last}},{{/-last}}{{/responses}} }){{/useSwaggerAnnotations}} {{#useCoroutines}}suspend {{/useCoroutines}}fun {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}){{#returnResponse}}: {{#useMutiny}}io.smallrye.mutiny.Uni<{{/useMutiny}}Response{{#useMutiny}}>{{/useMutiny}}{{/returnResponse}}{{^returnResponse}}{{#returnType}}: {{#useMutiny}}io.smallrye.mutiny.Uni<{{/useMutiny}}{{{returnType}}}{{#useMutiny}}>{{/useMutiny}}{{/returnType}}{{/returnResponse}}{{^returnResponse}}{{^returnType}}{{#useMutiny}}: io.smallrye.mutiny.Uni{{/useMutiny}}{{/returnType}}{{/returnResponse}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiMethod.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiMethod.mustache index bfe70607f176..5aef978f13a1 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiMethod.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/apiMethod.mustache @@ -1,15 +1,15 @@ @{{httpMethod}}{{#subresourceOperation}} - @Path("{{{path}}}"){{/subresourceOperation}}{{#hasConsumes}} + @Path("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}"){{/subresourceOperation}}{{#hasConsumes}} @Consumes({{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}}){{/hasConsumes}}{{#hasProduces}} @Produces({{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}){{/hasProduces}}{{#useSwaggerAnnotations}} - @ApiOperation(value = "{{{summary}}}", notes = "{{{notes}}}", response = {{{returnBaseType}}}.class{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = { + @ApiOperation(value = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", notes = "{{#lambda.escapeDollar}}{{{notes}}}{{/lambda.escapeDollar}}", response = {{{returnBaseType}}}.class{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = { {{#authMethods}}{{#isOAuth}}@Authorization(value = "{{name}}", scopes = { {{#scopes}}@AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}} }){{^-last}},{{/-last}}{{/isOAuth}} {{^isOAuth}}@Authorization(value = "{{name}}"){{^-last}},{{/-last}} {{/isOAuth}}{{/authMethods}} }{{/hasAuthMethods}}, tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{^-last}}, {{/-last}}{{/vendorExtensions.x-tags}} }) @ApiResponses(value = { {{#responses}} - @ApiResponse(code = {{{code}}}, message = "{{{message}}}", response = {{{baseType}}}.class{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}} + @ApiResponse(code = {{{code}}}, message = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}", response = {{{baseType}}}.class{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}} }){{/useSwaggerAnnotations}} {{#useCoroutines}}suspend {{/useCoroutines}}fun {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>cookieParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}): Response { return Response.ok().entity("magic!").build(); diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/cookieParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/cookieParams.mustache index a2d0343c1730..f5e1a1bc7703 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/cookieParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/cookieParams.mustache @@ -1 +1 @@ -{{#isCookieParam}}@CookieParam("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{^isContainer}}{{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{{.}}}{{/lambda.doublequote}}){{/defaultValue}}{{/isContainer}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isCookieParam}} \ No newline at end of file +{{#isCookieParam}}@CookieParam("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{^isContainer}}{{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/lambda.doublequote}}){{/defaultValue}}{{/isContainer}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isCookieParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/data_class_opt_var.mustache index f277f71da441..1cb18b448f81 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/data_class_opt_var.mustache @@ -3,4 +3,4 @@ {{/description}} @JsonProperty("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") -{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file +{{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/headerParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/headerParams.mustache index b637f85e0501..781e353740e0 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/headerParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}@HeaderParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationHeaderParams}}{{/useBeanValidation}} {{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{{.}}}{{/lambda.doublequote}}){{/defaultValue}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}@HeaderParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationHeaderParams}}{{/useBeanValidation}} {{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/lambda.doublequote}}){{/defaultValue}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/queryParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/queryParams.mustache index 690cef49eb48..ed8236df6b8e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/queryParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/jaxrs-spec/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}@QueryParam("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{^isContainer}}{{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{{.}}}{{/lambda.doublequote}}){{/defaultValue}}{{/isContainer}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}@QueryParam("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{^isContainer}}{{#defaultValue}} @DefaultValue({{#lambda.doublequote}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/lambda.doublequote}}){{/defaultValue}}{{/isContainer}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{.}}"){{/description}}{{/useSwaggerAnnotations}} {{paramName}}: {{{dataType}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^defaultValue}}{{^required}}?{{/required}}{{/defaultValue}}{{/isNullable}}{{/isQueryParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/Paths.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/Paths.kt.mustache index 37369e01463b..03152f85a8e7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/Paths.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/Paths.kt.mustache @@ -18,10 +18,10 @@ object Paths { {{#allParams}}* @param {{paramName}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}} {{/allParams}}*/ {{#hasParams}} - @Resource("{{{path}}}") class {{operationId}}({{#vendorExtensions.ktor-params}}val {{paramName}}: {{{dataType}}}{{^required}}? = null{{/required}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^-last}}, {{/-last}}{{/vendorExtensions.ktor-params}}) + @Resource("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") class {{operationId}}({{#vendorExtensions.ktor-params}}val {{paramName}}: {{{dataType}}}{{^required}}? = null{{/required}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^-last}}, {{/-last}}{{/vendorExtensions.ktor-params}}) {{/hasParams}} {{^hasParams}} - @Resource("{{{path}}}") class {{operationId}} + @Resource("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") class {{operationId}} {{/hasParams}} {{/operation}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/api.mustache index 885ba6ae50dc..2e0d5c6278af 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/api.mustache @@ -31,7 +31,7 @@ fun Route.{{classname}}() { {{/authMethods}} {{/hasAuthMethods}} {{^featureResources}} - route("{{path}}") { + route("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") { {{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}} { {{#lambda.indented_12}}{{>libraries/ktor/_api_body}}{{/lambda.indented_12}} } diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/Paths.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/Paths.kt.mustache index a575ea678772..f8ae4059bd2f 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/Paths.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/Paths.kt.mustache @@ -18,10 +18,10 @@ object Paths { {{#allParams}}* @param {{paramName}} {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}} {{/allParams}}*/ {{#hasParams}} - @Serializable @Resource("{{{path}}}") class {{operationId}}({{#allParams}}val {{paramName}}: {{{dataType}}}{{^required}}? = null{{/required}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) + @Serializable @Resource("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") class {{operationId}}({{#allParams}}val {{paramName}}: {{{dataType}}}{{^required}}? = null{{/required}}{{#required}}{{#isNullable}}?{{/isNullable}}{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) {{/hasParams}} {{^hasParams}} - @Serializable @Resource("{{{path}}}") class {{operationId}} + @Serializable @Resource("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") class {{operationId}} {{/hasParams}} {{/operation}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/api.mustache index 5c139b28effb..852a676ce648 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/api.mustache @@ -33,7 +33,7 @@ fun Route.{{classname}}() { {{/authMethods}} {{/hasAuthMethods}} {{^featureResources}} - route("{{path}}") { + route("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}") { {{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}} { {{#lambda.indented_12}}{{>libraries/ktor2/_api_body}}{{/lambda.indented_12}} } diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_opt_var.mustache index a5885bca9b72..316f6f155d1e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_opt_var.mustache @@ -1,4 +1,4 @@ {{#description}} /* {{{.}}} */ {{/description}} - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_req_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_req_var.mustache index 4adcedf78cba..3d31e95d0f55 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_req_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor2/data_class_req_var.mustache @@ -2,4 +2,4 @@ /* {{{.}}} */ {{/description}} {{! Note that required properties may be nullable according to the OpenAPI specification. }} - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{{classname}}}.{{{nameInPascalCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache index e73afb7f3630..cecfbde092e7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache @@ -73,25 +73,27 @@ class {{classname}}Controller({{#serviceInterface}}@Autowired(required = true) v }}{{/useResponseEntity}}{{! }}{{#swagger2AnnotationLibrary}}{{! }} @Operation( - summary = "{{{summary}}}", + summary = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", operationId = "{{{operationId}}}", - description = """{{{unescapedNotes}}}""", + description = """{{#lambda.escapeDollarInMultiline}}{{{unescapedNotes}}}{{/lambda.escapeDollarInMultiline}}""", responses = [{{#responses}} - ApiResponse(responseCode = "{{{code}}}", description = "{{{message}}}"{{#baseType}}, content = [Content({{#isArray}}array = ArraySchema({{/isArray}}schema = Schema(implementation = {{{baseType}}}::class)){{#isArray}}){{/isArray}}]{{/baseType}}){{^-last}},{{/-last}}{{/responses}} ]{{#hasAuthMethods}}, + ApiResponse(responseCode = "{{{code}}}", description = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}"{{#baseType}}, content = [Content({{#isArray}}array = ArraySchema({{/isArray}}schema = Schema(implementation = {{{baseType}}}::class)){{#isArray}}){{/isArray}}]{{/baseType}}){{^-last}},{{/-last}}{{/responses}} ]{{#hasAuthMethods}}, security = [ {{#authMethods}}SecurityRequirement(name = "{{name}}"{{#isOAuth}}, scopes = [ {{#scopes}}"{{scope}}"{{^-last}}, {{/-last}}{{/scopes}} ]{{/isOAuth}}){{^-last}},{{/-last}}{{/authMethods}} ]{{/hasAuthMethods}} ){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} @ApiOperation( - value = "{{{summary}}}", + value = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", nickname = "{{{operationId}}}", - notes = "{{{notes}}}"{{#returnBaseType}}, + notes = "{{#lambda.escapeDollar}}{{{notes}}}{{/lambda.escapeDollar}}"{{#returnBaseType}}, response = {{{.}}}::class{{/returnBaseType}}{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}{{#hasAuthMethods}}, - authorizations = [{{#authMethods}}Authorization(value = "{{name}}"{{#isOAuth}}, scopes = [{{#scopes}}AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}}]{{/isOAuth}}){{^-last}}, {{/-last}}{{/authMethods}}]{{/hasAuthMethods}}) + authorizations = [{{#authMethods}}Authorization(value = "{{name}}"{{#isOAuth}}, scopes = [{{#scopes}}AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}}]{{/isOAuth}}){{^-last}}, {{/-last}}{{/authMethods}}]{{/hasAuthMethods}} + ) @ApiResponses( - value = [{{#responses}}ApiResponse(code = {{{code}}}, message = "{{{message}}}"{{#baseType}}, response = {{{.}}}::class{{/baseType}}{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}}]){{/swagger1AnnotationLibrary}} + value = [{{#responses}}ApiResponse(code = {{{code}}}, message = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}"{{#baseType}}, response = {{{.}}}::class{{/baseType}}{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}}] + ){{/swagger1AnnotationLibrary}} @RequestMapping( method = [RequestMethod.{{httpMethod}}], - value = [PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}} /* "{{#lambdaEscapeInNormalString}}{{{path}}}{{/lambdaEscapeInNormalString}}" */]{{#singleContentTypes}}{{#hasProduces}}, + value = [PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}} /* "{{{path}}}" */]{{#singleContentTypes}}{{#hasProduces}}, produces = [{{#vendorExtensions.x-accepts}}"{{{.}}}"{{^-last}}, {{/-last}}{{/vendorExtensions.x-accepts}}]{{/hasProduces}}{{#hasConsumes}}, consumes = "{{{vendorExtensions.x-content-type}}}"{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}}, produces = [{{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}]{{/hasProduces}}{{#hasConsumes}}, @@ -111,7 +113,7 @@ class {{classname}}Controller({{#serviceInterface}}@Autowired(required = true) v const val BASE_PATH: String = "{{=<% %>=}}<%contextPath%><%={{ }}=%>" {{/useRequestMappingOnController}} {{#operation}} - const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{{path}}}" + const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{#lambdaEscapeInNormalString}}{{{path}}}{{/lambdaEscapeInNormalString}}" {{/operation}} } } diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/apiInterface.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/apiInterface.mustache index 0f1dcbd41551..7f43bfeded66 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/apiInterface.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/apiInterface.mustache @@ -85,28 +85,28 @@ interface {{classname}} { }}{{#swagger2AnnotationLibrary}}{{! }} @Operation( tags = [{{#tags}}"{{{name}}}",{{/tags}}], - summary = "{{{summary}}}", + summary = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", operationId = "{{{operationId}}}", - description = """{{{unescapedNotes}}}""", + description = """{{#lambda.escapeDollarInMultiline}}{{{unescapedNotes}}}{{/lambda.escapeDollarInMultiline}}""", responses = [{{#responses}} - ApiResponse(responseCode = "{{{code}}}", description = "{{{message}}}"{{#baseType}}, content = [Content({{#isArray}}array = ArraySchema({{/isArray}}schema = Schema(implementation = {{{baseType}}}::class)){{#isArray}}){{/isArray}}]{{/baseType}}){{^-last}},{{/-last}}{{/responses}} + ApiResponse(responseCode = "{{{code}}}", description = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}"{{#baseType}}, content = [Content({{#isArray}}array = ArraySchema({{/isArray}}schema = Schema(implementation = {{{baseType}}}::class)){{#isArray}}){{/isArray}}]{{/baseType}}){{^-last}},{{/-last}}{{/responses}} ]{{#hasAuthMethods}}, security = [ {{#authMethods}}SecurityRequirement(name = "{{name}}"{{#isOAuth}}, scopes = [ {{#scopes}}"{{scope}}"{{^-last}}, {{/-last}}{{/scopes}} ]{{/isOAuth}}){{^-last}},{{/-last}}{{/authMethods}} ]{{/hasAuthMethods}} ){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} @ApiOperation( - value = "{{{summary}}}", + value = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", nickname = "{{{operationId}}}", - notes = "{{{notes}}}"{{#returnBaseType}}, + notes = "{{#lambda.escapeDollar}}{{{notes}}}{{/lambda.escapeDollar}}"{{#returnBaseType}}, response = {{{.}}}::class{{/returnBaseType}}{{#returnContainer}}, responseContainer = "{{{.}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = [{{#authMethods}}Authorization(value = "{{name}}"{{#isOAuth}}, scopes = [{{#scopes}}AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}}]{{/isOAuth}}){{^-last}}, {{/-last}}{{/authMethods}}]{{/hasAuthMethods}} ) @ApiResponses( - value = [{{#responses}}ApiResponse(code = {{{code}}}, message = "{{{message}}}"{{#baseType}}, response = {{{.}}}::class{{/baseType}}{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}}, {{/-last}}{{/responses}}] + value = [{{#responses}}ApiResponse(code = {{{code}}}, message = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}"{{#baseType}}, response = {{{.}}}::class{{/baseType}}{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}}, {{/-last}}{{/responses}}] ){{/swagger1AnnotationLibrary}} @RequestMapping( method = [RequestMethod.{{httpMethod}}], - value = [PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}} /* "{{#lambdaEscapeInNormalString}}{{{path}}}{{/lambdaEscapeInNormalString}}" */]{{#singleContentTypes}}{{#hasProduces}}, + value = [PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}} /* "{{{path}}}" */]{{#singleContentTypes}}{{#hasProduces}}, produces = [{{#vendorExtensions.x-accepts}}"{{{.}}}"{{^-last}}, {{/-last}}{{/vendorExtensions.x-accepts}}]{{/hasProduces}}{{#hasConsumes}}, consumes = "{{{vendorExtensions.x-content-type}}}"{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}}, produces = [{{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}]{{/hasProduces}}{{#hasConsumes}}, @@ -131,7 +131,7 @@ interface {{classname}} { const val BASE_PATH: String = "{{=<% %>=}}<%contextPath%><%={{ }}=%>" {{/useRequestMappingOnInterface}} {{#operation}} - const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{{path}}}" + const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{#lambdaEscapeInNormalString}}{{{path}}}{{/lambdaEscapeInNormalString}}" {{/operation}} } } diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/bodyParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/bodyParams.mustache index b4f03475cd0b..c8f2f053320a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/bodyParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/bodyParams.mustache @@ -1 +1 @@ -{{#isBodyParam}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"], defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"]){{/defaultValue}}{{/allowableValues}}{{/isContainer}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}, allowableValues = "{{{.}}}"{{/allowableValues}}{{/isContainer}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{>beanValidationBodyParams}}{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{{paramName}}}: {{^reactive}}{{>optionalDataType}}{{/reactive}}{{#reactive}}{{^isArray}}{{>optionalDataType}}{{/isArray}}{{#isArray}}Flow<{{{baseType}}}>{{/isArray}}{{/reactive}}{{/isBodyParam}} \ No newline at end of file +{{#isBodyParam}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"], defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"]){{/defaultValue}}{{/allowableValues}}{{/isContainer}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}, allowableValues = "{{{.}}}"{{/allowableValues}}{{/isContainer}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{>beanValidationBodyParams}}{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{{paramName}}}: {{^reactive}}{{>optionalDataType}}{{/reactive}}{{#reactive}}{{^isArray}}{{>optionalDataType}}{{/isArray}}{{#isArray}}Flow<{{{baseType}}}>{{/isArray}}{{/reactive}}{{/isBodyParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/cookieParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/cookieParams.mustache index 028264a18bcf..9bc91ea16229 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/cookieParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/cookieParams.mustache @@ -1 +1 @@ -{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@CookieValue(name = "{{baseName}}"{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isCookieParam}} \ No newline at end of file +{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@CookieValue(name = "{{#lambdaEscapeInNormalString}}{{{baseName}}}{{/lambdaEscapeInNormalString}}"{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue = "{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}"{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isCookieParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache index 5f597f12a591..dd5224fb60b8 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache @@ -1,7 +1,7 @@ /** - * {{{description}}} + * {{{unescapedDescription}}} {{#vars}} - * @param {{name}} {{{description}}} + * @param {{name}} {{{unescapedDescription}}} {{/vars}} */{{#discriminator}} {{>typeInfoAnnotation}}{{/discriminator}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassOptVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassOptVar.mustache index ab575d4bf9d3..48119eac68c1 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassOptVar.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassOptVar.mustache @@ -1,6 +1,6 @@ {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}} - @Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} - @ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#deprecated}} + @Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} + @ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger1AnnotationLibrary}}{{#deprecated}} @Deprecated(message = ""){{/deprecated}}{{#vendorExtensions.x-field-extra-annotation}} {{{.}}}{{/vendorExtensions.x-field-extra-annotation}} - @get:JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + @get:JsonProperty("{{#lambdaEscapeInNormalString}}{{{baseName}}}{{/lambdaEscapeInNormalString}}"){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassReqVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassReqVar.mustache index 92e2875ac08a..2aa5b66a96f7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassReqVar.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/dataClassReqVar.mustache @@ -1,5 +1,5 @@ {{#useBeanValidation}}{{>beanValidation}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}} - @Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} - @ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} + @Schema({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} + @ApiModelProperty({{#example}}example = "{{#lambdaRemoveLineBreak}}{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}{{/lambdaRemoveLineBreak}}", {{/example}}required = true, {{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} {{{.}}}{{/vendorExtensions.x-field-extra-annotation}} - @get:JsonProperty("{{{baseName}}}", required = true){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{{defaultValue}}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file + @get:JsonProperty("{{#lambdaEscapeInNormalString}}{{{baseName}}}{{/lambdaEscapeInNormalString}}", required = true){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{baseType}}<{{/isArray}}{{classname}}.{{{nameInPascalCase}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}{{#defaultValue}} = {{^isNumber}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/isNumber}}{{#isNumber}}{{{dataType}}}("{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}"){{/isNumber}}{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/formParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/formParams.mustache index 456af893718f..a4d6044d5bff 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/formParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/formParams.mustache @@ -1 +1 @@ -{{#isFormParam}}{{^isFile}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid {{/useBeanValidation}}{{#isModel}}@RequestPart{{/isModel}}{{^isModel}}@RequestParam{{/isModel}}(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{paramName}}}: {{>optionalDataType}}{{/isFile}}{{#isFile}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}") {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "file detail") {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestPart("{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{paramName}}}: {{>optionalDataType}}{{/isFile}}{{/isFormParam}} \ No newline at end of file +{{#isFormParam}}{{^isFile}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{unescapedDescription}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{unescapedDescription}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid {{/useBeanValidation}}{{#isModel}}@RequestPart{{/isModel}}{{^isModel}}@RequestParam{{/isModel}}(value = "{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{paramName}}}: {{>optionalDataType}}{{/isFile}}{{#isFile}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{unescapedDescription}}}{{/lambda.escapeDollar}}") {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "file detail") {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestPart("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{paramName}}}: {{>optionalDataType}}{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/generatedCodeWarning.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/generatedCodeWarning.mustache new file mode 100644 index 000000000000..de30078ab3ab --- /dev/null +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/generatedCodeWarning.mustache @@ -0,0 +1,5 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) ({{{generatorVersion}}}). + * https://openapi-generator.tech + * Do not edit the class manually. + */ \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/headerParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/headerParams.mustache index 0c2678f1bf67..00bd70f7823a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/headerParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}{{#useBeanValidation}}{{>beanValidationCore}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}", `in` = ParameterIn.HEADER{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}@RequestHeader(value = "{{baseName}}", required = {{#required}}true{{/required}}{{^required}}false{{/required}}{{#defaultValue}}, defaultValue = {{^isString}}"{{{.}}}"{{/isString}}{{#isString}}{{#isEnum}}"{{{.}}}"{{/isEnum}}{{^isEnum}}{{{.}}}{{/isEnum}}{{/isString}}{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}{{#useBeanValidation}}{{>beanValidationCore}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}", `in` = ParameterIn.HEADER{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}@RequestHeader(value = "{{baseName}}", required = {{#required}}true{{/required}}{{^required}}false{{/required}}{{#defaultValue}}, defaultValue = {{^isString}}"{{{.}}}"{{/isString}}{{#isString}}{{#isEnum}}"{{{.}}}"{{/isEnum}}{{^isEnum}}{{{.}}}{{/isEnum}}{{/isString}}{{/defaultValue}}) {{{paramName}}}: {{>optionalDataType}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache index 3fa63ad64876..a2e30f2d7e3f 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache @@ -1,5 +1,5 @@ {{#swagger2AnnotationLibrary}} - @get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} - @get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} + @get:Schema({{#example}}example = "{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} + @get:ApiModelProperty({{#example}}example = "{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} {{{.}}}{{/vendorExtensions.x-field-extra-annotation}} - {{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}}{{/discriminator}} + {{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}}{{/discriminator}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache index 8f0fb71ba319..8e1fc992e14a 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache @@ -1,5 +1,5 @@ {{#swagger2AnnotationLibrary}} - @get:Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} - @get:ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} + @get:Schema({{#example}}example = "{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}} + @get:ApiModelProperty({{#example}}example = "{{#lambdaEscapeInNormalString}}{{{.}}}{{/lambdaEscapeInNormalString}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"){{/swagger1AnnotationLibrary}}{{#vendorExtensions.x-field-extra-annotation}} {{{.}}}{{/vendorExtensions.x-field-extra-annotation}} {{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/apiInterface.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/apiInterface.mustache index 876a558db0b9..1f0d5786ac67 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/apiInterface.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/apiInterface.mustache @@ -83,7 +83,7 @@ interface {{classname}} { const val BASE_PATH: String = "{{=<% %>=}}<%contextPath%><%={{ }}=%>" {{/useRequestMappingOnInterface}} {{#operation}} - const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{{path}}}" + const val PATH_{{#lambda.uppercase}}{{#lambda.snakecase}}{{{operationId}}}{{/lambda.snakecase}}{{/lambda.uppercase}}: String = "{{#lambdaEscapeInNormalString}}{{{path}}}{{/lambdaEscapeInNormalString}}" {{/operation}} } } diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/httpInterfaceBodyParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/httpInterfaceBodyParams.mustache index e884046f7d6d..168d0b9b7146 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/httpInterfaceBodyParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/libraries/spring-declarative-http-interface/httpInterfaceBodyParams.mustache @@ -1 +1 @@ -{{#isBodyParam}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"], defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"]){{/defaultValue}}{{/allowableValues}}{{/isContainer}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}, allowableValues = "{{{.}}}"{{/allowableValues}}{{/isContainer}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{>beanValidationBodyParams}}{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{{paramName}}}: {{>optionalDataType}}{{/isBodyParam}} \ No newline at end of file +{{#isBodyParam}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"], defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = ["{{{allowableValues}}}"]){{/defaultValue}}{{/allowableValues}}{{/isContainer}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{^isContainer}}{{#allowableValues}}, allowableValues = "{{{.}}}"{{/allowableValues}}{{/isContainer}}{{#defaultValue}}, defaultValue = "{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{>beanValidationBodyParams}}{{/useBeanValidation}} @RequestBody{{^required}}(required = false){{/required}} {{{paramName}}}: {{>optionalDataType}}{{/isBodyParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/pathParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/pathParams.mustache index 2e28d18c78fa..0693a20ec36e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/pathParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/pathParams.mustache @@ -1 +1 @@ -{{#isPathParam}}{{#useBeanValidation}}{{>beanValidationPathParams}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}@PathVariable("{{baseName}}") {{{paramName}}}: {{>optionalDataType}}{{/isPathParam}} \ No newline at end of file +{{#isPathParam}}{{#useBeanValidation}}{{>beanValidationPathParams}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}) {{/swagger1AnnotationLibrary}}@PathVariable("{{#lambdaEscapeInNormalString}}{{baseName}}{{/lambdaEscapeInNormalString}}") {{{paramName}}}: {{>optionalDataType}}{{/isPathParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/queryParams.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/queryParams.mustache index 27d7e286bb33..035e944ed193 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/queryParams.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{^isContainer}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{/useBeanValidation}}{{^isModel}} @RequestParam(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{^isContainer}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}){{/isModel}}{{#isDate}} @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE){{/isDate}}{{#isDateTime}} @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE_TIME){{/isDateTime}} {{{paramName}}}: {{>optionalDataType}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#swagger2AnnotationLibrary}}@Parameter(description = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}{{#defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]{{^isContainer}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/isContainer}}){{/defaultValue}}{{/allowableValues}}{{#allowableValues}}{{^defaultValue}}, schema = Schema(allowableValues = [{{#values}}"{{{.}}}"{{^-last}}, {{/-last}}{{/values}}]){{/defaultValue}}{{/allowableValues}}{{^allowableValues}}{{#defaultValue}}{{^isContainer}}, schema = Schema(defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/isContainer}}{{/defaultValue}}{{/allowableValues}}) {{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}@ApiParam(value = "{{#lambda.escapeDollar}}{{{description}}}{{/lambda.escapeDollar}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}"{{/allowableValues}}{{^isContainer}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}) {{/swagger1AnnotationLibrary}}{{#useBeanValidation}}@Valid{{/useBeanValidation}}{{^isModel}} @RequestParam(value = "{{#lambdaEscapeInNormalString}}{{baseName}}{{/lambdaEscapeInNormalString}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{^isContainer}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}{{/isContainer}}){{/isModel}}{{#isDate}} @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE){{/isDate}}{{#isDateTime}} @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE_TIME){{/isDateTime}} {{{paramName}}}: {{>optionalDataType}}{{/isQueryParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/service.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/service.mustache index 309be55743b4..3aa62e4e17f1 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/service.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/service.mustache @@ -11,22 +11,22 @@ interface {{classname}}Service { {{#operation}} /** - * {{httpMethod}} {{{path}}}{{#summary}} : {{.}}{{/summary}} - {{#notes}} - * {{.}} - {{/notes}} + * {{httpMethod}} {{{path}}}{{#unescapedSummary}} : {{{.}}}{{/unescapedSummary}} + {{#unescapedNotes}} + * {{{.}}} + {{/unescapedNotes}} * {{#allParams}} - * @param {{{paramName}}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + * @param {{{paramName}}} {{{unescapedDescription}}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{^isString}}{{{.}}}{{/isString}}{{#isString}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/isString}}{{/defaultValue}}){{/required}} {{/allParams}} - * @return {{#responses}}{{message}} (status code {{code}}){{^-last}} + * @return {{#responses}}{{{unescapedMessage}}} (status code {{code}}){{^-last}} * or {{/-last}}{{/responses}} {{#isDeprecated}} * @deprecated {{/isDeprecated}} {{#externalDocs}} * {{description}} - * @see {{summary}} Documentation + * @see {{{summary}}} Documentation {{/externalDocs}} * @see {{classname}}#{{operationId}} */ diff --git a/modules/openapi-generator/src/main/resources/kotlin-vertx-server/apiProxy.mustache b/modules/openapi-generator/src/main/resources/kotlin-vertx-server/apiProxy.mustache index 31d71455db92..e82704af1cbb 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-vertx-server/apiProxy.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-vertx-server/apiProxy.mustache @@ -79,7 +79,7 @@ class {{classname}}VertxProxyHandler(private val vertx: Vertx, private val servi , object : TypeToken>(){}.type) {{/required}} {{^required}} - val {{paramName}}:{{{dataType}}}? = if({{paramName}}Param == null) {{defaultValue}}{{^defaultValue}}null{{/defaultValue}} + val {{paramName}}:{{{dataType}}}? = if({{paramName}}Param == null) {{#lambda.escapeDollar}}{{defaultValue}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} else Gson().fromJson({{paramName}}Param.encode(), , object : TypeToken>(){}.type) {{/required}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_opt_var.mustache index 4e001dec7b49..72f50659ff82 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_opt_var.mustache @@ -1,4 +1,4 @@ {{#description}} /* {{{.}}} */ {{/description}} - {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file + {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInPascalCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{^defaultValue}}null{{/defaultValue}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/kotlin-wiremock/api-stub.mustache b/modules/openapi-generator/src/main/resources/kotlin-wiremock/api-stub.mustache index d3b79befcf3a..7ef7e57341d5 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-wiremock/api-stub.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-wiremock/api-stub.mustache @@ -33,7 +33,7 @@ open class {{classname}}Stubs(private val objectMapper: ObjectMapper) { * @return A [{{operationIdCamelCase}}StubBuilder] to configure the response, and the final [MappingBuilder]. */ fun {{operationId}}({{#pathParams}}{{paramName}}: StringValuePattern, {{/pathParams}}{{#queryParams}}{{paramName}}: StringValuePattern? = null, {{/queryParams}}configurer: MappingBuilder.() -> MappingBuilder = { this }): {{operationIdCamelCase}}StubBuilder = - {{operationIdCamelCase}}StubBuilder(objectMapper, {{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}(urlPathTemplate("{{{path}}}")) + {{operationIdCamelCase}}StubBuilder(objectMapper, {{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}}(urlPathTemplate("{{#lambda.escapeDollar}}{{{path}}}{{/lambda.escapeDollar}}")) {{#pathParams}} .withPathParam("{{baseName}}", {{paramName}}) {{/pathParams}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-wiremock/model.mustache b/modules/openapi-generator/src/main/resources/kotlin-wiremock/model.mustache index c060ec50935c..04471511db5c 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-wiremock/model.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-wiremock/model.mustache @@ -23,8 +23,8 @@ data class {{classname}}( {{#allVars}} @field:JsonProperty("{{{vendorExtensions.x-base-name-literal}}}") val {{{name}}}: {{{dataType}}}{{^required}}?{{/required}}{{! - !}}{{^required}} = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{{.}}}{{/defaultValue}}{{/required}}{{! - }}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}, + !}}{{^required}} = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/defaultValue}}{{/required}}{{! + }}{{#required}}{{#defaultValue}} = {{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/defaultValue}}{{/required}}, {{/allVars}} ) diff --git a/modules/openapi-generator/src/main/resources/ktorm-schema/data_class_bind_field_opt.mustache b/modules/openapi-generator/src/main/resources/ktorm-schema/data_class_bind_field_opt.mustache index 6489b2bcc3cc..2cbe0a2eaf29 100644 --- a/modules/openapi-generator/src/main/resources/ktorm-schema/data_class_bind_field_opt.mustache +++ b/modules/openapi-generator/src/main/resources/ktorm-schema/data_class_bind_field_opt.mustache @@ -1 +1 @@ -{{#vendorExtensions}}{{#x-ktorm-schema}}{{#columnDefinition}} {{{name}}} = row[{{{name}}}] {{#defaultValue}}?: {{{.}}}{{/defaultValue}} /* {{{colKotlinType}}}? */{{/columnDefinition}}{{/x-ktorm-schema}}{{/vendorExtensions}}{{#description}} /* {{{.}}} */{{/description}} \ No newline at end of file +{{#vendorExtensions}}{{#x-ktorm-schema}}{{#columnDefinition}} {{{name}}} = row[{{{name}}}] {{#defaultValue}}?: {{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}{{/defaultValue}} /* {{{colKotlinType}}}? */{{/columnDefinition}}{{/x-ktorm-schema}}{{/vendorExtensions}}{{#description}} /* {{{.}}} */{{/description}} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java index b0b0396a2ab9..5068672415f2 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java @@ -208,7 +208,7 @@ public static void assertFileNotContains(Path path, String... lines) { String file = linearize(generatedFile); assertNotNull(file); for (String line : lines) - assertFalse(file.contains(linearize(line))); + assertFalse(file.contains(linearize(line)), "File '" + path + "' contains line [" + line + "] when it should not"); } public static void assertFileNotExists(Path path) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java index c9843b2a0169..6fa996631a5d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java @@ -1,14 +1,11 @@ package org.openapitools.codegen.kotlin.spring; import com.google.common.collect.ImmutableMap; -import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.servers.Server; -import io.swagger.v3.parser.core.models.ParseOptions; import org.apache.commons.io.FileUtils; import org.assertj.core.api.Assertions; -import org.jetbrains.annotations.NotNull; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; @@ -95,103 +92,85 @@ public void testInitialConfigValues() throws Exception { } @Test - public void testNoRequestMappingAnnotation_spring_cloud_default() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.setLibrary("spring-cloud"); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/feat13488_use_kotlinSpring_with_springCloud.yaml")) - .config(codegen)) - .generate(); - - // Check that the @RequestMapping annotation is not generated in the Api file - assertFileNotContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "@RequestMapping(\"\\${api.base-path" + public void testNoRequestMappingAnnotation_spring_cloud_default() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/feat13488_use_kotlinSpring_with_springCloud.yaml", + Map.of(CodegenConstants.LIBRARY, "spring-cloud"), + Map.of()); + assertGeneratedFilesNotContain( + Map.of( // Check that the @RequestMapping annotation is not generated in the Api file + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("@RequestMapping(\"\\${api.base-path") + ) ); } @Test - public void testNoRequestMappingAnnotationNone() throws IOException { - File output = generatePetstoreWithRequestMappingMode(KotlinSpringServerCodegen.RequestMappingMode.none); - - // Check that the @RequestMapping annotation is not generated in the Api file - assertFileNotContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApi.kt"), - "@RequestMapping(\"\\${" - ); - // Check that the @RequestMapping annotation is not generated in the ApiController file - assertFileNotContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"), - "@RequestMapping(\"\\${" + public void testNoRequestMappingAnnotationNone() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + DELEGATE_PATTERN, true, + USE_TAGS, true, + REQUEST_MAPPING_OPTION, "none" + ), Map.of()); + assertGeneratedFilesNotContain( + Map.of( // Check that the @RequestMapping annotation is not generated in the Api file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("@RequestMapping(\"\\${"), + // Check that the @RequestMapping annotation is not generated in the ApiController file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of("@RequestMapping(\"\\${") + ) ); } @Test - public void testNoRequestMappingAnnotationController() throws IOException { - File output = generatePetstoreWithRequestMappingMode(KotlinSpringServerCodegen.RequestMappingMode.controller); - - // Check that the @RequestMapping annotation is not generated in the Api file - assertFileNotContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApi.kt"), - "@RequestMapping(\"\\${" + public void testNoRequestMappingAnnotationController() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + DELEGATE_PATTERN, true, + USE_TAGS, true, + REQUEST_MAPPING_OPTION, "controller" + ), Map.of()); + assertGeneratedFilesNotContain( + Map.of( // Check that the @RequestMapping annotation is not generated in the Api file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("@RequestMapping(\"\\${") + ) ); - // Check that the @RequestMapping annotation is generated in the ApiController file - assertFileContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"), - "@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")", - " companion object {\n" - + " //for your own safety never directly reuse these path definitions in tests\n" - + " const val BASE_PATH: String = \"/v2\"\n" - + " }" + assertGeneratedFilesContain( + Map.of( // Check that the @RequestMapping annotation is generated in the ApiController file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of("@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")", + " companion object {\n" + + " //for your own safety never directly reuse these path definitions in tests\n" + + " const val BASE_PATH: String = \"/v2\"\n" + + " }") + ) ); } @Test - public void testNoRequestMappingAnnotationApiInterface() throws IOException { - File output = generatePetstoreWithRequestMappingMode(KotlinSpringServerCodegen.RequestMappingMode.api_interface); + public void testNoRequestMappingAnnotationApiInterface() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + DELEGATE_PATTERN, true, + USE_TAGS, true, + REQUEST_MAPPING_OPTION, "api_interface" + ), Map.of()); - // Check that the @RequestMapping annotation is generated in the Api file - assertFileContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApi.kt"), - "@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")", - " companion object {\n" - + " //for your own safety never directly reuse these path definitions in tests\n" - + " const val BASE_PATH: String = \"/v2\"" - ); - // Check that the @RequestMapping annotation is not generated in the ApiController file - assertFileNotContains( - Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"), - "@RequestMapping(\"\\${" + assertGeneratedFilesContain( + Map.of( + // Check that the @RequestMapping annotation is generated in the Api file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + "@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")", + " companion object {\n" + + " //for your own safety never directly reuse these path definitions in tests\n" + + " const val BASE_PATH: String = \"/v2\"") + ) ); - } - - private static @NotNull File generatePetstoreWithRequestMappingMode(KotlinSpringServerCodegen.RequestMappingMode requestMappingMode) throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REQUEST_MAPPING_OPTION, requestMappingMode); - - new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen) + assertGeneratedFilesNotContain( + Map.of( + // Check that the @RequestMapping annotation is not generated in the ApiController file + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + "@RequestMapping(\"\\${") ) - .generate(); - return output; + ); } @Test - public void testSettersForConfigValues() throws Exception { + public void testSettersForConfigValues() { final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); codegen.setModelPackage("xx.yyyyyyyy.model"); codegen.setApiPackage("xx.yyyyyyyy.api"); @@ -231,7 +210,7 @@ public void testSettersForConfigValues() throws Exception { } @Test - public void testAdditionalPropertiesPutForConfigValues() throws Exception { + public void testAdditionalPropertiesPutForConfigValues() { final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.mmmmm.model"); codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.aaaaa.api"); @@ -301,398 +280,235 @@ public void testDelegatePattern() { } @Test(description = "test delegate with tags") - public void delegateWithTags() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); //may be move to /build - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); + public void delegateWithTags() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/issue5497-use-tags-kotlin.yaml", Map.of( + KotlinSpringServerCodegen.DELEGATE_PATTERN, true, + KotlinSpringServerCodegen.USE_TAGS, true + ), Map.of()); + + assertGeneratedFilesExist(List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiController.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt") + )); + } - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue5497-use-tags-kotlin.yaml")) - .config(codegen) + @Test(description = "test delegate reactive with tags") + public void delegateReactiveWithTags() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/issue7325-use-delegate-reactive-tags-kotlin.yaml", Map.of( + KotlinSpringServerCodegen.DELEGATE_PATTERN, true, + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.USE_TAGS, true + ), Map.of()); + + assertGeneratedFilesExist(List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2Api.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiController.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3Api.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3ApiController.kt"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt") + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("suspend fun"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("suspend fun"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2Api.kt"), List.of("import kotlinx.coroutines.flow.Flow", "ResponseEntity>"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), List.of("import kotlinx.coroutines.flow.Flow", "ResponseEntity>"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3Api.kt"), List.of("import kotlinx.coroutines.flow.Flow", "requestBody: Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt"), List.of("import kotlinx.coroutines.flow.Flow", "suspend fun", "requestBody: Flow" + ) + ) + ); + assertGeneratedFilesNotContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("exchange"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("ApiUtil"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2Api.kt"), List.of("exchange"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), List.of("suspend fun", "ApiUtil"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3Api.kt"), List.of("exchange"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt"), List.of("ApiUtil" + ) ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV2ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt") ); } - @Test(description = "test delegate reactive with tags") - public void delegateReactiveWithTags() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); //may be move to /build - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue7325-use-delegate-reactive-tags-kotlin.yaml")) - .config(codegen) - ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV2Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV2ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV3Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV3ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt") - ); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "suspend fun"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "exchange"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "suspend fun"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "ApiUtil"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV2Api.kt"), - "import kotlinx.coroutines.flow.Flow", "ResponseEntity>"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV2Api.kt"), - "exchange"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), - "import kotlinx.coroutines.flow.Flow", "ResponseEntity>"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV2ApiDelegate.kt"), - "suspend fun", "ApiUtil"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV3Api.kt"), - "import kotlinx.coroutines.flow.Flow", "requestBody: Flow"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV3Api.kt"), - "exchange"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt"), - "import kotlinx.coroutines.flow.Flow", "suspend fun", "requestBody: Flow"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV3ApiDelegate.kt"), - "ApiUtil"); - } - - @Test - public void testNullableMultipartFile() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/kotlin/feat-multipartfile_nullable.yaml", null, new ParseOptions()).getOpenAPI(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/NullableMultipartfileApiController.kt"), - "file: org.springframework.web.multipart.MultipartFile?" - + " )"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/NullableMultipartfileArrayApiController.kt"), - "files: Array?" - + " )"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/NonNullableMultipartfileApiController.kt"), - "file: org.springframework.web.multipart.MultipartFile" - + " )"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/NonNullableMultipartfileArrayApiController.kt"), - "files: Array" - + " )"); + @Test + public void testNullableMultipartFile() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/feat-multipartfile_nullable.yaml", + Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/NullableMultipartfileApiController.kt"), List.of( + "file: org.springframework.web.multipart.MultipartFile?" + + " )"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/NullableMultipartfileArrayApiController.kt"), List.of( + "files: Array?" + + " )"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/NonNullableMultipartfileApiController.kt"), List.of( + "file: org.springframework.web.multipart.MultipartFile" + + " )"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/NonNullableMultipartfileArrayApiController.kt"), List.of( + "files: Array" + + " )" + ) + ) + ); } @Test - public void arrayItemsCanBeNullable() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/array-nullable-items.yaml", null, new ParseOptions()).getOpenAPI(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/ArrayWithNullableItemsModel.kt"), "List"); + public void arrayItemsCanBeNullable() { + Path apiSources = generateApiSources("src/test/resources/3_0/array-nullable-items.yaml", + Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"), + Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/model/ArrayWithNullableItemsModel.kt"), List.of("List")) + ); } @Test - public void doNotGenerateRequestParamForObjectQueryParam() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/objectQueryParam.yaml", null, new ParseOptions()).getOpenAPI(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - assertFileNotContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PonyApiController.kt"), "@RequestParam"); + public void doNotGenerateRequestParamForObjectQueryParam() { + Path apiSources = generateApiSources("src/test/resources/3_0/objectQueryParam.yaml", + Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesNotContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/api/PonyApiController.kt"), List.of("@RequestParam")) + ); } @Test - public void doGenerateRequestParamForSimpleParam() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_3248.yaml", null, new ParseOptions()).getOpenAPI(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/MonkeysApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/ElephantsApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/ZebrasApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/BearsApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/CamelsApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PandasApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/CrocodilesApiController.kt"), "@RequestParam"); - assertFileContains(Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PolarBearsApiController.kt"), "@RequestParam"); + public void doGenerateRequestParamForSimpleParam() { + Path apiSources = generateApiSources("src/test/resources/3_0/issue_3248.yaml", + Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/MonkeysApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/ElephantsApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/ZebrasApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/BearsApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/CamelsApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/PandasApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/CrocodilesApiController.kt"), List.of("@RequestParam"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/PolarBearsApiController.kt"), List.of("@RequestParam") + ) + ); } @Test - public void generateFormatForDateAndDateTimeQueryParam() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_2053.yaml", null, new ParseOptions()).getOpenAPI(); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - generator.opts(input).generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/ElephantsApiController.kt"), - "@org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE)" - ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/ZebrasApiController.kt"), - "@org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE_TIME)" + public void generateFormatForDateAndDateTimeQueryParam() { + Path apiSources = generateApiSources("src/test/resources/3_0/issue_2053.yaml", + Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ElephantsApiController.kt"), + List.of("@org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE)"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/ZebrasApiController.kt"), + List.of("@org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE_TIME)") + ) ); } @Test(description = "test bean qualifiers") - public void beanQualifiers() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.BEAN_QUALIFIERS, true); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/bean-qualifiers.yaml")) - .config(codegen)) - .generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PingApiController.kt"), - "@RestController(\"org.openapitools.api.PingApiController\")" + public void beanQualifiers() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/bean-qualifiers.yaml", Map.of(KotlinSpringServerCodegen.BEAN_QUALIFIERS, true), Map.of()); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/api/PingApiController.kt"), List.of("@RestController(\"org.openapitools.api.PingApiController\")")) ); } @Test(description = "test skip default interface") - public void skipDefaultInterface() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.INTERFACE_ONLY, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SKIP_DEFAULT_INTERFACE, true); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/skip-default-interface.yaml")) - .config(codegen)) - .generate(); - - assertFileNotContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PingApi.kt"), - "return " + public void skipDefaultInterface() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/skip-default-interface.yaml", Map.of( + KotlinSpringServerCodegen.INTERFACE_ONLY, true, + KotlinSpringServerCodegen.SKIP_DEFAULT_INTERFACE, true + ), Map.of()); + assertGeneratedFilesNotContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/api/PingApi.kt"), List.of("return ")) ); } @Test(description = "test cookie parameter generation on interface apis") - public void cookieParameterGenerationApis() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.INTERFACE_ONLY, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SKIP_DEFAULT_INTERFACE, true); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore-with-fake-endpoints-for-testing-with-cookie.yaml")) - .config(codegen)) - .generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/FakeApi.kt"), - "@CookieValue" - ); + public void cookieParameterGenerationApis() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-fake-endpoints-for-testing-with-cookie.yaml", Map.of( + KotlinSpringServerCodegen.INTERFACE_ONLY, true, + KotlinSpringServerCodegen.SKIP_DEFAULT_INTERFACE, true + ), Map.of()); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/api/FakeApi.kt"), List.of("@CookieValue"))); } @Test(description = "test cookie parameter generation on controllers") - public void cookieParameterGenerationControllers() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore-with-fake-endpoints-for-testing-with-cookie.yaml")) - .config(codegen)) - .generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/FakeApiController.kt"), - "@CookieValue" - ); + public void cookieParameterGenerationControllers() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-fake-endpoints-for-testing-with-cookie.yaml", Map.of(), Map.of()); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/api/FakeApiController.kt"), List.of("@CookieValue"))); } @Test(description = "use Spring boot 3 & jakarta extension") - public void useSpringBoot3() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_SPRING_BOOT3, true); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/feat13578_use_springboot3_jakarta_extension.yaml")) - .config(codegen)) - .generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/ApiUtil.kt"), - "import jakarta.servlet.http.HttpServletResponse" - ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/Exceptions.kt"), - "import jakarta.validation.ConstraintViolationException" - ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PingApiController.kt"), - "import jakarta.validation.Valid" + public void useSpringBoot3() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/feat13578_use_springboot3_jakarta_extension.yaml", Map.of( + KotlinSpringServerCodegen.USE_SPRING_BOOT3, true + ), Map.of()); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ApiUtil.kt"), List.of("import jakarta.servlet.http.HttpServletResponse"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/Exceptions.kt"), List.of("import jakarta.validation.ConstraintViolationException"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/PingApiController.kt"), List.of("import jakarta.validation.Valid") + ) ); } @Test(description = "multi-line descriptions should be supported for operations") - public void multiLineOperationDescription() throws IOException { + public void multiLineOperationDescription() { testMultiLineOperationDescription(false); } @Test(description = "multi-line descriptions should be supported for operations (interface-only)") - public void multiLineOperationDescriptionInterfaceOnly() throws IOException { + public void multiLineOperationDescriptionInterfaceOnly() { testMultiLineOperationDescription(true); } - private static void testMultiLineOperationDescription(final boolean isInterfaceOnly) throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.INTERFACE_ONLY, - isInterfaceOnly); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue4111-multiline-operation-description.yaml")) - .config(codegen)) - .generate(); + private void testMultiLineOperationDescription(final boolean isInterfaceOnly) { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/issue4111-multiline-operation-description.yaml", Map.of( + KotlinSpringServerCodegen.INTERFACE_ONLY, isInterfaceOnly + ), Map.of()); final String pingApiFileName; if (isInterfaceOnly) { @@ -700,110 +516,63 @@ private static void testMultiLineOperationDescription(final boolean isInterfaceO } else { pingApiFileName = "PingApiController.kt"; } - assertFileContains( - Paths.get( - outputPath + "/src/main/kotlin/org/openapitools/api/" + pingApiFileName), - "description = \"\"\"# Multi-line descriptions\n" - + "\n" - + "This is an example of a multi-line description.\n" - + "\n" - + "It:\n" - + "- has multiple lines\n" - + "- uses Markdown (CommonMark) for rich text representation\"\"\"" + + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/" + pingApiFileName), + List.of( + "description = \"\"\"# Multi-line descriptions\n" + + "\n" + + "This is an example of a multi-line description.\n" + + "\n" + + "It:\n" + + "- has multiple lines\n" + + "- uses Markdown (CommonMark) for rich text representation\"\"\"") + ) ); } @Test(description = "use get Annotation use-site target on kotlin interface attributes") - public void useTargetOnInterfaceAnnotations() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue3596-use-correct-get-annotation-target.yaml")) - .config(codegen)) - .generate(); - - assertFileNotContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@Schema(example = \"null\", description = \"\")" - ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@get:Schema(example = \"null\", description = \"\")" - ); - assertFileNotContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@Schema(example = \"null\", requiredMode = Schema.RequiredMode.REQUIRED, description = \"\")" + public void useTargetOnInterfaceAnnotations() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/issue3596-use-correct-get-annotation-target.yaml", Map.of(), Map.of()); + Path animalDto = apiSources.resolve("src/main/kotlin/org/openapitools/model/Animal.kt"); + assertGeneratedFilesContain( + Map.of( + animalDto, List.of("@get:Schema(example = \"null\", description = \"\")", "@get:Schema(example = \"null\", requiredMode = Schema.RequiredMode.REQUIRED, description = \"\")") + ) ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@get:Schema(example = \"null\", requiredMode = Schema.RequiredMode.REQUIRED, description = \"\")" + assertGeneratedFilesNotContain( + Map.of( + animalDto, List.of("@Schema(example = \"null\", description = \"\")", "@Schema(example = \"null\", requiredMode = Schema.RequiredMode.REQUIRED, description = \"\")") + ) ); } @Test(description = "use get Annotation use-site target on kotlin interface attributes (swagger1)") - public void useTargetOnInterfaceAnnotationsWithSwagger1() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(ANNOTATION_LIBRARY, AnnotationLibrary.SWAGGER1.toCliOptValue()); - codegen.additionalProperties().put(DOCUMENTATION_PROVIDER, DocumentationProvider.SPRINGFOX.toCliOptValue()); - - new DefaultGenerator().opts(new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue3596-use-correct-get-annotation-target.yaml")) - .config(codegen)) - .generate(); - - assertFileNotContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@ApiModelProperty(example = \"null\", value = \"\")" + public void useTargetOnInterfaceAnnotationsWithSwagger1() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/issue3596-use-correct-get-annotation-target.yaml", Map.of( + ANNOTATION_LIBRARY, AnnotationLibrary.SWAGGER1.toCliOptValue(), + DOCUMENTATION_PROVIDER, DocumentationProvider.SPRINGFOX.toCliOptValue() + ), Map.of()); + Path animalDto = apiSources.resolve("src/main/kotlin/org/openapitools/model/Animal.kt"); + assertGeneratedFilesContain( + Map.of(animalDto, List.of("@get:ApiModelProperty(example = \"null\", value = \"\")", "@get:ApiModelProperty(example = \"null\", required = true, value = \"\")")) ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@get:ApiModelProperty(example = \"null\", value = \"\")" - ); - assertFileNotContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@ApiModelProperty(example = \"null\", required = true, value = \"\")" - ); - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Animal.kt"), - "@get:ApiModelProperty(example = \"null\", required = true, value = \"\")" + assertGeneratedFilesNotContain( + Map.of(animalDto, List.of("@ApiModelProperty(example = \"null\", value = \"\")", "@ApiModelProperty(example = \"null\", required = true, value = \"\")")) ); } @Test - public void useBeanValidationGenerateAnnotationsForRequestBody() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_13932.yml", null, new ParseOptions()).getOpenAPI(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.INTERFACE_ONLY, "true"); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_BEANVALIDATION, "true"); - codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.model"); - codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.controller"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); - - assertFileContains( - Paths.get(files.get("AddApi.kt").getAbsolutePath()), - "@Min(value=2)" + public void useBeanValidationGenerateAnnotationsForRequestBody() { + Path apiSources = generateApiSources("src/test/resources/bugs/issue_13932.yml", Map.of( + KotlinSpringServerCodegen.INTERFACE_ONLY, "true", + KotlinSpringServerCodegen.USE_BEANVALIDATION, "true", + CodegenConstants.MODEL_PACKAGE, "xyz.model", + CodegenConstants.API_PACKAGE, "xyz.controller" + ), Map.of()); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/xyz/controller/AddApi.kt"), List.of("@Min(value=2)")) ); } @@ -842,571 +611,370 @@ public void contractWithResolvedInnerEnumContainsEnumConverter() throws IOExcept } @Test - public void givenMultipartFormArray_whenGenerateDelegateAndService_thenParameterIsCreatedAsListOfMultipartFile() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/petstore-with-tags.yaml"); - final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOpenAPI(openAPI); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.setDelegatePattern(true); - codegen.setServiceInterface(true); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path delegateFile = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"); - assertFileContains(delegateFile, "additionalMetadata: kotlin.String?"); - assertFileContains(delegateFile, "images: Array"); - - Path controllerFile = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PetApi.kt"); - assertFileContains(controllerFile, "images: Array"); - - Path serviceFile = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PetApiService.kt"); - assertFileContains(serviceFile, "images: Array"); - } - - @Test - public void givenOctetStreamResponseType_whenGenerateServer_thenReturnTypeIsResource() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/petstore-with-tags.yaml"); - final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOpenAPI(openAPI); - codegen.setOutputDir(output.getAbsolutePath()); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path outputFilepath = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"); - - assertFileContains(outputFilepath, "): ResponseEntity"); - } + public void givenMultipartFormArray_whenGenerateDelegateAndService_thenParameterIsCreatedAsListOfMultipartFile() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-tags.yaml", Map.of( + KotlinSpringServerCodegen.SERVICE_INTERFACE, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of("additionalMetadata: kotlin.String?", "images: Array"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("images: Array"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiService.kt"), List.of("images: Array") + ) + ); + } @Test - public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreatedAsRequestPart() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/petstore-with-tags.yaml"); - final KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOpenAPI(openAPI); - codegen.setOutputDir(output.getAbsolutePath()); - - ClientOptInput input = new ClientOptInput(); - input.openAPI(openAPI); - input.config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path outputFilepath = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"); - - assertFileContains(outputFilepath, - "@Parameter(description = \"Additional data to pass to server\") @Valid @RequestParam(value = \"additionalMetadata\", required = false) additionalMetadata: kotlin.String?"); - assertFileContains(outputFilepath, - "@Parameter(description = \"image to upload\") @Valid @RequestPart(\"image\", required = false) image: org.springframework.web.multipart.MultipartFile"); - + public void givenOctetStreamResponseType_whenGenerateServer_thenReturnTypeIsResource() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-tags.yaml", Map.of(), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of("): ResponseEntity") + ) + ); } @Test - public void overridePropertyFunction() throws IOException { - - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.SERIALIZABLE_MODEL, true); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/bugs/issue_20228.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - assertFileContains( - Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Pony.kt"), - "override val nameOpt", "override val nameReq" + public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreatedAsRequestPart() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-tags.yaml", Map.of(), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), + List.of("@Parameter(description = \"Additional data to pass to server\") @Valid @RequestParam(value = \"additionalMetadata\", required = false) additionalMetadata: kotlin.String?", + "@Parameter(description = \"image to upload\") @Valid @RequestPart(\"image\", required = true) image: org.springframework.web.multipart.MultipartFile") + ) ); } @Test - public void generateSerializableModel() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.SERIALIZABLE_MODEL, true); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Pet.kt"); - assertFileContains( - path, - "import java.io.Serializable", - ") : Serializable {", - "private const val serialVersionUID: kotlin.Long = 1" - ); + public void overridePropertyFunction() { + Path apiSources = generateApiSources("src/test/resources/bugs/issue_20228.yaml", Map.of( + CodegenConstants.SERIALIZABLE_MODEL, true + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "false", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of(apiSources.resolve("src/main/kotlin/org/openapitools/model/Pony.kt"), List.of("override val nameOpt", "override val nameReq"))); } @Test - public void generateSerializableModelWithXimplements() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.SERIALIZABLE_MODEL, true); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Dog.kt"); - assertFileContains( - path, - "import java.io.Serializable", - "@get:JsonProperty(\"likesFetch\", required = true) override val likesFetch: kotlin.Boolean,", - ") : Pet, Serializable, com.some.pack.Fetchable {", - "private const val serialVersionUID: kotlin.Long = 1" + public void generateSerializableModel() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.SERIALIZABLE_MODEL, true + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "false", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/model/Pet.kt"), + List.of("import java.io.Serializable", + ") : Serializable {", + "private const val serialVersionUID: kotlin.Long = 1") + ) ); } @Test - public void generateHttpInterfaceReactiveWithReactorResponseEntity() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, true); - codegen.additionalProperties().put(DECLARATIVE_INTERFACE_REACTIVE_MODE, "reactor"); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, true); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - "import reactor.core.publisher.Flux\n" - + "import reactor.core.publisher.Mono", - " @HttpExchange(\n" - + " url = PATH_GET_INVENTORY /* \"/store/inventory\" */,\n" - + " method = \"GET\"\n" - + " )\n" - + " fun getInventory(\n" - + " ): Mono>>", - " @HttpExchange(\n" - + " url = PATH_DELETE_ORDER /* \"/store/order/{orderId}\" */,\n" - + " method = \"DELETE\"\n" - + " )\n" - + " fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): Mono>", - " @HttpExchange(\n" - + " url = PATH_PLACE_ORDER /* \"/store/order\" */,\n" - + " method = \"POST\"\n" - + " )\n" - + " fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): Mono>", - " companion object {\n" - + " //for your own safety never directly reuse these path definitions in tests\n" - + " const val PATH_DELETE_ORDER: String = \"/store/order/{orderId}\"\n" - + " const val PATH_GET_INVENTORY: String = \"/store/inventory\"\n" - + " const val PATH_GET_ORDER_BY_ID: String = \"/store/order/{orderId}\"\n" - + " const val PATH_PLACE_ORDER: String = \"/store/order\"\n" - + " }" - ); - assertFileNotContains( - path, - "suspend" - ); - } - - @Test - public void generateHttpInterfaceReactiveWithCoroutinesResponseEntity() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, true); - codegen.additionalProperties().put(DECLARATIVE_INTERFACE_REACTIVE_MODE, "coroutines"); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, true); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - " suspend fun getInventory(\n" - + " ): ResponseEntity>", - " suspend fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): ResponseEntity", - " suspend fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): ResponseEntity" + public void generateSerializableModelWithXimplements() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml", Map.of( + CodegenConstants.SERIALIZABLE_MODEL, true + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "false", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/model/Dog.kt"), + List.of("import java.io.Serializable", + "@get:JsonProperty(\"likesFetch\", required = true) override val likesFetch: kotlin.Boolean,", + ") : Pet, Serializable, com.some.pack.Fetchable {", + "private const val serialVersionUID: kotlin.Long = 1") + ) ); } @Test - public void generateHttpInterfaceReactiveWithReactor() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, true); - codegen.additionalProperties().put(DECLARATIVE_INTERFACE_REACTIVE_MODE, "reactor"); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, false); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - "import reactor.core.publisher.Flux\n" - + "import reactor.core.publisher.Mono", - " fun getInventory(\n" - + " ): Mono>", - " fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): Mono", - " fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): Mono" - ); - assertFileNotContains( - path, - "suspend" + public void generateHttpInterfaceReactiveWithReactorResponseEntity() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, true, + DECLARATIVE_INTERFACE_REACTIVE_MODE, "reactor", + USE_RESPONSE_ENTITY, true, + REQUEST_MAPPING_OPTION, "none", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + Path storeApiClient = apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); + assertGeneratedFilesContain( + Map.of( + storeApiClient, + List.of( + "import reactor.core.publisher.Flux\n" + + "import reactor.core.publisher.Mono", + " @HttpExchange(\n" + + " url = PATH_GET_INVENTORY /* \"/store/inventory\" */,\n" + + " method = \"GET\"\n" + + " )\n" + + " fun getInventory(\n" + + " ): Mono>>", + " @HttpExchange(\n" + + " url = PATH_DELETE_ORDER /* \"/store/order/{orderId}\" */,\n" + + " method = \"DELETE\"\n" + + " )\n" + + " fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): Mono>", + " @HttpExchange(\n" + + " url = PATH_PLACE_ORDER /* \"/store/order\" */,\n" + + " method = \"POST\"\n" + + " )\n" + + " fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): Mono>", + " companion object {\n" + + " //for your own safety never directly reuse these path definitions in tests\n" + + " const val PATH_DELETE_ORDER: String = \"/store/order/{orderId}\"\n" + + " const val PATH_GET_INVENTORY: String = \"/store/inventory\"\n" + + " const val PATH_GET_ORDER_BY_ID: String = \"/store/order/{orderId}\"\n" + + " const val PATH_PLACE_ORDER: String = \"/store/order\"\n" + + " }") + ) ); + assertGeneratedFilesNotContain( + Map.of(storeApiClient, List.of("suspend"))); } @Test - public void generateHttpInterfaceReactiveWithCoroutines() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, true); - codegen.additionalProperties().put(DECLARATIVE_INTERFACE_REACTIVE_MODE, "coroutines"); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, false); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - " suspend fun getInventory(\n" - + " ): Map", - " suspend fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): Unit", - " suspend fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): Order" + public void generateHttpInterfaceReactiveWithCoroutinesResponseEntity() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, true, + DECLARATIVE_INTERFACE_REACTIVE_MODE, "coroutines", + USE_RESPONSE_ENTITY, true, + REQUEST_MAPPING_OPTION, "none", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"), + List.of(" suspend fun getInventory(\n" + + " ): ResponseEntity>", + " suspend fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): ResponseEntity", + " suspend fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): ResponseEntity") + ) ); } @Test - public void generateHttpInterfaceResponseEntity() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, false); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, true); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - " fun getInventory(\n" - + " ): ResponseEntity>", - " fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): ResponseEntity", - " fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): ResponseEntity" - ); - assertFileNotContains( - path, - "suspend" + public void generateHttpInterfaceReactiveWithReactor() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, true, + DECLARATIVE_INTERFACE_REACTIVE_MODE, "reactor", + USE_RESPONSE_ENTITY, false, + REQUEST_MAPPING_OPTION, "none", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + Path storeApiClient = apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); + assertGeneratedFilesContain( + Map.of( + storeApiClient, + List.of("import reactor.core.publisher.Flux\n" + + "import reactor.core.publisher.Mono", + " fun getInventory(\n" + + " ): Mono>", + " fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): Mono", + " fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): Mono") + ) ); + assertGeneratedFilesNotContain( + Map.of(storeApiClient, List.of("suspend"))); } @Test - public void generateHttpInterface() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface"); - codegen.additionalProperties().put(REACTIVE, false); - codegen.additionalProperties().put(USE_RESPONSE_ENTITY, false); - codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "api_interface"); - codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); - assertFileContains( - path, - "@HttpExchange(\n" - + "\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\"\n" - + ")", - " fun getInventory(\n" - + " ): Map", - " fun deleteOrder(\n" - + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" - + " ): Unit", - " fun placeOrder(\n" - + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" - + " ): Order" - ); - assertFileNotContains( - path, - "suspend" + public void generateHttpInterfaceReactiveWithCoroutines() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, true, + DECLARATIVE_INTERFACE_REACTIVE_MODE, "coroutines", + USE_RESPONSE_ENTITY, false, + REQUEST_MAPPING_OPTION, "api_interface", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( + Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"), + List.of("@HttpExchange(\n" + + "\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\"\n" + + ")", + " suspend fun getInventory(\n" + + " ): Map", + " suspend fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): Unit", + " suspend fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): Order") + ) ); } @Test - public void generateNonSerializableModelWithXimplements() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - String outputPath = output.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml")) - .config(codegen); - DefaultGenerator generator = new DefaultGenerator(); - - generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false"); - generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); - - generator.opts(input).generate(); - - Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/model/Dog.kt"); - assertFileContains( - path, - "@get:JsonProperty(\"likesFetch\", required = true) override val likesFetch: kotlin.Boolean,", - ") : Pet, com.some.pack.Fetchable {" - ); - assertFileNotContains( - path, - "import java.io.Serializable", - ") : Pet, Serializable, com.some.pack.Fetchable {", - ") : Pet, Serializable {", - "private const val serialVersionUID: kotlin.Long = 1" + public void generateHttpInterfaceResponseEntity() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, false, + USE_RESPONSE_ENTITY, true, + REQUEST_MAPPING_OPTION, "none", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + Path storeApiClient = apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); + assertGeneratedFilesContain( + Map.of( + storeApiClient, + List.of(" fun getInventory(\n" + + " ): ResponseEntity>", + " fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): ResponseEntity", + " fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): ResponseEntity") + ) ); + assertGeneratedFilesNotContain(Map.of(storeApiClient, List.of("suspend"))); } - private Path generateApiSources( - Map additionalProperties, - Map generatorPropertyDefaults - ) throws Exception { - File outputDir = Files.createTempDirectory("test").toFile().getCanonicalFile(); - outputDir.deleteOnExit(); - String outputPath = outputDir.getAbsolutePath().replace('\\', '/'); - - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(outputDir.getAbsolutePath()); - codegen.additionalProperties().putAll(additionalProperties); - - ClientOptInput input = new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/petstore.yaml")) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - for (var entry : generatorPropertyDefaults.entrySet()) { - generator.setGeneratorPropertyDefault(entry.getKey(), entry.getValue()); - } - generator.opts(input).generate(); - - return Paths.get(outputPath); - } - - private void verifyGeneratedFilesContain(Map> expectedSnippetsByPathsToFiles) { - for (var expectedSnippetsByPathToFile : expectedSnippetsByPathsToFiles.entrySet()) { - assertFileContains(expectedSnippetsByPathToFile.getKey(), expectedSnippetsByPathToFile.getValue().toArray(new String[0])); - } + @Test + public void generateHttpInterface() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( + CodegenConstants.LIBRARY, "spring-declarative-http-interface", + REACTIVE, false, + USE_RESPONSE_ENTITY, false, + REQUEST_MAPPING_OPTION, "none", + USE_FLOW_FOR_ARRAY_RETURN_TYPE, false + ), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + Path storeApiClient = apiSources.resolve("src/main/kotlin/org/openapitools/api/StoreApiClient.kt"); + assertGeneratedFilesContain( + Map.of( + storeApiClient, List.of( + " fun getInventory(\n" + + " ): Map", + " fun deleteOrder(\n" + + " @Parameter(description = \"ID of the order that needs to be deleted\", required = true) @PathVariable(\"orderId\") orderId: kotlin.String\n" + + " ): Unit", + " fun placeOrder(\n" + + " @Parameter(description = \"order placed for purchasing the pet\", required = true) @Valid @RequestBody order: Order\n" + + " ): Order") + ) + ); + assertGeneratedFilesNotContain(Map.of(storeApiClient, List.of("suspend"))); } - private void verifyGeneratedFilesNotContain(Map> unexpectedSnippetsByPathsToFiles) { - for (var unexpectedSnippetsByPathToFile : unexpectedSnippetsByPathsToFiles.entrySet()) { - assertFileNotContains(unexpectedSnippetsByPathToFile.getKey(), unexpectedSnippetsByPathToFile.getValue().toArray(new String[0])); - } + @Test + public void generateNonSerializableModelWithXimplements() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml", Map.of(), Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "false", + CodegenConstants.SUPPORTING_FILES, "false" + )); + Path dogDto = apiSources.resolve("src/main/kotlin/org/openapitools/model/Dog.kt"); + assertGeneratedFilesContain( + Map.of( + dogDto, List.of( + "@get:JsonProperty(\"likesFetch\", required = true) override val likesFetch: kotlin.Boolean,", + ") : Pet, com.some.pack.Fetchable {") + ) + ); + assertGeneratedFilesNotContain( + Map.of( + dogDto, List.of( + "import java.io.Serializable", + ") : Pet, Serializable, com.some.pack.Fetchable {", + ") : Pet, Serializable {", + "private const val serialVersionUID: kotlin.Long = 1") + ) + ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1420,9 +988,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1432,15 +1000,15 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDeleg + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(@Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange)") ) ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1454,9 +1022,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDele CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1466,15 +1034,15 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDele + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(@ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange") ) ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1488,9 +1056,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1500,15 +1068,15 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate + " @PathVariable(\"petId\") petId: kotlin.Long," + " exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1522,9 +1090,9 @@ public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -1532,15 +1100,15 @@ public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDeleg "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1554,9 +1122,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDe CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1566,15 +1134,15 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerNoDe + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(@Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1588,9 +1156,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoD CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1600,15 +1168,15 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1NoD + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1622,9 +1190,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1634,15 +1202,15 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDeleg + " @PathVariable(\"petId\") petId: kotlin.Long," + " request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1656,9 +1224,9 @@ public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDe CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -1666,15 +1234,15 @@ public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneNoDe "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1688,9 +1256,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelega CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1700,15 +1268,15 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelega + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1722,9 +1290,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1734,15 +1302,15 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDeleg + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1756,9 +1324,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate( CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1768,15 +1336,15 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate( + " @PathVariable(\"petId\") petId: kotlin.Long," + " exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1790,9 +1358,9 @@ public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelega CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -1800,15 +1368,15 @@ public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelega "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1822,9 +1390,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDel CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1834,15 +1402,15 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerNoDel + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1856,9 +1424,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDe CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1868,15 +1436,15 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1NoDe + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1890,9 +1458,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelega CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1902,15 +1470,15 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneNoDelega + " @PathVariable(\"petId\") petId: kotlin.Long," + " request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegateWithApiTests() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegateWithApiTests() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1925,9 +1493,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDeleg CodegenConstants.API_TESTS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1937,12 +1505,12 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDeleg + " @PathVariable(\"petId\") petId: kotlin.Long," + " request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/test/kotlin/org/openapitools/api/PetApiTest.kt"), List.of( + apiSources.resolve("src/test/kotlin/org/openapitools/api/PetApiTest.kt"), List.of( "val request: javax.servlet.http.HttpServletRequest = TODO()", "api.deletePet(petId, apiKey, request)"), - root.resolve("src/test/kotlin/org/openapitools/api/UserApiTest.kt"), List.of( + apiSources.resolve("src/test/kotlin/org/openapitools/api/UserApiTest.kt"), List.of( "val request: javax.servlet.http.HttpServletRequest = TODO()", "api.logoutUser(request)") ) @@ -1950,8 +1518,8 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneNoDeleg } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegateWithApiTests() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegateWithApiTests() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -1966,9 +1534,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate CodegenConstants.API_TESTS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -1978,12 +1546,12 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate + " @PathVariable(\"petId\") petId: kotlin.Long," + " exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( "logoutUser(exchange: org.springframework.web.server.ServerWebExchange)"), - root.resolve("src/test/kotlin/org/openapitools/api/PetApiTest.kt"), List.of( + apiSources.resolve("src/test/kotlin/org/openapitools/api/PetApiTest.kt"), List.of( "val exchange: org.springframework.web.server.ServerWebExchange = TODO()", "api.deletePet(petId, apiKey, exchange)"), - root.resolve("src/test/kotlin/org/openapitools/api/UserApiTest.kt"), List.of( + apiSources.resolve("src/test/kotlin/org/openapitools/api/UserApiTest.kt"), List.of( "val exchange: org.springframework.web.server.ServerWebExchange = TODO()", "api.logoutUser(exchange)") ) @@ -1991,8 +1559,8 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneNoDelegate } @Test - public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2006,9 +1574,9 @@ public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDel CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -2016,15 +1584,15 @@ public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneNoDel "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2038,9 +1606,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegat CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2050,20 +1618,20 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegat + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2077,9 +1645,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delega CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2089,20 +1657,20 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delega + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2116,9 +1684,9 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2128,20 +1696,20 @@ public void reactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() + " @PathVariable(\"petId\") petId: kotlin.Long," + " exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2155,9 +1723,9 @@ public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegat CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -2165,20 +1733,20 @@ public void reactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegat "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "apiKey: kotlin.String?): ResponseEntity", "petId: kotlin.Long): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "(): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2192,9 +1760,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerDele CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2204,20 +1772,20 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwaggerDele + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1Delegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2231,9 +1799,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1Del CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2243,20 +1811,20 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationSwagger1Del + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2270,9 +1838,9 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneDelegat CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "fun deletePet(\n" + " @PathVariable(\"petId\") petId: kotlin.Long,\n" + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?,\n" @@ -2282,20 +1850,20 @@ public void nonReactiveWithHttpRequestContextControllerImplAnnotationNoneDelegat + " @PathVariable(\"petId\") petId: kotlin.Long,\n" + " request: javax.servlet.http.HttpServletRequest\n" + " ): ResponseEntity {"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2309,9 +1877,9 @@ public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneDele CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -2319,20 +1887,20 @@ public void nonReactiveWithoutHttpRequestContextControllerImplAnnotationNoneDele "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "apiKey: kotlin.String?): ResponseEntity", "petId: kotlin.Long): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "(): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2346,9 +1914,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2358,20 +1926,20 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2385,9 +1953,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegat CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2397,20 +1965,20 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegat + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2424,9 +1992,9 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2436,20 +2004,20 @@ public void reactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() + " @PathVariable(\"petId\") petId: kotlin.Long," + " exchange: org.springframework.web.server.ServerWebExchange" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity", "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity") ) ); } @Test - public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, true, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2463,9 +2031,9 @@ public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -2473,20 +2041,20 @@ public void reactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "apiKey: kotlin.String?): ResponseEntity", "petId: kotlin.Long): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "(): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2500,9 +2068,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @Parameter(description = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(description = \"\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2512,20 +2080,20 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwaggerDeleg + " @Parameter(description = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@Parameter(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Delegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2539,9 +2107,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Dele CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @ApiParam(value = \"Pet id to delete\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(value = \"\") @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2551,20 +2119,20 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationSwagger1Dele + " @ApiParam(value = \"ID of pet to return\", required = true) @PathVariable(\"petId\") petId: kotlin.Long," + " @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, true, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2578,9 +2146,9 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?," @@ -2590,20 +2158,20 @@ public void nonReactiveWithHttpRequestContextInterfaceOnlyAnnotationNoneDelegate + " @PathVariable(\"petId\") petId: kotlin.Long," + " request: javax.servlet.http.HttpServletRequest" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity", "request: javax.servlet.http.HttpServletRequest): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "request: javax.servlet.http.HttpServletRequest): ResponseEntity") ) ); } @Test - public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() throws Exception { - Path root = generateApiSources(Map.of( + public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDelegate() { + Path apiSources = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.INCLUDE_HTTP_REQUEST_CONTEXT, false, KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", @@ -2617,9 +2185,9 @@ public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDeleg CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( - root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "deletePet(" + " @PathVariable(\"petId\") petId: kotlin.Long," + " @RequestHeader(value = \"api_key\", required = false) apiKey: kotlin.String?" @@ -2627,12 +2195,12 @@ public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDeleg "getPetById(" + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( "logoutUser(): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiDelegate.kt"), List.of( "apiKey: kotlin.String?): ResponseEntity", "petId: kotlin.Long): ResponseEntity"), - root.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiDelegate.kt"), List.of( "(): ResponseEntity") ) ); @@ -2640,20 +2208,21 @@ public void nonReactiveWithoutHttpRequestContextInterfaceOnlyAnnotationNoneDeleg @Test public void reactiveWithoutResponseEntity() throws Exception { - Path root = generateApiSources(Map.of( - KotlinSpringServerCodegen.REACTIVE, true, - KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", - KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", - KotlinSpringServerCodegen.INTERFACE_ONLY, true, - KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, false - ), Map.of( - CodegenConstants.MODELS, "false", - CodegenConstants.MODEL_TESTS, "false", - CodegenConstants.MODEL_DOCS, "false", - CodegenConstants.APIS, "true", - CodegenConstants.SUPPORTING_FILES, "false" - )); - verifyGeneratedFilesContain( + Path root = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", + KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", + KotlinSpringServerCodegen.INTERFACE_ONLY, true, + KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, false + ), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "@ResponseStatus(HttpStatus.BAD_REQUEST)", @@ -2678,20 +2247,21 @@ public void reactiveWithoutResponseEntity() throws Exception { @Test public void nonReactiveWithoutResponseEntity() throws Exception { - Path root = generateApiSources(Map.of( - KotlinSpringServerCodegen.REACTIVE, false, - KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", - KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", - KotlinSpringServerCodegen.INTERFACE_ONLY, true, - KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, false - ), Map.of( - CodegenConstants.MODELS, "false", - CodegenConstants.MODEL_TESTS, "false", - CodegenConstants.MODEL_DOCS, "false", - CodegenConstants.APIS, "true", - CodegenConstants.SUPPORTING_FILES, "false" - )); - verifyGeneratedFilesContain( + Path root = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, false, + KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", + KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", + KotlinSpringServerCodegen.INTERFACE_ONLY, true, + KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, false + ), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "@ResponseStatus(HttpStatus.BAD_REQUEST)", @@ -2713,7 +2283,7 @@ public void nonReactiveWithoutResponseEntity() throws Exception { ) ); - verifyGeneratedFilesNotContain( + assertGeneratedFilesNotContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("suspend"), root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of("suspend"), @@ -2724,20 +2294,22 @@ public void nonReactiveWithoutResponseEntity() throws Exception { @Test public void reactiveWithResponseEntity() throws Exception { - Path root = generateApiSources(Map.of( - KotlinSpringServerCodegen.REACTIVE, true, - KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", - KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", - KotlinSpringServerCodegen.INTERFACE_ONLY, true, - KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, true - ), Map.of( - CodegenConstants.MODELS, "false", - CodegenConstants.MODEL_TESTS, "false", - CodegenConstants.MODEL_DOCS, "false", - CodegenConstants.APIS, "true", - CodegenConstants.SUPPORTING_FILES, "false" - )); - verifyGeneratedFilesContain( + Path root = generateApiSources( + "src/test/resources/3_0/kotlin/petstore.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", + KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", + KotlinSpringServerCodegen.INTERFACE_ONLY, true, + KotlinSpringServerCodegen.USE_RESPONSE_ENTITY, true + ), Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + )); + assertGeneratedFilesContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "suspend fun deletePet(" @@ -2755,7 +2327,7 @@ public void reactiveWithResponseEntity() throws Exception { ) ); - verifyGeneratedFilesNotContain( + assertGeneratedFilesNotContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("@ResponseStatus(HttpStatus."), root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of("@ResponseStatus(HttpStatus."), @@ -2766,7 +2338,7 @@ public void reactiveWithResponseEntity() throws Exception { @Test public void nonReactiveWithResponseEntity() throws Exception { - Path root = generateApiSources(Map.of( + Path root = generateApiSources("src/test/resources/3_0/kotlin/petstore.yaml", Map.of( KotlinSpringServerCodegen.REACTIVE, false, KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "none", KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "none", @@ -2779,7 +2351,7 @@ public void nonReactiveWithResponseEntity() throws Exception { CodegenConstants.APIS, "true", CodegenConstants.SUPPORTING_FILES, "false" )); - verifyGeneratedFilesContain( + assertGeneratedFilesContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of( "fun deletePet(" @@ -2790,14 +2362,14 @@ public void nonReactiveWithResponseEntity() throws Exception { + " @PathVariable(\"petId\") petId: kotlin.Long" + " ): ResponseEntity"), root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( - "fun logoutUser(): ResponseEntity" + "fun logoutUser(): ResponseEntity" ), root.resolve("src/main/kotlin/org/openapitools/api/StoreApi.kt"), List.of( "fun getInventory(): ResponseEntity>") ) ); - verifyGeneratedFilesNotContain( + assertGeneratedFilesNotContain( Map.of( root.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("suspend", "@ResponseStatus(HttpStatus."), root.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of("suspend", "@ResponseStatus(HttpStatus."), @@ -2807,283 +2379,433 @@ public void nonReactiveWithResponseEntity() throws Exception { } @Test - public void reactiveWithoutFlow() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml")) - .config(codegen) + public void reactiveWithoutFlow() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, false, + KotlinSpringServerCodegen.USE_TAGS, true, + KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt") ); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "Flow"); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("List") + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("Flow") + )); } @Test - public void reactiveWithFlow() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml")) - .config(codegen) + public void reactiveWithFlow() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true, + KotlinSpringServerCodegen.USE_TAGS, true, + KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt") ); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - "List"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "Flow"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "Flow"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "Flow"); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("Flow") + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("List") + )); } @Test - public void reactiveWithDefaultValueFlow() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, true); - // should use default 'true' instead - // codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml")) - .config(codegen) + public void reactiveWithDefaultValueFlow() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, true, + KotlinSpringServerCodegen.USE_TAGS, true, + KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt") ); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - "List"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "Flow"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "Flow"); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "List"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "Flow"); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("Flow") + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("List") + )); } @Test - public void nonReactiveWithoutFlow() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, false); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, false); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml")) - .config(codegen) + public void nonReactiveWithoutFlow() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, false, + KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, false, + KotlinSpringServerCodegen.USE_TAGS, true, + KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt") ); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "Flow"); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("List") + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("Flow") + )); } @Test - public void nonReactiveWithFlow() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.REACTIVE, false); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.USE_TAGS, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml")) - .config(codegen) + public void nonReactiveWithFlow() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue16130-add-useFlowForArrayReturnType-param.yaml", + Map.of( + KotlinSpringServerCodegen.REACTIVE, false, + KotlinSpringServerCodegen.USE_FLOW_FOR_ARRAY_RETURN_TYPE, true, + KotlinSpringServerCodegen.USE_TAGS, true, + KotlinSpringServerCodegen.SERVICE_IMPLEMENTATION, true, + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); - - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/TestV1ApiService.kt") ); - - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1Api.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), - "Flow"); - - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "List"); - assertFileNotContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), - "Flow"); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("List"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("List") + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiController.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1Api.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiDelegate.kt"), List.of("Flow"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/TestV1ApiService.kt"), List.of("Flow") + )); } @Test - public void testValidationsInQueryParams_issue21238_Controller() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue21238_queryParam_validation.yaml")) - .config(codegen) + public void testValidationsInQueryParams_issue21238_Controller() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue21238_queryParam_validation.yaml", + Map.of(), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" ) - .generate(); + ); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApiController.kt"), List.of("@NotNull", "@Valid"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApiController.kt"), List.of( + "@NotNull", + "@Valid", + "@Pattern(regexp=\"^[a-zA-Z0-9]+[a-zA-Z0-9\\\\.\\\\-_]*[a-zA-Z0-9]+$\")", + "@Parameter(description = \"The user name for login\", required = true)", + "@Parameter(description = \"The password for login in clear text\", required = true)" + ) + )); + } - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/PetApiController.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/UserApiController.kt") + @Test + public void testValidationsInQueryParams_issue21238_Api_Delegate() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/issue21238_queryParam_validation.yaml", + Map.of(KotlinSpringServerCodegen.DELEGATE_PATTERN, true), + Map.of( + CodegenConstants.MODELS, "false", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + ) ); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/PetApi.kt"), List.of("@NotNull", "@Valid"), + apiSources.resolve("src/main/kotlin/org/openapitools/api/UserApi.kt"), List.of( + "@NotNull", + "@Valid", + "@Pattern(regexp=\"^[a-zA-Z0-9]+[a-zA-Z0-9\\\\.\\\\-_]*[a-zA-Z0-9]+$\")" + ) + )); + } - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"), - "@NotNull", "@Valid"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/UserApiController.kt"), - "@NotNull", "@Valid", - "@Pattern(regexp=\"^[a-zA-Z0-9]+[a-zA-Z0-9\\\\.\\\\-_]*[a-zA-Z0-9]+$\")", - "@Parameter(description = \"The user name for login\", required = true)", - "@Parameter(description = \"The password for login in clear text\", required = true)"); + @Test + public void testDollarsAndQuotesSwagger1() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/petstore-with-tags.yaml", + Map.of( + KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "springfox", + KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "swagger1", + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + ) + ); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ItemsApi.kt"), + List.of("value = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "@PathVariable(\"item\\$Id\")", + "@PathVariable(\"item\\$SubId\")", + "@RequestParam(value = \"filter\\$Type\"", + "@RequestParam(value = \"filter\\$SubType\"", + "@CookieValue(name = \"session\\$Token\"", + "@CookieValue(name = \"session\\$TokenTwo\"", + "@RequestParam(value = \"form\\$Name\"", + "@RequestParam(value = \"form\\$Value\"", + "PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = \"/items/{item\\$Id}/something/{item\\$SubId}\"", + "/* \"/items/{item$Id}/something/{item$SubId}\" */" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt"), + List.of( + "@ApiModelProperty(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", value = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"item\\$Id\") val itemDollarId: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "@get:JsonProperty(\"name\\$Value\") val nameDollarValue: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "@get:JsonProperty(\"details\\$Info\")", + "@param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "@param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt"), + List.of( + "@ApiModelProperty(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", value = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"\\$id\") val dollarId: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "@get:JsonProperty(\"\\$name\") val dollarName: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "* SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "* @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "* @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + ) + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ItemsApi.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some", + "@PathVariable(\"item$Id\")", + "@PathVariable(\"item$SubId\")", + "@RequestParam(value = \"filter$Type\"", + "@RequestParam(value = \"filter$SubType\"", + "@CookieValue(name = \"session$Token\"", + "@CookieValue(name = \"session$TokenTwo\"", + "@RequestParam(value = \"form$Name\"", + "@RequestParam(value = \"form$Value\"", + "PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = \"/items/{item$Id}/something/{item$SubId}\"", + "/* \"/items/{item\\$Id}/something/{item\\$SubId}\" */" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some", + "item$Id", + "name$Value", + "details$Info" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some", + "\"$id\"", + "\"$name\"" + ) + )); } @Test - public void testValidationsInQueryParams_issue21238_Api_Delegate() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + public void testDollarsAndQuotesSwagger2() { + Path apiSources = generateApiSources( + "src/test/resources/3_0/kotlin/petstore-with-tags.yaml", + Map.of( + KotlinSpringServerCodegen.DOCUMENTATION_PROVIDER, "springdoc", + KotlinSpringServerCodegen.ANNOTATION_LIBRARY, "swagger2", + KotlinSpringServerCodegen.DELEGATE_PATTERN, true + ), + Map.of( + CodegenConstants.MODELS, "true", + CodegenConstants.MODEL_TESTS, "false", + CodegenConstants.MODEL_DOCS, "false", + CodegenConstants.APIS, "true", + CodegenConstants.SUPPORTING_FILES, "false" + ) + ); + assertGeneratedFilesContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ItemsApi.kt"), + List.of( + "summary = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"", + "description = \"\"\"SQ = \"; SBS = \\; DBS = \\\\; SD = ${'$'}some\"\"\"", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", required = true) @PathVariable(\"item\\$Id\") itemDollarId: kotlin.String", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", required = true) @PathVariable(\"item\\$SubId\") itemDollarSubId: kotlin.String", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", schema = Schema(defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")) @Valid @RequestParam(value = \"filter\\$Type\", required = false, defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\") filterDollarType: kotlin.String", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", schema = Schema(defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")) @Valid @RequestParam(value = \"filter\\$SubType\", required = false, defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\") filterDollarSubType: kotlin.String", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"X-Custom_Header\", required = false) xCustomHeader: kotlin.String?", + "@Parameter(description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", `in` = ParameterIn.HEADER) @RequestHeader(value = \"X-Custom_Header_two\", required = false) xCustomHeaderTwo: kotlin.String?", + "@CookieValue(name = \"session\\$Token\", required = false) sessionDollarToken: kotlin.String?", + "@CookieValue(name = \"session\\$TokenTwo\", required = false) sessionDollarTokenTwo: kotlin.String?" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt"), + List.of( + "* @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "* @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "@Schema(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"item\\$Id\") val itemDollarId: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\",", + "@Schema(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"name\\$Value\") val nameDollarValue: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\",", + "@get:JsonProperty(\"details\\$Info\")" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt"), + List.of( + "@Schema(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"\\$id\") val dollarId: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\",", + "@Schema(example = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\", description = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\")", + "@get:JsonProperty(\"\\$name\") val dollarName: kotlin.String? = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = \\$some\"" + ) + )); + assertGeneratedFilesNotContain(Map.of( + apiSources.resolve("src/main/kotlin/org/openapitools/api/ItemsApi.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some", + "@PathVariable(\"item$Id\") itemDollarId: kotlin.String", + "@PathVariable(\"item$SubId\") itemDollarSubId: kotlin.String", + "@RequestParam(value = \"filter$Type\", required = false, defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some\") filterDollarType: kotlin.String", + "@RequestParam(value = \"filter$SubType\", required = false, defaultValue = \"SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some\") filterDollarSubType: kotlin.String", + "@CookieValue(name = \"session$Token\"", + "@CookieValue(name = \"session$TokenTwo\"" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some", + "* @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = \\$some", + "* @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = \\$some" + ), + apiSources.resolve("src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt"), + List.of( + "SQ = \\\\\";", + "SBS = \\\\\\\\;", + "DBS = \\\\\\\\\\\\\\\\;", + "SD = \\\\$some" + ) + )); + } + + private Path generateApiSources( + String specFilePath, + Map additionalProperties, + Map generatorPropertyDefaults + ) { + File outputDir; + try { + outputDir = Files.createTempDirectory("test").toFile().getCanonicalFile(); + } catch (IOException e) { + throw new RuntimeException(e); + } + outputDir.deleteOnExit(); + String outputPath = outputDir.getAbsolutePath().replace('\\', '/'); + KotlinSpringServerCodegen codegen = new KotlinSpringServerCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(KotlinSpringServerCodegen.DELEGATE_PATTERN, true); + codegen.setOutputDir(outputDir.getAbsolutePath()); + codegen.additionalProperties().putAll(additionalProperties); - List files = new DefaultGenerator() - .opts( - new ClientOptInput() - .openAPI(TestUtils.parseSpec("src/test/resources/3_0/kotlin/issue21238_queryParam_validation.yaml")) - .config(codegen) - ) - .generate(); + ClientOptInput input = new ClientOptInput() + .openAPI(TestUtils.parseSpec(specFilePath)) + .config(codegen); - Assertions.assertThat(files).contains( - new File(output, "src/main/kotlin/org/openapitools/api/PetApi.kt"), - new File(output, "src/main/kotlin/org/openapitools/api/UserApi.kt") - ); + DefaultGenerator generator = new DefaultGenerator(); + for (var entry : generatorPropertyDefaults.entrySet()) { + generator.setGeneratorPropertyDefault(entry.getKey(), entry.getValue()); + } + generator.opts(input).generate(); + + return Paths.get(outputPath); + } + + private static void assertGeneratedFilesContain(Map> expectedSnippetsByPathsToFiles) { + for (var expectedSnippetsByPathToFile : expectedSnippetsByPathsToFiles.entrySet()) { + assertFileContains(expectedSnippetsByPathToFile.getKey(), expectedSnippetsByPathToFile.getValue().toArray(new String[0])); + } + } + + private static void assertGeneratedFilesNotContain(Map> unexpectedSnippetsByPathsToFiles) { + for (var unexpectedSnippetsByPathToFile : unexpectedSnippetsByPathsToFiles.entrySet()) { + assertFileNotContains(unexpectedSnippetsByPathToFile.getKey(), unexpectedSnippetsByPathToFile.getValue().toArray(new String[0])); + } + } - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApi.kt"), - "@NotNull", "@Valid"); - assertFileContains(Paths.get(output + "/src/main/kotlin/org/openapitools/api/UserApi.kt"), - "@NotNull", "@Valid", "@Pattern(regexp=\"^[a-zA-Z0-9]+[a-zA-Z0-9\\\\.\\\\-_]*[a-zA-Z0-9]+$\")"); + private static void assertGeneratedFilesExist(List files) { + for (Path file : files) { + Assertions.assertThat(Files.exists(file)) + .withFailMessage("Expected file %s to exist but was not found", file.toAbsolutePath()) + .isTrue(); + } } @DataProvider diff --git a/modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml b/modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml new file mode 100644 index 000000000000..2702754d656e --- /dev/null +++ b/modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml @@ -0,0 +1,808 @@ +swagger: '2.0' +info: + description: 'This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.' + version: 1.0.0 + title: OpenAPI Petstore + license: + name: Apache-2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0.html' +host: petstore.swagger.io +basePath: /v2 +tags: + - name: pet + description: Everything about your Pets + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user +schemes: + - http +paths: + /pet: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + put: + tags: + - pet + summary: Update an existing pet + description: '' + operationId: updatePet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '400': + description: Invalid ID supplied + '404': + description: Pet not found + '405': + description: Validation exception + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + produces: + - application/xml + - application/json + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + type: array + items: + type: string + enum: + - available + - pending + - sold + default: available + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid status value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: 'Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' + operationId: findPetsByTags + produces: + - application/xml + - application/json + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + type: array + items: + type: string + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid tag value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + deprecated: true + '/pet/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: '' + operationId: updatePetWithForm + consumes: + - application/x-www-form-urlencoded + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + type: integer + format: int64 + - name: name + in: formData + description: Updated name of the pet + required: false + type: string + - name: status + in: formData + description: Updated status of the pet + required: false + type: string + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + delete: + tags: + - pet + summary: Deletes a pet + description: '' + operationId: deletePet + produces: + - application/xml + - application/json + parameters: + - name: api_key + in: header + required: false + type: string + - name: petId + in: path + description: Pet id to delete + required: true + type: integer + format: int64 + responses: + '400': + description: Invalid pet value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + '/pet/{petId}/uploadImage': + post: + tags: + - pet + summary: uploads an image + description: '' + operationId: uploadFile + consumes: + - multipart/form-data + produces: + - application/json + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + type: integer + format: int64 + - name: additionalMetadata + in: formData + description: Additional data to pass to server + required: false + type: string + - name: file + in: formData + description: file to upload + required: false + type: file + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/ApiResponse' + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + produces: + - application/json + parameters: [] + responses: + '200': + description: successful operation + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: '' + operationId: placeOrder + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: order placed for purchasing the pet + required: true + schema: + $ref: '#/definitions/Order' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid Order + '/store/order/{orderId}': + get: + tags: + - store + summary: Find purchase order by ID + description: 'For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions' + operationId: getOrderById + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + type: integer + maximum: 5 + minimum: 1 + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid ID supplied + '404': + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + operationId: deleteOrder + produces: + - application/xml + - application/json + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid ID supplied + '404': + description: Order not found + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Created user object + required: true + schema: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: query + description: The user name for login + required: true + type: string + - name: password + in: query + description: The password for login in clear text + required: true + type: string + responses: + '200': + description: successful operation + schema: + type: string + headers: + X-Rate-Limit: + type: integer + format: int32 + description: calls per hour allowed by the user + X-Expires-After: + type: string + format: date-time + description: date in UTC when token expires + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + produces: + - application/xml + - application/json + parameters: [] + responses: + default: + description: successful operation + '/user/{username}': + get: + tags: + - user + summary: Get user by user name + description: '' + operationId: getUserByName + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: 'The name that needs to be fetched. Use user1 for testing.' + required: true + type: string + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/User' + '400': + description: Invalid username supplied + '404': + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + type: string + - in: body + name: body + description: Updated user object + required: true + schema: + $ref: '#/definitions/User' + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found + /items/{item$Id}/something/{item$SubId}: + get: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + produces: + - application/json + parameters: + - name: item$Id + in: path + required: true + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: item$SubId + in: path + required: true + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: filter$Type + in: query + required: false + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: filter$SubType + in: query + required: false + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: X-Custom_Header + in: header + required: false + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: X-Custom_Header_two + in: header + required: false + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + + responses: + '200': + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: object + properties: + item$Id: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + name$Value: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' + details$Info: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + detail$One: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + detail$Two: + type: integer + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: 42 + /items: + post: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + consumes: + - application/x-www-form-urlencoded + produces: + - application/json + parameters: + - name: body + in: body + required: true + description: "Form object" + schema: + type: object + properties: + form$Name: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + form$Value: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: X-Post_Header + in: header + required: false + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + responses: + '201': + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + $ref: '#/definitions/ItemWithDollarAttributesAndExamples' +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header +definitions: + Order: + title: Pet Order + description: An order for a pets from the pet store + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + Category: + title: Pet category + description: A category for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + User: + title: a User + description: A User who is purchasing from the pet store + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Tag: + title: Pet Tag + description: A tag for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + title: a Pet + description: A pet for sale in the pet store + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + title: An uploaded response + description: Describes the result of uploading an image resource + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + ItemWithDollarAttributesAndExamples: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + $id: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + $name: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml b/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml index 062ab023e2d0..2e0b13e4c2d2 100644 --- a/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-tags.yaml @@ -271,12 +271,11 @@ paths: additionalMetadata: type: string description: Additional data to pass to server - required: false image: type: string description: image to upload format: binary - required: true + required: [ image ] responses: 200: description: successful operation @@ -310,14 +309,13 @@ paths: additionalMetadata: type: string description: Additional data to pass to server - required: false images: type: array items: type: string description: image to upload format: binary - required: true + required: [ images ] responses: 200: description: successful operation @@ -654,6 +652,136 @@ paths: 404: description: User not found content: { } + /items/{item$Id}/something/{item$SubId}: + get: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "item$Id" + in: path + required: true + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "item$SubId" + in: path + required: true + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "filter$Type" + in: query + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + "default": "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "filter$SubType" + in: query + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + "default": 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "X-Custom_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "X-Custom_Header_two" + in: header + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "session$Token" + in: cookie + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "session$TokenTwo" + in: cookie + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + responses: + '200': + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + type: object + properties: + item$Id: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + name$Value: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' + details$Info: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + detail$One: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + detail$Two: + type: integer + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: 42 + /items: + post: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + form$Name: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + form$Value: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "X-Post_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + + responses: + "201": + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" components: schemas: Order: @@ -786,6 +914,20 @@ components: message: type: string description: Describes the result of uploading an image resource + ItemWithDollarAttributesAndExamples: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + $id: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + $name: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" securitySchemes: petstore_auth: type: oauth2 diff --git a/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml b/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml index b54ec0cd53ef..6977cdb8dce8 100644 --- a/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-with-x-kotlin-implements.yaml @@ -486,7 +486,136 @@ paths: description: Invalid username supplied '404': description: User not found - + /items/{item$Id}/something/{item$SubId}: + get: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "item$Id" + in: path + required: true + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "item$SubId" + in: path + required: true + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "filter$Type" + in: query + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + "default": "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "filter$SubType" + in: query + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + "default": 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "X-Custom_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "X-Custom_Header_two" + in: header + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "session$Token" + in: cookie + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "session$TokenTwo" + in: cookie + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + responses: + '200': + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + type: object + properties: + item$Id: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + name$Value: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' + details$Info: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + detail$One: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + detail$Two: + type: integer + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: 42 + /items: + post: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + form$Name: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + form$Value: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "X-Post_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + + responses: + "201": + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" components: securitySchemes: petstore_auth: @@ -644,3 +773,17 @@ components: type: string message: type: string + ItemWithDollarAttributesAndExamples: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + $id: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + $name: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml b/modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml new file mode 100644 index 000000000000..3aad06ee2656 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml @@ -0,0 +1,885 @@ +openapi: 3.0.0 +servers: + - url: 'http://petstore.swagger.io/v2' +info: + description: >- + This is a sample server Petstore server. For this sample, you can use the api key + `special-key` to test the authorization filters. + version: 1.0.0 + title: OpenAPI Petstore + license: + name: Apache-2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0.html' +tags: + - name: pet + description: Everything about your Pets + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user +paths: + /pet: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/Pet' + application/json: + schema: + $ref: '#/components/schemas/Pet' + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + requestBody: + $ref: '#/components/requestBodies/Pet' + put: + tags: + - pet + summary: Update an existing pet + description: '' + operationId: updatePet + externalDocs: + url: "http://petstore.swagger.io/v2/doc/updatePet" + description: "API documentation for the updatePet operation" + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/Pet' + application/json: + schema: + $ref: '#/components/schemas/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + '405': + description: Validation exception + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + requestBody: + $ref: '#/components/requestBodies/Pet' + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + style: form + explode: false + deprecated: true + schema: + type: array + items: + type: string + enum: + - available + - pending + - sold + default: available + responses: + '200': + description: successful operation + content: + application/xml: + schema: + type: array + items: + $ref: '#/components/schemas/Pet' + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Pet' + '400': + description: Invalid status value + security: + - petstore_auth: + - 'read:pets' + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: >- + Multiple tags can be provided with comma separated strings. Use tag1, + tag2, tag3 for testing. + operationId: findPetsByTags + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + style: form + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: successful operation + content: + application/xml: + schema: + type: array + items: + $ref: '#/components/schemas/Pet' + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Pet' + '400': + description: Invalid tag value + security: + - petstore_auth: + - 'read:pets' + deprecated: true + '/pet/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + schema: + type: integer + format: int64 + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/Pet' + application/json: + schema: + $ref: '#/components/schemas/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: '' + operationId: updatePetWithForm + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + schema: + type: integer + format: int64 + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + delete: + tags: + - pet + summary: Deletes a pet + description: '' + operationId: deletePet + parameters: + - name: api_key + in: header + required: false + schema: + type: string + - name: petId + in: path + description: Pet id to delete + required: true + schema: + type: integer + format: int64 + responses: + '400': + description: Invalid pet value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + '/pet/{petId}/uploadImage': + post: + tags: + - pet + summary: uploads an image + description: '' + operationId: uploadFile + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + schema: + type: integer + format: int64 + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/ApiResponse' + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + additionalMetadata: + description: Additional data to pass to server + type: string + file: + description: file to upload + type: string + format: binary + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: '' + operationId: placeOrder + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/Order' + application/json: + schema: + $ref: '#/components/schemas/Order' + '400': + description: Invalid Order + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Order' + description: order placed for purchasing the pet + required: true + '/store/order/{orderId}': + get: + tags: + - store + summary: Find purchase order by ID + description: >- + For valid response try integer IDs with value <= 5 or > 10. Other values + will generate exceptions + operationId: getOrderById + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + schema: + type: integer + format: int64 + minimum: 1 + maximum: 5 + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/Order' + application/json: + schema: + $ref: '#/components/schemas/Order' + '400': + description: Invalid ID supplied + '404': + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: >- + For valid response try integer IDs with value < 1000. Anything above + 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + schema: + type: string + responses: + '400': + description: Invalid ID supplied + '404': + description: Order not found + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + responses: + default: + description: successful operation + security: + - api_key: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/User' + description: Created user object + required: true + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + responses: + default: + description: successful operation + security: + - api_key: [] + requestBody: + $ref: '#/components/requestBodies/UserArray' + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + responses: + default: + description: successful operation + security: + - api_key: [] + requestBody: + $ref: '#/components/requestBodies/UserArray' + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + parameters: + - name: username + in: query + description: The user name for login + required: true + schema: + type: string + pattern: '^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$' + - name: password + in: query + description: The password for login in clear text + required: true + schema: + type: string + responses: + '200': + description: successful operation + headers: + Set-Cookie: + description: >- + Cookie authentication key for use with the `api_key` + apiKey authentication. + schema: + type: string + example: AUTH_KEY=abcde12345; Path=/; HttpOnly + X-Rate-Limit: + description: calls per hour allowed by the user + schema: + type: integer + format: int32 + X-Expires-After: + description: date in UTC when token expires + schema: + type: string + format: date-time + content: + application/xml: + schema: + type: string + application/json: + schema: + type: string + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + responses: + default: + description: successful operation + security: + - api_key: [] + '/user/{username}': + get: + tags: + - user + summary: Get user by user name + description: '' + operationId: getUserByName + parameters: + - name: username + in: path + description: The name that needs to be fetched. Use user1 for testing. + required: true + schema: + type: string + responses: + '200': + description: successful operation + content: + application/xml: + schema: + $ref: '#/components/schemas/User' + application/json: + schema: + $ref: '#/components/schemas/User' + '400': + description: Invalid username supplied + '404': + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + security: + - api_key: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/User' + description: Updated user object + required: true + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found + security: + - api_key: [] + /items/{item$Id}/something/{item$SubId}: + get: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "item$Id" + in: path + required: true + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "item$SubId" + in: path + required: true + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "filter$Type" + in: query + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + "default": "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "filter$SubType" + in: query + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + "default": 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "X-Custom_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "X-Custom_Header_two" + in: header + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + - name: "session$Token" + in: cookie + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + - name: "session$TokenTwo" + in: cookie + required: false + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + schema: + type: string + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + responses: + '200': + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + type: object + properties: + item$Id: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + name$Value: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' + details$Info: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + detail$One: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + detail$Two: + type: integer + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: 42 + /items: + post: + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + form$Name: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + form$Value: + type: string + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + parameters: + - name: "X-Post_Header" + in: header + required: false + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + schema: + type: string + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + + responses: + "201": + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" +externalDocs: + description: Find out more about Swagger + url: 'http://swagger.io' +components: + requestBodies: + UserArray: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/User' + description: List of user object + required: true + Pet: + content: + application/json: + schema: + $ref: '#/components/schemas/Pet' + application/xml: + schema: + $ref: '#/components/schemas/Pet' + description: Pet object that needs to be added to the store + required: true + securitySchemes: + petstore_auth: + type: oauth2 + flows: + implicit: + authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog' + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header + schemas: + Order: + title: Pet Order + description: An order for a pets from the pet store + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + Category: + title: Pet category + description: A category for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + pattern: '^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$' + xml: + name: Category + User: + title: a User + description: A User who is purchasing from the pet store + type: object + properties: + id: + type: integer + format: int64 + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Tag: + title: Pet Tag + description: A tag for a pet + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + title: a Pet + description: A pet for sale in the pet store + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + category: + $ref: '#/components/schemas/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/components/schemas/Tag' + status: + type: string + description: pet status in the store + deprecated: true + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + title: An uploaded response + description: Describes the result of uploading an image resource + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + ItemWithDollarAttributesAndExamples: + type: object + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + properties: + $id: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + $name: + type: string + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" \ No newline at end of file diff --git a/samples/client/petstore/kotlin-explicit/.openapi-generator/FILES b/samples/client/petstore/kotlin-explicit/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin-explicit/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-explicit/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-explicit/README.md b/samples/client/petstore/kotlin-explicit/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-explicit/README.md +++ b/samples/client/petstore/kotlin-explicit/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-explicit/docs/DefaultApi.md b/samples/client/petstore/kotlin-explicit/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-explicit/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-explicit/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..db8519c430e9 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +public class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + public companion object { + @JvmStatic + public val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + public fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + public fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + public fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + public fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + public fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + public fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..1a631e029da7 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +public data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..f9cde21103c0 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +public data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..f6baefe9ce20 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +public data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-gson/.openapi-generator/FILES b/samples/client/petstore/kotlin-gson/.openapi-generator/FILES index 11e6ffb28906..8a4cd2419366 100644 --- a/samples/client/petstore/kotlin-gson/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-gson/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -31,6 +36,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/main/kotlin/org/openapitools/client/infrastructure/ResponseExtensions.kt src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-gson/README.md b/samples/client/petstore/kotlin-gson/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-gson/README.md +++ b/samples/client/petstore/kotlin-gson/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-gson/docs/DefaultApi.md b/samples/client/petstore/kotlin-gson/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-gson/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-gson/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..03eb7f4ebf0c --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.google.gson.annotations.SerializedName + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..92b0a55d1b0a --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..0349fa964ada --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.google.gson.annotations.SerializedName + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerializedName("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..acb691611e13 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jackson/.openapi-generator/FILES b/samples/client/petstore/kotlin-jackson/.openapi-generator/FILES index 22d4e4fcce6c..70b2a45c9986 100644 --- a/samples/client/petstore/kotlin-jackson/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-jackson/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -27,6 +32,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/main/kotlin/org/openapitools/client/infrastructure/ResponseExtensions.kt src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-jackson/README.md b/samples/client/petstore/kotlin-jackson/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-jackson/README.md +++ b/samples/client/petstore/kotlin-jackson/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-jackson/docs/DefaultApi.md b/samples/client/petstore/kotlin-jackson/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-jackson/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-jackson/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..e334ffb99011 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.fasterxml.jackson.annotation.JsonProperty + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..ad22c1447adf --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..b084079973eb --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @get:JsonProperty("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..0fca6ff74dad --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/.openapi-generator/FILES b/samples/client/petstore/kotlin-jvm-ktor-jackson/.openapi-generator/FILES index dce25d98f090..af0f7ff79d10 100644 --- a/samples/client/petstore/kotlin-jvm-ktor-jackson/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -28,6 +33,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/HttpResponse.kt src/main/kotlin/org/openapitools/client/infrastructure/RequestConfig.kt src/main/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/README.md b/samples/client/petstore/kotlin-jvm-ktor-jackson/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-jvm-ktor-jackson/README.md +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/DefaultApi.md b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..288361ea7e52 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,123 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import org.openapitools.client.infrastructure.* +import io.ktor.client.HttpClientConfig +import io.ktor.client.request.forms.formData +import io.ktor.client.engine.HttpClientEngine +import io.ktor.http.ParametersBuilder +import com.fasterxml.jackson.databind.ObjectMapper + + open class DefaultApi( + baseUrl: String = ApiClient.BASE_URL, + httpClientEngine: HttpClientEngine? = null, + httpClientConfig: ((HttpClientConfig<*>) -> Unit)? = null, + jsonBlock: ObjectMapper.() -> Unit = ApiClient.JSON_DEFAULT, + ) : ApiClient( + baseUrl, + httpClientEngine, + httpClientConfig, + jsonBlock, + ) { + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + io.ktor.client.utils.EmptyContent + + val localVariableQuery = mutableMapOf>() + filterDollarType?.apply { localVariableQuery["filter\$Type"] = listOf("$filterDollarType") } + filterDollarSubType?.apply { localVariableQuery["filter\$SubType"] = listOf("$filterDollarSubType") } + + val localVariableHeaders = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.GET, + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return request( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + ParametersBuilder().also { + formDollarName?.apply { it.append("form\$Name", formDollarName) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue) } + }.build() + + val localVariableQuery = mutableMapOf>() + + val localVariableHeaders = mutableMapOf() + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.POST, + "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return urlEncodedFormRequest( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + } diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..ad22c1447adf --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..b084079973eb --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @get:JsonProperty("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..0fca6ff74dad --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.fasterxml.jackson.annotation.JsonEnumDefaultValue +import com.fasterxml.jackson.annotation.JsonProperty + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @get:JsonProperty("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/.openapi-generator/FILES b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/.openapi-generator/FILES index 11e6ffb28906..8a4cd2419366 100644 --- a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -31,6 +36,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/main/kotlin/org/openapitools/client/infrastructure/ResponseExtensions.kt src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/README.md b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/README.md +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/DefaultApi.md b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..92d5144da1c4 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,234 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.google.gson.annotations.SerializedName + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response = withContext(Dispatchers.IO) { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return@withContext when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + suspend fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse = withContext(Dispatchers.IO) { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return@withContext request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + suspend fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples = withContext(Dispatchers.IO) { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return@withContext when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + suspend fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse = withContext(Dispatchers.IO) { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return@withContext request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..4afb27b6861e --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,47 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..607018968226 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,52 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.google.gson.annotations.SerializedName +import java.io.Serializable + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerializedName("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..dff9c95a256b --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,47 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-volley/.openapi-generator/FILES b/samples/client/petstore/kotlin-jvm-volley/.openapi-generator/FILES index 1de427bbcb2f..ca7b8cbc8377 100644 --- a/samples/client/petstore/kotlin-jvm-volley/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-jvm-volley/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -16,6 +20,7 @@ gradlew gradlew.bat settings.gradle src/main/AndroidManifest.xml +src/main/java/org/openapitools/client/apis/DefaultApi.kt src/main/java/org/openapitools/client/apis/PetApi.kt src/main/java/org/openapitools/client/apis/StoreApi.kt src/main/java/org/openapitools/client/apis/UserApi.kt @@ -27,12 +32,18 @@ src/main/java/org/openapitools/client/infrastructure/LocalDateAdapter.kt src/main/java/org/openapitools/client/infrastructure/LocalDateTimeAdapter.kt src/main/java/org/openapitools/client/infrastructure/OffsetDateTimeAdapter.kt src/main/java/org/openapitools/client/models/Category.kt +src/main/java/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/java/org/openapitools/client/models/ModelApiResponse.kt src/main/java/org/openapitools/client/models/Order.kt src/main/java/org/openapitools/client/models/Pet.kt src/main/java/org/openapitools/client/models/Tag.kt src/main/java/org/openapitools/client/models/User.kt src/main/java/org/openapitools/client/models/room/CategoryRoomModel.kt +src/main/java/org/openapitools/client/models/room/ItemWithDollarAttributesAndExamplesRoomModel.kt +src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel.kt +src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel.kt src/main/java/org/openapitools/client/models/room/ModelApiResponseRoomModel.kt src/main/java/org/openapitools/client/models/room/OrderRoomModel.kt src/main/java/org/openapitools/client/models/room/PetRoomModel.kt diff --git a/samples/client/petstore/kotlin-jvm-volley/README.md b/samples/client/petstore/kotlin-jvm-volley/README.md index 253aa14af25b..11a0a4e2454e 100644 --- a/samples/client/petstore/kotlin-jvm-volley/README.md +++ b/samples/client/petstore/kotlin-jvm-volley/README.md @@ -175,6 +175,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status @@ -201,6 +203,9 @@ Class | Method | HTTP request | Description ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-jvm-volley/docs/DefaultApi.md b/samples/client/petstore/kotlin-jvm-volley/docs/DefaultApi.md new file mode 100644 index 000000000000..6e40a51a5e76 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/docs/DefaultApi.md @@ -0,0 +1,100 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +[**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +val result : ItemsItemIdSomethingItemSubIdGet200Response = webService.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] + **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] + **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] + **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + +val result : ItemWithDollarAttributesAndExamples = webService.itemsPost(xPostHeader, formDollarName, formDollarValue) +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] + **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] + **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-jvm-volley/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-jvm-volley/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..af636451584f --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,179 @@ +package org.openapitools.client.apis + +import android.content.Context +import com.android.volley.DefaultRetryPolicy +import com.android.volley.Request +import com.android.volley.RequestQueue +import com.android.volley.Response +import com.android.volley.toolbox.BaseHttpStack +import com.android.volley.toolbox.Volley +import java.util.* +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlin.coroutines.suspendCoroutine +import com.google.gson.reflect.TypeToken + +import org.openapitools.client.request.IRequestFactory +import org.openapitools.client.request.RequestFactory +import org.openapitools.client.infrastructure.CollectionFormats.* + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +/* +* If you wish to use a custom http stack with your client you +* can pass that to the request queue like: +* Volley.newRequestQueue(context.applicationContext, myCustomHttpStack) +*/ +class DefaultApi ( + private val context: Context, + private val requestQueue: Lazy = lazy(initializer = { + Volley.newRequestQueue(context.applicationContext) + }), + private val requestFactory: IRequestFactory = RequestFactory(), + private val basePath: String = "http://petstore.swagger.io/v2", + private val postProcessors :List <(Request<*>) -> Unit> = listOf()) { + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + */ + suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null): ItemsItemIdSomethingItemSubIdGet200Response? { + val body: Any? = null + + val contentTypes : Array = arrayOf() + val contentType: String = if (contentTypes.isNotEmpty()) { contentTypes.first() } else { "application/json" } + + // Do some work or avoid some work based on what we know about the model, + // before we delegate to a pluggable request factory template + // The request factory template contains only pure code and no templates + // to make it easy to override with your own. + + // create path and map variables + val path = "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", IRequestFactory.escapeString(itemDollarId.toString())).replace("{" + "item\$SubId" + "}", IRequestFactory.escapeString(itemDollarSubId.toString())) + + val formParams = mapOf() + + + // TODO: Cater for allowing empty values + // TODO, if its apikey auth, then add the header names here and the hardcoded auth key + // Only support hard coded apikey in query param auth for when we do this first path + val queryParams = mapOf( + "filter\$Type" to IRequestFactory.parameterToString(filterDollarType), + "filter\$SubType" to IRequestFactory.parameterToString(filterDollarSubType) + ) + .filter { it.value.isNotEmpty() } + + val headerParams: Map = mapOf( + "X-Custom_Header" to IRequestFactory.parameterToString(xCustomHeader), + "X-Custom_Header_two" to IRequestFactory.parameterToString(xCustomHeaderTwo) + ) + + return suspendCoroutine { continuation -> + val responseListener = Response.Listener { response -> + continuation.resume(response) + } + + val errorListener = Response.ErrorListener { error -> + continuation.resumeWithException(error) + } + + val responseType = object : TypeToken() {}.type + + // Call the correct request builder based on whether we have a return type or a body. + // All other switching on types must be done in code inside the builder + val request: Request = requestFactory.build( + Request.Method.GET, + "$basePath$path", + body, + headerParams, + queryParams, + formParams, + contentType, + responseType, + responseListener, + errorListener) + + postProcessors.forEach { it.invoke(request) } + + requestQueue.value.add(request) + } + } + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + */ + suspend fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): ItemWithDollarAttributesAndExamples? { + val body: Any? = null + + val contentTypes : Array = arrayOf("application/x-www-form-urlencoded") + val contentType: String = if (contentTypes.isNotEmpty()) { contentTypes.first() } else { "application/json" } + + // Do some work or avoid some work based on what we know about the model, + // before we delegate to a pluggable request factory template + // The request factory template contains only pure code and no templates + // to make it easy to override with your own. + + // create path and map variables + val path = "/items" + + val formParams = mapOf( + "form\$Name" to IRequestFactory.parameterToString(formDollarName), + "form\$Value" to IRequestFactory.parameterToString(formDollarValue) + ) + + + // TODO: Cater for allowing empty values + // TODO, if its apikey auth, then add the header names here and the hardcoded auth key + // Only support hard coded apikey in query param auth for when we do this first path + val queryParams = mapOf() + .filter { it.value.isNotEmpty() } + + val headerParams: Map = mapOf( + "X-Post_Header" to IRequestFactory.parameterToString(xPostHeader) + ) + + return suspendCoroutine { continuation -> + val responseListener = Response.Listener { response -> + continuation.resume(response) + } + + val errorListener = Response.ErrorListener { error -> + continuation.resumeWithException(error) + } + + val responseType = object : TypeToken() {}.type + + // Call the correct request builder based on whether we have a return type or a body. + // All other switching on types must be done in code inside the builder + val request: Request = requestFactory.build( + Request.Method.POST, + "$basePath$path", + body, + headerParams, + queryParams, + formParams, + contentType, + responseType, + responseListener, + errorListener) + + postProcessors.forEach { it.invoke(request) } + + requestQueue.value.add(request) + } + } +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..e54ba65bb3d5 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,51 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName +import org.openapitools.client.models.room.ItemWithDollarAttributesAndExamplesRoomModel +import org.openapitools.client.infrastructure.ITransformForStorage + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +): ITransformForStorage { + companion object { } + override fun toRoomModel(): ItemWithDollarAttributesAndExamplesRoomModel = + ItemWithDollarAttributesAndExamplesRoomModel(roomTableId = 0, + dollarId = this.dollarId, +dollarName = this.dollarName, + ) + + +} + diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..813a5cb0e1ef --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,57 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.google.gson.annotations.SerializedName +import org.openapitools.client.models.room.ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel +import org.openapitools.client.infrastructure.ITransformForStorage + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerializedName("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +): ITransformForStorage { + companion object { } + override fun toRoomModel(): ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel = + ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel(roomTableId = 0, + itemDollarId = this.itemDollarId, +nameDollarValue = this.nameDollarValue, +detailsDollarInfo = this.detailsDollarInfo, + ) + + +} + diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..64d0fe97bcd4 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,51 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.google.gson.annotations.SerializedName +import org.openapitools.client.models.room.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel +import org.openapitools.client.infrastructure.ITransformForStorage + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerializedName("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +): ITransformForStorage { + companion object { } + override fun toRoomModel(): ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel = + ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel(roomTableId = 0, + detailDollarOne = this.detailDollarOne, +detailDollarTwo = this.detailDollarTwo, + ) + + +} + diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemWithDollarAttributesAndExamplesRoomModel.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemWithDollarAttributesAndExamplesRoomModel.kt new file mode 100644 index 000000000000..66b27bcfb132 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemWithDollarAttributesAndExamplesRoomModel.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models.room + +import androidx.room.Entity +import androidx.room.Ignore +import androidx.room.PrimaryKey +import org.openapitools.client.models.* + + +@Entity(tableName = "ItemWithDollarAttributesAndExamples") +/** +* Room model for SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*/ +data class ItemWithDollarAttributesAndExamplesRoomModel ( + @PrimaryKey(autoGenerate = true) var roomTableId: Int, + + var dollarId: kotlin.String? = null, + var dollarName: kotlin.String? = null, + + ) { + + companion object { } + + fun toApiModel(): ItemWithDollarAttributesAndExamples = ItemWithDollarAttributesAndExamples( + dollarId = this.dollarId, + dollarName = this.dollarName, + ) +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel.kt new file mode 100644 index 000000000000..40217e1238ba --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models.room + +import androidx.room.Entity +import androidx.room.Ignore +import androidx.room.PrimaryKey +import org.openapitools.client.models.* + + +@Entity(tableName = "ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo") +/** +* Room model for SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*/ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel ( + @PrimaryKey(autoGenerate = true) var roomTableId: Int, + + var detailDollarOne: kotlin.String? = null, + var detailDollarTwo: kotlin.Int? = null, + + ) { + + companion object { } + + fun toApiModel(): ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + detailDollarOne = this.detailDollarOne, + detailDollarTwo = this.detailDollarTwo, + ) +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel.kt b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel.kt new file mode 100644 index 000000000000..463e554bd0a9 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel.kt @@ -0,0 +1,47 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models.room + +import androidx.room.Entity +import androidx.room.Ignore +import androidx.room.PrimaryKey +import org.openapitools.client.models.* + + +@Entity(tableName = "ItemsItemIdSomethingItemSubIdGet200Response") +/** +* Room model for +* @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some +* @param detailsDollarInfo +*/ +data class ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel ( + @PrimaryKey(autoGenerate = true) var roomTableId: Int, + + var itemDollarId: kotlin.String? = null, + var nameDollarValue: kotlin.String? = null, + var detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null, + + ) { + + companion object { } + + fun toApiModel(): ItemsItemIdSomethingItemSubIdGet200Response = ItemsItemIdSomethingItemSubIdGet200Response( + itemDollarId = this.itemDollarId, + nameDollarValue = this.nameDollarValue, + detailsDollarInfo = this.detailsDollarInfo, + ) +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/.openapi-generator/FILES b/samples/client/petstore/kotlin-kotlinx-datetime/.openapi-generator/FILES index 28c33db4a551..1742ba3bf551 100644 --- a/samples/client/petstore/kotlin-kotlinx-datetime/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-kotlinx-datetime/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -37,6 +42,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/README.md b/samples/client/petstore/kotlin-kotlinx-datetime/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-kotlinx-datetime/README.md +++ b/samples/client/petstore/kotlin-kotlinx-datetime/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/docs/DefaultApi.md b/samples/client/petstore/kotlin-kotlinx-datetime/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..7148a21f106d --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..6097520ba6a5 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..0e4f0c7bf01e --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..ad40da03ec55 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-modelMutable/.openapi-generator/FILES b/samples/client/petstore/kotlin-modelMutable/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin-modelMutable/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-modelMutable/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-modelMutable/README.md b/samples/client/petstore/kotlin-modelMutable/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-modelMutable/README.md +++ b/samples/client/petstore/kotlin-modelMutable/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-modelMutable/docs/DefaultApi.md b/samples/client/petstore/kotlin-modelMutable/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-modelMutable/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-modelMutable/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..7148a21f106d --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..a8f0a8920c45 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + var dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + var dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..11e80e855cb2 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + var itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + var nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + var detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..45158132062a --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + var detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + var detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-moshi-codegen/.openapi-generator/FILES b/samples/client/petstore/kotlin-moshi-codegen/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin-moshi-codegen/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-moshi-codegen/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-moshi-codegen/README.md b/samples/client/petstore/kotlin-moshi-codegen/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-moshi-codegen/README.md +++ b/samples/client/petstore/kotlin-moshi-codegen/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-moshi-codegen/docs/DefaultApi.md b/samples/client/petstore/kotlin-moshi-codegen/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-moshi-codegen/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..7148a21f106d --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..1da8f0fb8b65 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@JsonClass(generateAdapter = true) + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..7c2606dcc6db --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@JsonClass(generateAdapter = true) + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..b567070c0372 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@JsonClass(generateAdapter = true) + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/.openapi-generator/FILES b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/.openapi-generator/FILES index 43312ee7b338..5a194149ea11 100644 --- a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle.kts docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle.kts +src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt src/commonMain/kotlin/org/openapitools/client/apis/PetApi.kt src/commonMain/kotlin/org/openapitools/client/apis/StoreApi.kt src/commonMain/kotlin/org/openapitools/client/apis/UserApi.kt @@ -31,6 +36,9 @@ src/commonMain/kotlin/org/openapitools/client/infrastructure/PartConfig.kt src/commonMain/kotlin/org/openapitools/client/infrastructure/RequestConfig.kt src/commonMain/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/commonMain/kotlin/org/openapitools/client/models/Category.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/commonMain/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/commonMain/kotlin/org/openapitools/client/models/Order.kt src/commonMain/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/README.md b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/README.md index 7759e04bf87c..382bfbaf24c2 100644 --- a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/README.md +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/README.md @@ -36,6 +36,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -62,6 +64,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/DefaultApi.md b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..c53134dea418 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,127 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import org.openapitools.client.infrastructure.* +import io.ktor.client.HttpClient +import io.ktor.client.HttpClientConfig +import io.ktor.client.request.forms.formData +import io.ktor.client.engine.HttpClientEngine +import kotlinx.serialization.json.Json +import io.ktor.http.ParametersBuilder +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +open class DefaultApi : ApiClient { + + constructor( + baseUrl: String = ApiClient.BASE_URL, + httpClientEngine: HttpClientEngine? = null, + httpClientConfig: ((HttpClientConfig<*>) -> Unit)? = null, + jsonSerializer: Json = ApiClient.JSON_DEFAULT + ) : super(baseUrl = baseUrl, httpClientEngine = httpClientEngine, httpClientConfig = httpClientConfig, jsonBlock = jsonSerializer) + + constructor( + baseUrl: String, + httpClient: HttpClient + ): super(baseUrl = baseUrl, httpClient = httpClient) + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + io.ktor.client.utils.EmptyContent + + val localVariableQuery = mutableMapOf>() + filterDollarType?.apply { localVariableQuery["filter\$Type"] = listOf("$filterDollarType") } + filterDollarSubType?.apply { localVariableQuery["filter\$SubType"] = listOf("$filterDollarSubType") } + val localVariableHeaders = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.GET, + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return request( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + ParametersBuilder().also { + formDollarName?.apply { it.append("form\$Name", formDollarName.toString()) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue.toString()) } + }.build() + + val localVariableQuery = mutableMapOf>() + val localVariableHeaders = mutableMapOf() + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.POST, + "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return urlEncodedFormRequest( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + +} diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..1378e4abeb68 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..478ea41ae1f9 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,47 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@Serializable + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerialName(value = "details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9161709b5578 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$Two") val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform/.openapi-generator/FILES b/samples/client/petstore/kotlin-multiplatform/.openapi-generator/FILES index 366355a6a677..fd866df3d241 100644 --- a/samples/client/petstore/kotlin-multiplatform/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-multiplatform/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle.kts docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -10,6 +14,7 @@ docs/Tag.md docs/User.md docs/UserApi.md settings.gradle.kts +src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt src/commonMain/kotlin/org/openapitools/client/apis/PetApi.kt src/commonMain/kotlin/org/openapitools/client/apis/StoreApi.kt src/commonMain/kotlin/org/openapitools/client/apis/UserApi.kt @@ -27,6 +32,9 @@ src/commonMain/kotlin/org/openapitools/client/infrastructure/PartConfig.kt src/commonMain/kotlin/org/openapitools/client/infrastructure/RequestConfig.kt src/commonMain/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt src/commonMain/kotlin/org/openapitools/client/models/Category.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/commonMain/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/commonMain/kotlin/org/openapitools/client/models/Order.kt src/commonMain/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-multiplatform/README.md b/samples/client/petstore/kotlin-multiplatform/README.md index 7759e04bf87c..382bfbaf24c2 100644 --- a/samples/client/petstore/kotlin-multiplatform/README.md +++ b/samples/client/petstore/kotlin-multiplatform/README.md @@ -36,6 +36,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -62,6 +64,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-multiplatform/docs/DefaultApi.md b/samples/client/petstore/kotlin-multiplatform/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-multiplatform/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-multiplatform/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..c53134dea418 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,127 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import org.openapitools.client.infrastructure.* +import io.ktor.client.HttpClient +import io.ktor.client.HttpClientConfig +import io.ktor.client.request.forms.formData +import io.ktor.client.engine.HttpClientEngine +import kotlinx.serialization.json.Json +import io.ktor.http.ParametersBuilder +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +open class DefaultApi : ApiClient { + + constructor( + baseUrl: String = ApiClient.BASE_URL, + httpClientEngine: HttpClientEngine? = null, + httpClientConfig: ((HttpClientConfig<*>) -> Unit)? = null, + jsonSerializer: Json = ApiClient.JSON_DEFAULT + ) : super(baseUrl = baseUrl, httpClientEngine = httpClientEngine, httpClientConfig = httpClientConfig, jsonBlock = jsonSerializer) + + constructor( + baseUrl: String, + httpClient: HttpClient + ): super(baseUrl = baseUrl, httpClient = httpClient) + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + io.ktor.client.utils.EmptyContent + + val localVariableQuery = mutableMapOf>() + filterDollarType?.apply { localVariableQuery["filter\$Type"] = listOf("$filterDollarType") } + filterDollarSubType?.apply { localVariableQuery["filter\$SubType"] = listOf("$filterDollarSubType") } + val localVariableHeaders = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.GET, + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return request( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + */ + @Suppress("UNCHECKED_CAST") + open suspend fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): HttpResponse { + + val localVariableAuthNames = listOf() + + val localVariableBody = + ParametersBuilder().also { + formDollarName?.apply { it.append("form\$Name", formDollarName.toString()) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue.toString()) } + }.build() + + val localVariableQuery = mutableMapOf>() + val localVariableHeaders = mutableMapOf() + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + + val localVariableConfig = RequestConfig( + RequestMethod.POST, + "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + ) + + return urlEncodedFormRequest( + localVariableConfig, + localVariableBody, + localVariableAuthNames + ).wrap() + } + + +} diff --git a/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..1378e4abeb68 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..478ea41ae1f9 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,47 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@Serializable + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerialName(value = "details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9161709b5578 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,43 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.* +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$Two") val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nonpublic/.openapi-generator/FILES b/samples/client/petstore/kotlin-nonpublic/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin-nonpublic/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-nonpublic/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-nonpublic/README.md b/samples/client/petstore/kotlin-nonpublic/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-nonpublic/README.md +++ b/samples/client/petstore/kotlin-nonpublic/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-nonpublic/docs/DefaultApi.md b/samples/client/petstore/kotlin-nonpublic/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-nonpublic/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-nonpublic/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..853c19ba32ee --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +internal class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..a901eab844c8 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +internal data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..6e68c0f5c327 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +internal data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..1275909dac23 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +internal data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nullable/.openapi-generator/FILES b/samples/client/petstore/kotlin-nullable/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin-nullable/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-nullable/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-nullable/README.md b/samples/client/petstore/kotlin-nullable/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin-nullable/README.md +++ b/samples/client/petstore/kotlin-nullable/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-nullable/docs/DefaultApi.md b/samples/client/petstore/kotlin-nullable/docs/DefaultApi.md new file mode 100644 index 000000000000..c77b8c4af3b0 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response? = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples? = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-nullable/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-nullable/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..d4c8633df5d6 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response or null + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response? { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response? + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples or null + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples? { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples? + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..eaf2f7c60e93 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..d7816d3c32ac --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,53 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..6d8498f303e5 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..0775b453c460 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response? = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples? = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/.openapi-generator/FILES b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/.openapi-generator/FILES index e301c7cd1bd7..1646b9920225 100644 --- a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -15,6 +19,7 @@ gradlew gradlew.bat proguard-rules.pro settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -39,6 +44,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/URLAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/README.md b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/README.md index b603d0102f26..c44ede638845 100644 --- a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/README.md +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/DefaultApi.md b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/DefaultApi.md new file mode 100644 index 000000000000..130db1bafefb --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/DefaultApi.md @@ -0,0 +1,98 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +val result : ItemsItemIdSomethingItemSubIdGet200Response = webService.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + +val result : ItemWithDollarAttributesAndExamples = webService.itemsPost(xPostHeader, formDollarName, formDollarValue) +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..1c9fb16f2bd1 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,48 @@ +package org.openapitools.client.apis + +import org.openapitools.client.infrastructure.CollectionFormats.* +import retrofit2.http.* +import retrofit2.Call +import okhttp3.RequestBody +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +interface DefaultApi { + /** + * GET items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 200: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return [Call]<[ItemsItemIdSomethingItemSubIdGet200Response]> + */ + @GET("items/{item\$Id}/something/{item\$SubId}") + fun itemsItemIdSomethingItemSubIdGet(@Path("item\$Id") itemDollarId: kotlin.String, @Path("item\$SubId") itemDollarSubId: kotlin.String, @Query("filter\$Type") filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Query("filter\$SubType") filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Header("X-Custom_Header") xCustomHeader: kotlin.String? = null, @Header("X-Custom_Header_two") xCustomHeaderTwo: kotlin.String? = null): Call + + /** + * POST items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 201: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return [Call]<[ItemWithDollarAttributesAndExamples]> + */ + @FormUrlEncoded + @POST("items") + fun itemsPost(@Header("X-Post_Header") xPostHeader: kotlin.String? = null, @Field("form\$Name") formDollarName: kotlin.String? = null, @Field("form\$Value") formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): Call + +} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..df6b5b311aca --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.Serializable as KSerializable +import kotlinx.serialization.SerialName +import kotlinx.serialization.Contextual +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@KSerializable + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..ddaf67833f4f --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import kotlinx.serialization.Serializable as KSerializable +import kotlinx.serialization.SerialName +import kotlinx.serialization.Contextual +import java.io.Serializable + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@KSerializable + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @SerialName(value = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..aac1ee9db190 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import kotlinx.serialization.Serializable as KSerializable +import kotlinx.serialization.SerialName +import kotlinx.serialization.Contextual +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@KSerializable + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @SerialName(value = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/.openapi-generator/FILES b/samples/client/petstore/kotlin-retrofit2-rx3/.openapi-generator/FILES index d84bff350d27..f5f63a89431f 100644 --- a/samples/client/petstore/kotlin-retrofit2-rx3/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-retrofit2-rx3/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -34,6 +39,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/README.md b/samples/client/petstore/kotlin-retrofit2-rx3/README.md index b603d0102f26..c44ede638845 100644 --- a/samples/client/petstore/kotlin-retrofit2-rx3/README.md +++ b/samples/client/petstore/kotlin-retrofit2-rx3/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/docs/DefaultApi.md b/samples/client/petstore/kotlin-retrofit2-rx3/docs/DefaultApi.md new file mode 100644 index 000000000000..130db1bafefb --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/docs/DefaultApi.md @@ -0,0 +1,98 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +val result : ItemsItemIdSomethingItemSubIdGet200Response = webService.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + +val result : ItemWithDollarAttributesAndExamples = webService.itemsPost(xPostHeader, formDollarName, formDollarValue) +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..99913c73a3d0 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,48 @@ +package org.openapitools.client.apis + +import org.openapitools.client.infrastructure.CollectionFormats.* +import retrofit2.http.* +import okhttp3.RequestBody +import io.reactivex.rxjava3.core.Single +import io.reactivex.rxjava3.core.Completable +import com.squareup.moshi.Json + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +interface DefaultApi { + /** + * GET items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 200: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return [Call]<[ItemsItemIdSomethingItemSubIdGet200Response]> + */ + @GET("items/{item\$Id}/something/{item\$SubId}") + fun itemsItemIdSomethingItemSubIdGet(@Path("item\$Id") itemDollarId: kotlin.String, @Path("item\$SubId") itemDollarSubId: kotlin.String, @Query("filter\$Type") filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Query("filter\$SubType") filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Header("X-Custom_Header") xCustomHeader: kotlin.String? = null, @Header("X-Custom_Header_two") xCustomHeaderTwo: kotlin.String? = null): Single + + /** + * POST items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 201: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return [Call]<[ItemWithDollarAttributesAndExamples]> + */ + @FormUrlEncoded + @POST("items") + fun itemsPost(@Header("X-Post_Header") xPostHeader: kotlin.String? = null, @Field("form\$Name") formDollarName: kotlin.String? = null, @Field("form\$Value") formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): Single + +} diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..6097520ba6a5 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..0e4f0c7bf01e --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..ad40da03ec55 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2/.openapi-generator/FILES b/samples/client/petstore/kotlin-retrofit2/.openapi-generator/FILES index d84bff350d27..f5f63a89431f 100644 --- a/samples/client/petstore/kotlin-retrofit2/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin-retrofit2/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -34,6 +39,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin-retrofit2/README.md b/samples/client/petstore/kotlin-retrofit2/README.md index b603d0102f26..c44ede638845 100644 --- a/samples/client/petstore/kotlin-retrofit2/README.md +++ b/samples/client/petstore/kotlin-retrofit2/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin-retrofit2/docs/DefaultApi.md b/samples/client/petstore/kotlin-retrofit2/docs/DefaultApi.md new file mode 100644 index 000000000000..130db1bafefb --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/docs/DefaultApi.md @@ -0,0 +1,98 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +val result : ItemsItemIdSomethingItemSubIdGet200Response = webService.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.* +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiClient = ApiClient() +val webService = apiClient.createWebservice(DefaultApi::class.java) +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + +val result : ItemWithDollarAttributesAndExamples = webService.itemsPost(xPostHeader, formDollarName, formDollarValue) +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin-retrofit2/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin-retrofit2/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..53a7cf48e432 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,47 @@ +package org.openapitools.client.apis + +import org.openapitools.client.infrastructure.CollectionFormats.* +import retrofit2.http.* +import retrofit2.Call +import okhttp3.RequestBody +import com.squareup.moshi.Json + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +interface DefaultApi { + /** + * GET items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 200: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return [Call]<[ItemsItemIdSomethingItemSubIdGet200Response]> + */ + @GET("items/{item\$Id}/something/{item\$SubId}") + fun itemsItemIdSomethingItemSubIdGet(@Path("item\$Id") itemDollarId: kotlin.String, @Path("item\$SubId") itemDollarSubId: kotlin.String, @Query("filter\$Type") filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Query("filter\$SubType") filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Header("X-Custom_Header") xCustomHeader: kotlin.String? = null, @Header("X-Custom_Header_two") xCustomHeaderTwo: kotlin.String? = null): Call + + /** + * POST items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * Responses: + * - 201: SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return [Call]<[ItemWithDollarAttributesAndExamples]> + */ + @FormUrlEncoded + @POST("items") + fun itemsPost(@Header("X-Post_Header") xPostHeader: kotlin.String? = null, @Field("form\$Name") formDollarName: kotlin.String? = null, @Field("form\$Value") formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some"): Call + +} diff --git a/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..6097520ba6a5 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..0e4f0c7bf01e --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,49 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..ad40da03ec55 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,44 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) { + + +} + diff --git a/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin/.openapi-generator/FILES b/samples/client/petstore/kotlin/.openapi-generator/FILES index ab27444a312c..f506a89d0405 100644 --- a/samples/client/petstore/kotlin/.openapi-generator/FILES +++ b/samples/client/petstore/kotlin/.openapi-generator/FILES @@ -2,6 +2,10 @@ README.md build.gradle docs/ApiResponse.md docs/Category.md +docs/DefaultApi.md +docs/ItemWithDollarAttributesAndExamples.md +docs/ItemsItemIdSomethingItemSubIdGet200Response.md +docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md docs/Order.md docs/Pet.md docs/PetApi.md @@ -14,6 +18,7 @@ gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat settings.gradle +src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt src/main/kotlin/org/openapitools/client/apis/PetApi.kt src/main/kotlin/org/openapitools/client/apis/StoreApi.kt src/main/kotlin/org/openapitools/client/apis/UserApi.kt @@ -35,6 +40,9 @@ src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt src/main/kotlin/org/openapitools/client/models/Category.kt +src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/client/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/client/models/Order.kt src/main/kotlin/org/openapitools/client/models/Pet.kt diff --git a/samples/client/petstore/kotlin/README.md b/samples/client/petstore/kotlin/README.md index 4457cf25ebc7..20a68639ce60 100644 --- a/samples/client/petstore/kotlin/README.md +++ b/samples/client/petstore/kotlin/README.md @@ -45,6 +45,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* | Class | Method | HTTP request | Description | | ------------ | ------------- | ------------- | ------------- | +| *DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| *DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store | | *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet | | *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status | @@ -71,6 +73,9 @@ All URIs are relative to *http://petstore.swagger.io/v2* ## Documentation for Models - [org.openapitools.client.models.Category](docs/Category.md) + - [org.openapitools.client.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.client.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.client.models.Order](docs/Order.md) - [org.openapitools.client.models.Pet](docs/Pet.md) diff --git a/samples/client/petstore/kotlin/docs/DefaultApi.md b/samples/client/petstore/kotlin/docs/DefaultApi.md new file mode 100644 index 000000000000..29da161a1808 --- /dev/null +++ b/samples/client/petstore/kotlin/docs/DefaultApi.md @@ -0,0 +1,116 @@ +# DefaultApi + +All URIs are relative to *http://petstore.swagger.io/v2* + +| Method | HTTP request | Description | +| ------------- | ------------- | ------------- | +| [**itemsItemIdSomethingItemSubIdGet**](DefaultApi.md#itemsItemIdSomethingItemSubIdGet) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | +| [**itemsPost**](DefaultApi.md#itemsPost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | + + + +# **itemsItemIdSomethingItemSubIdGet** +> ItemsItemIdSomethingItemSubIdGet200Response itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +try { + val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsItemIdSomethingItemSubIdGet") + e.printStackTrace() +} +``` + +### Parameters +| **itemDollarId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **itemDollarSubId** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | | +| **filterDollarType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **filterDollarSubType** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | +| **xCustomHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **xCustomHeaderTwo** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + +### Return type + +[**ItemsItemIdSomethingItemSubIdGet200Response**](ItemsItemIdSomethingItemSubIdGet200Response.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +# **itemsPost** +> ItemWithDollarAttributesAndExamples itemsPost(xPostHeader, formDollarName, formDollarValue) + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +SQ = \"; SBS = \\; DBS = \\\\; SD = $some + +### Example +```kotlin +// Import classes: +//import org.openapitools.client.infrastructure.* +//import org.openapitools.client.models.* + +val apiInstance = DefaultApi() +val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some +try { + val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + println(result) +} catch (e: ClientException) { + println("4xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} catch (e: ServerException) { + println("5xx response calling DefaultApi#itemsPost") + e.printStackTrace() +} +``` + +### Parameters +| **xPostHeader** | **kotlin.String**| SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **formDollarName** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] | +| Name | Type | Description | Notes | +| ------------- | ------------- | ------------- | ------------- | +| **formDollarValue** | **kotlin.String**| SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some | [optional] [default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some"] | + +### Return type + +[**ItemWithDollarAttributesAndExamples**](ItemWithDollarAttributesAndExamples.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: application/json + diff --git a/samples/client/petstore/kotlin/docs/ItemWithDollarAttributesAndExamples.md b/samples/client/petstore/kotlin/docs/ItemWithDollarAttributesAndExamples.md new file mode 100644 index 000000000000..69c42f17e9c3 --- /dev/null +++ b/samples/client/petstore/kotlin/docs/ItemWithDollarAttributesAndExamples.md @@ -0,0 +1,11 @@ + +# ItemWithDollarAttributesAndExamples + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **dollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **dollarName** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200Response.md b/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200Response.md new file mode 100644 index 000000000000..5aa6d99fce1c --- /dev/null +++ b/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200Response.md @@ -0,0 +1,12 @@ + +# ItemsItemIdSomethingItemSubIdGet200Response + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **itemDollarId** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **nameDollarValue** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailsDollarInfo** | [**ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo**](ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) | | [optional] | + + + diff --git a/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md b/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md new file mode 100644 index 000000000000..46869a9706c7 --- /dev/null +++ b/samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md @@ -0,0 +1,11 @@ + +# ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +## Properties +| Name | Type | Description | Notes | +| ------------ | ------------- | ------------- | ------------- | +| **detailDollarOne** | **kotlin.String** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | +| **detailDollarTwo** | **kotlin.Int** | SQ = \"; SBS = \\; DBS = \\\\; SD = $some | [optional] | + + + diff --git a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt new file mode 100644 index 000000000000..7148a21f106d --- /dev/null +++ b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt @@ -0,0 +1,232 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import java.io.IOException +import okhttp3.Call +import okhttp3.HttpUrl + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +import com.squareup.moshi.Json + +import org.openapitools.client.infrastructure.ApiClient +import org.openapitools.client.infrastructure.ApiResponse +import org.openapitools.client.infrastructure.ClientException +import org.openapitools.client.infrastructure.ClientError +import org.openapitools.client.infrastructure.ServerException +import org.openapitools.client.infrastructure.ServerError +import org.openapitools.client.infrastructure.MultiValueMap +import org.openapitools.client.infrastructure.PartConfig +import org.openapitools.client.infrastructure.RequestConfig +import org.openapitools.client.infrastructure.RequestMethod +import org.openapitools.client.infrastructure.ResponseType +import org.openapitools.client.infrastructure.Success +import org.openapitools.client.infrastructure.toMultiValue + +class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory = ApiClient.defaultClient) : ApiClient(basePath, client) { + companion object { + @JvmStatic + val defaultBasePath: String by lazy { + System.getProperties().getProperty(ApiClient.baseUrlKey, "http://petstore.swagger.io/v2") + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ItemsItemIdSomethingItemSubIdGet200Response + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", filterDollarSubType: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", xCustomHeader: kotlin.String? = null, xCustomHeaderTwo: kotlin.String? = null) : ItemsItemIdSomethingItemSubIdGet200Response { + val localVarResponse = itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemsItemIdSomethingItemSubIdGet200Response + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * GET /items/{item$Id}/something/{item$SubId} + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsItemIdSomethingItemSubIdGetWithHttpInfo(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId = itemDollarId, itemDollarSubId = itemDollarSubId, filterDollarType = filterDollarType, filterDollarSubType = filterDollarSubType, xCustomHeader = xCustomHeader, xCustomHeaderTwo = xCustomHeaderTwo) + + return request( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsItemIdSomethingItemSubIdGet + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @return RequestConfig + */ + fun itemsItemIdSomethingItemSubIdGetRequestConfig(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String?, filterDollarSubType: kotlin.String?, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?) : RequestConfig { + val localVariableBody = null + val localVariableQuery: MultiValueMap = mutableMapOf>() + .apply { + if (filterDollarType != null) { + put("filter\$Type", listOf(filterDollarType.toString())) + } + if (filterDollarSubType != null) { + put("filter\$SubType", listOf(filterDollarSubType.toString())) + } + } + val localVariableHeaders: MutableMap = mutableMapOf() + xCustomHeader?.apply { localVariableHeaders["X-Custom_Header"] = this.toString() } + xCustomHeaderTwo?.apply { localVariableHeaders["X-Custom_Header_two"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.GET, + path = "/items/{item\$Id}/something/{item\$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ItemWithDollarAttributesAndExamples + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + * @throws UnsupportedOperationException If the API returns an informational or redirection response + * @throws ClientException If the API returns a client error response + * @throws ServerException If the API returns a server error response + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class, UnsupportedOperationException::class, ClientException::class, ServerException::class) + fun itemsPost(xPostHeader: kotlin.String? = null, formDollarName: kotlin.String? = null, formDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") : ItemWithDollarAttributesAndExamples { + val localVarResponse = itemsPostWithHttpInfo(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return when (localVarResponse.responseType) { + ResponseType.Success -> (localVarResponse as Success<*>).data as ItemWithDollarAttributesAndExamples + ResponseType.Informational -> throw UnsupportedOperationException("Client does not support Informational responses.") + ResponseType.Redirection -> throw UnsupportedOperationException("Client does not support Redirection responses.") + ResponseType.ClientError -> { + val localVarError = localVarResponse as ClientError<*> + throw ClientException("Client error : ${localVarError.statusCode} ${localVarError.message.orEmpty()}", localVarError.statusCode, localVarResponse) + } + ResponseType.ServerError -> { + val localVarError = localVarResponse as ServerError<*> + throw ServerException("Server error : ${localVarError.statusCode} ${localVarError.message.orEmpty()} ${localVarError.body}", localVarError.statusCode, localVarResponse) + } + } + } + + /** + * POST /items + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return ApiResponse + * @throws IllegalStateException If the request is not correctly configured + * @throws IOException Rethrows the OkHttp execute method exception + */ + @Suppress("UNCHECKED_CAST") + @Throws(IllegalStateException::class, IOException::class) + fun itemsPostWithHttpInfo(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : ApiResponse { + val localVariableConfig = itemsPostRequestConfig(xPostHeader = xPostHeader, formDollarName = formDollarName, formDollarValue = formDollarValue) + + return request>, ItemWithDollarAttributesAndExamples>( + localVariableConfig + ) + } + + /** + * To obtain the request config of the operation itemsPost + * + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @return RequestConfig + */ + fun itemsPostRequestConfig(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String?) : RequestConfig>> { + val localVariableBody = mapOf( + "form\$Name" to PartConfig(body = formDollarName, headers = mutableMapOf()), + "form\$Value" to PartConfig(body = formDollarValue, headers = mutableMapOf()),) + val localVariableQuery: MultiValueMap = mutableMapOf() + val localVariableHeaders: MutableMap = mutableMapOf("Content-Type" to "application/x-www-form-urlencoded") + xPostHeader?.apply { localVariableHeaders["X-Post_Header"] = this.toString() } + localVariableHeaders["Accept"] = "application/json" + + return RequestConfig( + method = RequestMethod.POST, + path = "/items", + query = localVariableQuery, + headers = localVariableHeaders, + requiresAuthentication = false, + body = localVariableBody + ) + } + + + private fun encodeURIComponent(uriComponent: kotlin.String): kotlin.String = + HttpUrl.Builder().scheme("http").host("localhost").addPathSegment(uriComponent).build().encodedPathSegments[0] +} diff --git a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..eaf2f7c60e93 --- /dev/null +++ b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..d7816d3c32ac --- /dev/null +++ b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,53 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Json(name = "details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..6d8498f303e5 --- /dev/null +++ b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import java.io.Serializable + +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + @Json(name = "detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) : Serializable { + companion object { + private const val serialVersionUID: Long = 123 + } + + +} + diff --git a/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt new file mode 100644 index 000000000000..a489aed86b9f --- /dev/null +++ b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt @@ -0,0 +1,54 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.apis + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response + +class DefaultApiTest : ShouldSpec() { + init { + // uncomment below to create an instance of DefaultApi + //val apiInstance = DefaultApi() + + // to test itemsItemIdSomethingItemSubIdGet + should("test itemsItemIdSomethingItemSubIdGet") { + // uncomment below to test itemsItemIdSomethingItemSubIdGet + //val itemDollarId : kotlin.String = itemDollarId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val itemDollarSubId : kotlin.String = itemDollarSubId_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarType : kotlin.String = filterDollarType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val filterDollarSubType : kotlin.String = filterDollarSubType_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeader : kotlin.String = xCustomHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val xCustomHeaderTwo : kotlin.String = xCustomHeaderTwo_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val result : ItemsItemIdSomethingItemSubIdGet200Response = apiInstance.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo) + //result shouldBe ("TODO") + } + + // to test itemsPost + should("test itemsPost") { + // uncomment below to test itemsPost + //val xPostHeader : kotlin.String = xPostHeader_example // kotlin.String | SQ = \"; SBS = \\; DBS = \\\\; SD = $some + //val formDollarName : kotlin.String = formDollarName_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val formDollarValue : kotlin.String = formDollarValue_example // kotlin.String | SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some + //val result : ItemWithDollarAttributesAndExamples = apiInstance.itemsPost(xPostHeader, formDollarName, formDollarValue) + //result shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt new file mode 100644 index 000000000000..c6469f181562 --- /dev/null +++ b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemWithDollarAttributesAndExamples + +class ItemWithDollarAttributesAndExamplesTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemWithDollarAttributesAndExamples + //val modelInstance = ItemWithDollarAttributesAndExamples() + + // to test the property `dollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarId") { + // uncomment below to test the property + //modelInstance.dollarId shouldBe ("TODO") + } + + // to test the property `dollarName` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test dollarName") { + // uncomment below to test the property + //modelInstance.dollarName shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt new file mode 100644 index 000000000000..e2fee2f048f8 --- /dev/null +++ b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt @@ -0,0 +1,41 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo() + + // to test the property `detailDollarOne` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarOne") { + // uncomment below to test the property + //modelInstance.detailDollarOne shouldBe ("TODO") + } + + // to test the property `detailDollarTwo` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test detailDollarTwo") { + // uncomment below to test the property + //modelInstance.detailDollarTwo shouldBe ("TODO") + } + + } +} diff --git a/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt new file mode 100644 index 000000000000..87ea769feeca --- /dev/null +++ b/samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt @@ -0,0 +1,48 @@ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import io.kotlintest.shouldBe +import io.kotlintest.specs.ShouldSpec + +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200Response +import org.openapitools.client.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +class ItemsItemIdSomethingItemSubIdGet200ResponseTest : ShouldSpec() { + init { + // uncomment below to create an instance of ItemsItemIdSomethingItemSubIdGet200Response + //val modelInstance = ItemsItemIdSomethingItemSubIdGet200Response() + + // to test the property `itemDollarId` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test itemDollarId") { + // uncomment below to test the property + //modelInstance.itemDollarId shouldBe ("TODO") + } + + // to test the property `nameDollarValue` - SQ = \"; SBS = \\; DBS = \\\\; SD = $some + should("test nameDollarValue") { + // uncomment below to test the property + //modelInstance.nameDollarValue shouldBe ("TODO") + } + + // to test the property `detailsDollarInfo` + should("test detailsDollarInfo") { + // uncomment below to test the property + //modelInstance.detailsDollarInfo shouldBe ("TODO") + } + + } +} diff --git a/samples/documentation/html2/index.html b/samples/documentation/html2/index.html index defce7cd6ce2..d74b2161a56e 100644 --- a/samples/documentation/html2/index.html +++ b/samples/documentation/html2/index.html @@ -1216,7 +1216,7 @@

Usage and SDK Samples

// Create an instance of the API class PetApi apiInstance = new PetApi(); - Pet pet = ; // Pet | + Pet pet = ; // Pet | Pet object that needs to be added to the store try { Pet result = apiInstance.addPet(pet); @@ -1235,7 +1235,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final Pet pet = new Pet(); // Pet | +final Pet pet = new Pet(); // Pet | Pet object that needs to be added to the store try { final result = await api_instance.addPet(pet); @@ -1253,7 +1253,7 @@

Usage and SDK Samples

public class PetApiExample { public static void main(String[] args) { PetApi apiInstance = new PetApi(); - Pet pet = ; // Pet | + Pet pet = ; // Pet | Pet object that needs to be added to the store try { Pet result = apiInstance.addPet(pet); @@ -1278,7 +1278,7 @@

Usage and SDK Samples

// Create an instance of the API class PetApi *apiInstance = [[PetApi alloc] init]; -Pet *pet = ; // +Pet *pet = ; // Pet object that needs to be added to the store // Add a new pet to the store [apiInstance addPetWith:pet @@ -1303,7 +1303,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.PetApi() -var pet = ; // {Pet} +var pet = ; // {Pet} Pet object that needs to be added to the store var callback = function(error, data, response) { if (error) { @@ -1337,7 +1337,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new PetApi(); - var pet = new Pet(); // Pet | + var pet = new Pet(); // Pet | Pet object that needs to be added to the store try { // Add a new pet to the store @@ -1361,7 +1361,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\PetApi(); -$pet = ; // Pet | +$pet = ; // Pet | Pet object that needs to be added to the store try { $result = $api_instance->addPet($pet); @@ -1382,7 +1382,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::PetApi->new(); -my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | +my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | Pet object that needs to be added to the store eval { my $result = $api_instance->addPet(pet => $pet); @@ -1405,7 +1405,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.PetApi() -pet = # Pet | +pet = # Pet | Pet object that needs to be added to the store try: # Add a new pet to the store @@ -3668,7 +3668,7 @@

Usage and SDK Samples

// Create an instance of the API class PetApi apiInstance = new PetApi(); - Pet pet = ; // Pet | + Pet pet = ; // Pet | Pet object that needs to be added to the store try { Pet result = apiInstance.updatePet(pet); @@ -3687,7 +3687,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final Pet pet = new Pet(); // Pet | +final Pet pet = new Pet(); // Pet | Pet object that needs to be added to the store try { final result = await api_instance.updatePet(pet); @@ -3705,7 +3705,7 @@

Usage and SDK Samples

public class PetApiExample { public static void main(String[] args) { PetApi apiInstance = new PetApi(); - Pet pet = ; // Pet | + Pet pet = ; // Pet | Pet object that needs to be added to the store try { Pet result = apiInstance.updatePet(pet); @@ -3730,7 +3730,7 @@

Usage and SDK Samples

// Create an instance of the API class PetApi *apiInstance = [[PetApi alloc] init]; -Pet *pet = ; // +Pet *pet = ; // Pet object that needs to be added to the store // Update an existing pet [apiInstance updatePetWith:pet @@ -3755,7 +3755,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.PetApi() -var pet = ; // {Pet} +var pet = ; // {Pet} Pet object that needs to be added to the store var callback = function(error, data, response) { if (error) { @@ -3789,7 +3789,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new PetApi(); - var pet = new Pet(); // Pet | + var pet = new Pet(); // Pet | Pet object that needs to be added to the store try { // Update an existing pet @@ -3813,7 +3813,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\PetApi(); -$pet = ; // Pet | +$pet = ; // Pet | Pet object that needs to be added to the store try { $result = $api_instance->updatePet($pet); @@ -3834,7 +3834,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::PetApi->new(); -my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | +my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | Pet object that needs to be added to the store eval { my $result = $api_instance->updatePet(pet => $pet); @@ -3857,7 +3857,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.PetApi() -pet = # Pet | +pet = # Pet | Pet object that needs to be added to the store try: # Update an existing pet @@ -6529,7 +6529,7 @@

Usage and SDK Samples

// Create an instance of the API class StoreApi apiInstance = new StoreApi(); - Order order = ; // Order | + Order order = ; // Order | order placed for purchasing the pet try { Order result = apiInstance.placeOrder(order); @@ -6548,7 +6548,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final Order order = new Order(); // Order | +final Order order = new Order(); // Order | order placed for purchasing the pet try { final result = await api_instance.placeOrder(order); @@ -6566,7 +6566,7 @@

Usage and SDK Samples

public class StoreApiExample { public static void main(String[] args) { StoreApi apiInstance = new StoreApi(); - Order order = ; // Order | + Order order = ; // Order | order placed for purchasing the pet try { Order result = apiInstance.placeOrder(order); @@ -6587,7 +6587,7 @@

Usage and SDK Samples

// Create an instance of the API class StoreApi *apiInstance = [[StoreApi alloc] init]; -Order *order = ; // +Order *order = ; // order placed for purchasing the pet // Place an order for a pet [apiInstance placeOrderWith:order @@ -6607,7 +6607,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.StoreApi() -var order = ; // {Order} +var order = ; // {Order} order placed for purchasing the pet var callback = function(error, data, response) { if (error) { @@ -6639,7 +6639,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new StoreApi(); - var order = new Order(); // Order | + var order = new Order(); // Order | order placed for purchasing the pet try { // Place an order for a pet @@ -6660,7 +6660,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\StoreApi(); -$order = ; // Order | +$order = ; // Order | order placed for purchasing the pet try { $result = $api_instance->placeOrder($order); @@ -6678,7 +6678,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::StoreApi->new(); -my $order = WWW::OPenAPIClient::Object::Order->new(); # Order | +my $order = WWW::OPenAPIClient::Object::Order->new(); # Order | order placed for purchasing the pet eval { my $result = $api_instance->placeOrder(order => $order); @@ -6698,7 +6698,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.StoreApi() -order = # Order | +order = # Order | order placed for purchasing the pet try: # Place an order for a pet @@ -7007,7 +7007,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi apiInstance = new UserApi(); - User user = ; // User | + User user = ; // User | Created user object try { apiInstance.createUser(user); @@ -7025,7 +7025,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final User user = new User(); // User | +final User user = new User(); // User | Created user object try { final result = await api_instance.createUser(user); @@ -7043,7 +7043,7 @@

Usage and SDK Samples

public class UserApiExample { public static void main(String[] args) { UserApi apiInstance = new UserApi(); - User user = ; // User | + User user = ; // User | Created user object try { apiInstance.createUser(user); @@ -7069,7 +7069,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi *apiInstance = [[UserApi alloc] init]; -User *user = ; // +User *user = ; // Created user object // Create user [apiInstance createUserWith:user @@ -7093,7 +7093,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.UserApi() -var user = ; // {User} +var user = ; // {User} Created user object var callback = function(error, data, response) { if (error) { @@ -7129,7 +7129,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new UserApi(); - var user = new User(); // User | + var user = new User(); // User | Created user object try { // Create user @@ -7154,7 +7154,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\UserApi(); -$user = ; // User | +$user = ; // User | Created user object try { $api_instance->createUser($user); @@ -7176,7 +7176,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::UserApi->new(); -my $user = WWW::OPenAPIClient::Object::User->new(); # User | +my $user = WWW::OPenAPIClient::Object::User->new(); # User | Created user object eval { $api_instance->createUser(user => $user); @@ -7200,7 +7200,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.UserApi() -user = # User | +user = # User | Created user object try: # Create user @@ -7424,7 +7424,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi apiInstance = new UserApi(); - array[User] user = ; // array[User] | + array[User] user = ; // array[User] | List of user object try { apiInstance.createUsersWithArrayInput(user); @@ -7442,7 +7442,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final array[User] user = new array[User](); // array[User] | +final array[User] user = new array[User](); // array[User] | List of user object try { final result = await api_instance.createUsersWithArrayInput(user); @@ -7460,7 +7460,7 @@

Usage and SDK Samples

public class UserApiExample { public static void main(String[] args) { UserApi apiInstance = new UserApi(); - array[User] user = ; // array[User] | + array[User] user = ; // array[User] | List of user object try { apiInstance.createUsersWithArrayInput(user); @@ -7486,7 +7486,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi *apiInstance = [[UserApi alloc] init]; -array[User] *user = ; // +array[User] *user = ; // List of user object // Creates list of users with given input array [apiInstance createUsersWithArrayInputWith:user @@ -7510,7 +7510,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.UserApi() -var user = ; // {array[User]} +var user = ; // {array[User]} List of user object var callback = function(error, data, response) { if (error) { @@ -7546,7 +7546,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new UserApi(); - var user = new array[User](); // array[User] | + var user = new array[User](); // array[User] | List of user object try { // Creates list of users with given input array @@ -7571,7 +7571,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\UserApi(); -$user = ; // array[User] | +$user = ; // array[User] | List of user object try { $api_instance->createUsersWithArrayInput($user); @@ -7593,7 +7593,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::UserApi->new(); -my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | +my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | List of user object eval { $api_instance->createUsersWithArrayInput(user => $user); @@ -7617,7 +7617,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.UserApi() -user = # array[User] | +user = # array[User] | List of user object try: # Creates list of users with given input array @@ -7844,7 +7844,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi apiInstance = new UserApi(); - array[User] user = ; // array[User] | + array[User] user = ; // array[User] | List of user object try { apiInstance.createUsersWithListInput(user); @@ -7862,7 +7862,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); -final array[User] user = new array[User](); // array[User] | +final array[User] user = new array[User](); // array[User] | List of user object try { final result = await api_instance.createUsersWithListInput(user); @@ -7880,7 +7880,7 @@

Usage and SDK Samples

public class UserApiExample { public static void main(String[] args) { UserApi apiInstance = new UserApi(); - array[User] user = ; // array[User] | + array[User] user = ; // array[User] | List of user object try { apiInstance.createUsersWithListInput(user); @@ -7906,7 +7906,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi *apiInstance = [[UserApi alloc] init]; -array[User] *user = ; // +array[User] *user = ; // List of user object // Creates list of users with given input array [apiInstance createUsersWithListInputWith:user @@ -7930,7 +7930,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.UserApi() -var user = ; // {array[User]} +var user = ; // {array[User]} List of user object var callback = function(error, data, response) { if (error) { @@ -7966,7 +7966,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new UserApi(); - var user = new array[User](); // array[User] | + var user = new array[User](); // array[User] | List of user object try { // Creates list of users with given input array @@ -7991,7 +7991,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\UserApi(); -$user = ; // array[User] | +$user = ; // array[User] | List of user object try { $api_instance->createUsersWithListInput($user); @@ -8013,7 +8013,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::UserApi->new(); -my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | +my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | List of user object eval { $api_instance->createUsersWithListInput(user => $user); @@ -8037,7 +8037,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.UserApi() -user = # array[User] | +user = # array[User] | List of user object try: # Creates list of users with given input array @@ -10096,7 +10096,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi apiInstance = new UserApi(); String username = username_example; // String | name that need to be deleted - User user = ; // User | + User user = ; // User | Updated user object try { apiInstance.updateUser(username, user); @@ -10115,7 +10115,7 @@

Usage and SDK Samples

final api_instance = DefaultApi(); final String username = new String(); // String | name that need to be deleted -final User user = new User(); // User | +final User user = new User(); // User | Updated user object try { final result = await api_instance.updateUser(username, user); @@ -10134,7 +10134,7 @@

Usage and SDK Samples

public static void main(String[] args) { UserApi apiInstance = new UserApi(); String username = username_example; // String | name that need to be deleted - User user = ; // User | + User user = ; // User | Updated user object try { apiInstance.updateUser(username, user); @@ -10161,7 +10161,7 @@

Usage and SDK Samples

// Create an instance of the API class UserApi *apiInstance = [[UserApi alloc] init]; String *username = username_example; // name that need to be deleted (default to null) -User *user = ; // +User *user = ; // Updated user object // Updated user [apiInstance updateUserWith:username @@ -10187,7 +10187,7 @@

Usage and SDK Samples

// Create an instance of the API class var api = new OpenApiPetstore.UserApi() var username = username_example; // {String} name that need to be deleted -var user = ; // {User} +var user = ; // {User} Updated user object var callback = function(error, data, response) { if (error) { @@ -10224,7 +10224,7 @@

Usage and SDK Samples

// Create an instance of the API class var apiInstance = new UserApi(); var username = username_example; // String | name that need to be deleted (default to null) - var user = new User(); // User | + var user = new User(); // User | Updated user object try { // Updated user @@ -10250,7 +10250,7 @@

Usage and SDK Samples

// Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\UserApi(); $username = username_example; // String | name that need to be deleted -$user = ; // User | +$user = ; // User | Updated user object try { $api_instance->updateUser($username, $user); @@ -10273,7 +10273,7 @@

Usage and SDK Samples

# Create an instance of the API class my $api_instance = WWW::OPenAPIClient::UserApi->new(); my $username = username_example; # String | name that need to be deleted -my $user = WWW::OPenAPIClient::Object::User->new(); # User | +my $user = WWW::OPenAPIClient::Object::User->new(); # User | Updated user object eval { $api_instance->updateUser(username => $username, user => $user); @@ -10298,7 +10298,7 @@

Usage and SDK Samples

# Create an instance of the API class api_instance = openapi_client.UserApi() username = username_example # String | name that need to be deleted (default to null) -user = # User | +user = # User | Updated user object try: # Updated user diff --git a/samples/server/petstore/kotlin-server-modelMutable/.openapi-generator/FILES b/samples/server/petstore/kotlin-server-modelMutable/.openapi-generator/FILES index 52c6d592e8f2..f7801c05dcde 100644 --- a/samples/server/petstore/kotlin-server-modelMutable/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-server-modelMutable/.openapi-generator/FILES @@ -7,11 +7,15 @@ settings.gradle src/main/kotlin/org/openapitools/server/AppMain.kt src/main/kotlin/org/openapitools/server/Configuration.kt src/main/kotlin/org/openapitools/server/Paths.kt +src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt src/main/kotlin/org/openapitools/server/apis/PetApi.kt src/main/kotlin/org/openapitools/server/apis/StoreApi.kt src/main/kotlin/org/openapitools/server/apis/UserApi.kt src/main/kotlin/org/openapitools/server/infrastructure/ApiKeyAuth.kt src/main/kotlin/org/openapitools/server/models/Category.kt +src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/server/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/server/models/Order.kt src/main/kotlin/org/openapitools/server/models/Pet.kt diff --git a/samples/server/petstore/kotlin-server-modelMutable/README.md b/samples/server/petstore/kotlin-server-modelMutable/README.md index df0598074687..85cb52b05552 100644 --- a/samples/server/petstore/kotlin-server-modelMutable/README.md +++ b/samples/server/petstore/kotlin-server-modelMutable/README.md @@ -49,6 +49,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status @@ -75,6 +77,9 @@ Class | Method | HTTP request | Description ## Documentation for Models - [org.openapitools.server.models.Category](docs/Category.md) + - [org.openapitools.server.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.server.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.server.models.Order](docs/Order.md) - [org.openapitools.server.models.Pet](docs/Pet.md) diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/AppMain.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/AppMain.kt index 4053d223ac9c..0a041827688b 100644 --- a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/AppMain.kt +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/AppMain.kt @@ -19,6 +19,7 @@ import io.ktor.client.engine.apache.Apache import io.ktor.server.config.HoconApplicationConfig import io.ktor.server.auth.* import org.openapitools.server.infrastructure.* +import org.openapitools.server.apis.DefaultApi import org.openapitools.server.apis.PetApi import org.openapitools.server.apis.StoreApi import org.openapitools.server.apis.UserApi @@ -61,6 +62,7 @@ fun Application.main() { } } routing { + DefaultApi() PetApi() StoreApi() UserApi() diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/Paths.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/Paths.kt index c9a28c0ace5e..24c2f2a6d0ee 100644 --- a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/Paths.kt +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/Paths.kt @@ -16,6 +16,27 @@ import kotlinx.serialization.* import org.openapitools.server.models.* object Paths { + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + */ + @Resource("/items/{item\$Id}/something/{item\$SubId}") class itemsItemIdSomethingItemSubIdGet(val itemDollarId: kotlin.String, val itemDollarSubId: kotlin.String, val filterDollarType: kotlin.String? = null, val filterDollarSubType: kotlin.String? = null) + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + */ + @Resource("/items") class itemsPost() + /** * Add a new pet to the store * diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt new file mode 100644 index 000000000000..4b542497c3ac --- /dev/null +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt @@ -0,0 +1,68 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.apis + +import io.ktor.http.* +import io.ktor.server.application.* +import io.ktor.server.auth.* +import io.ktor.server.response.* +import org.openapitools.server.Paths +import io.ktor.server.resources.options +import io.ktor.server.resources.get +import io.ktor.server.resources.post +import io.ktor.server.resources.put +import io.ktor.server.resources.delete +import io.ktor.server.resources.head +import io.ktor.server.resources.patch +import io.ktor.server.routing.* +import org.openapitools.server.infrastructure.ApiPrincipal +import org.openapitools.server.models.ItemWithDollarAttributesAndExamples +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response + +fun Route.DefaultApi() { + val empty = mutableMapOf() + + get { + val exampleContentType = "application/json" + val exampleContentString = """{ + "name$Value" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "details$Info" : { + "detail$One" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "detail$Two" : 42 + }, + "item$Id" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + }""" + + when (exampleContentType) { + "application/json" -> call.respondText(exampleContentType, ContentType.Application.Json) + "application/xml" -> call.respondText(exampleContentString, ContentType.Text.Xml) + else -> call.respondText(exampleContentString) + } + + } + + post { + val exampleContentType = "application/json" + val exampleContentString = """{ + "$name" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "$id" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + }""" + + when (exampleContentType) { + "application/json" -> call.respondText(exampleContentType, ContentType.Application.Json) + "application/xml" -> call.respondText(exampleContentString, ContentType.Text.Xml) + else -> call.respondText(exampleContentString) + } + + } + +} diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..ed51f557b88d --- /dev/null +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,28 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + + +import kotlinx.serialization.Serializable +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable +data class ItemWithDollarAttributesAndExamples( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) + diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..fb29c61a176a --- /dev/null +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,31 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import kotlinx.serialization.Serializable +/** + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@Serializable +data class ItemsItemIdSomethingItemSubIdGet200Response( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + var detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) + diff --git a/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..aabfaae6ef25 --- /dev/null +++ b/samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,28 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + + +import kotlinx.serialization.Serializable +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + var detailDollarTwo: kotlin.Int? = null +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/.openapi-generator/FILES b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/.openapi-generator/FILES index 8311b1e0d0af..6ea66d3eaf46 100644 --- a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/.openapi-generator/FILES @@ -2,10 +2,14 @@ README.md build.gradle gradle.properties settings.gradle +src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt src/main/kotlin/org/openapitools/server/apis/PetApi.kt src/main/kotlin/org/openapitools/server/apis/StoreApi.kt src/main/kotlin/org/openapitools/server/apis/UserApi.kt src/main/kotlin/org/openapitools/server/models/Category.kt +src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/server/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/server/models/Order.kt src/main/kotlin/org/openapitools/server/models/Pet.kt diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/README.md b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/README.md index 231a738d36cc..7c42d481b597 100644 --- a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/README.md +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/README.md @@ -34,6 +34,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status @@ -60,6 +62,9 @@ Class | Method | HTTP request | Description ## Documentation for Models - [org.openapitools.server.models.Category](docs/Category.md) + - [org.openapitools.server.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.server.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.server.models.Order](docs/Order.md) - [org.openapitools.server.models.Pet](docs/Pet.md) diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt new file mode 100644 index 000000000000..57d86fa748db --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt @@ -0,0 +1,28 @@ +package org.openapitools.server.apis; + +import org.openapitools.server.models.ItemWithDollarAttributesAndExamples +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response + +import javax.ws.rs.* +import javax.ws.rs.core.Response + + +import java.io.InputStream + + + +@Path("/") +@javax.annotation.Generated(value = arrayOf("org.openapitools.codegen.languages.KotlinServerCodegen"), comments = "Generator version: 7.18.0-SNAPSHOT") +interface DefaultApi { + + @GET + @Path("/items/{item\$Id}/something/{item\$SubId}") + @Produces("application/json") + fun itemsItemIdSomethingItemSubIdGet(@PathParam("item\$Id") itemDollarId: kotlin.String,@PathParam("item\$SubId") itemDollarSubId: kotlin.String,@QueryParam("filter\$Type") @DefaultValue("SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String,@QueryParam("filter\$SubType") @DefaultValue("SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String,@HeaderParam("X-Custom_Header") xCustomHeader: kotlin.String?,@HeaderParam("X-Custom_Header_two") xCustomHeaderTwo: kotlin.String?): io.smallrye.mutiny.Uni + + @POST + @Path("/items") + @Consumes("application/x-www-form-urlencoded") + @Produces("application/json") + fun itemsPost(@HeaderParam("X-Post_Header") xPostHeader: kotlin.String?,@FormParam(value = "form$Name") formDollarName: kotlin.String?,@FormParam(value = "form$Value") formDollarValue: kotlin.String?): io.smallrye.mutiny.Uni +} diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..783a87a71f7b --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import com.fasterxml.jackson.annotation.JsonProperty +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..7238a649bf77 --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import com.fasterxml.jackson.annotation.JsonProperty +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + + @JsonProperty("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..306dfad7ff73 --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import com.fasterxml.jackson.annotation.JsonProperty +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/.openapi-generator/FILES b/samples/server/petstore/kotlin-server/jaxrs-spec/.openapi-generator/FILES index 8311b1e0d0af..6ea66d3eaf46 100644 --- a/samples/server/petstore/kotlin-server/jaxrs-spec/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/.openapi-generator/FILES @@ -2,10 +2,14 @@ README.md build.gradle gradle.properties settings.gradle +src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt src/main/kotlin/org/openapitools/server/apis/PetApi.kt src/main/kotlin/org/openapitools/server/apis/StoreApi.kt src/main/kotlin/org/openapitools/server/apis/UserApi.kt src/main/kotlin/org/openapitools/server/models/Category.kt +src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/server/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/server/models/Order.kt src/main/kotlin/org/openapitools/server/models/Pet.kt diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/README.md b/samples/server/petstore/kotlin-server/jaxrs-spec/README.md index 231a738d36cc..7c42d481b597 100644 --- a/samples/server/petstore/kotlin-server/jaxrs-spec/README.md +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/README.md @@ -34,6 +34,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status @@ -60,6 +62,9 @@ Class | Method | HTTP request | Description ## Documentation for Models - [org.openapitools.server.models.Category](docs/Category.md) + - [org.openapitools.server.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.server.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.server.models.Order](docs/Order.md) - [org.openapitools.server.models.Pet](docs/Pet.md) diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt new file mode 100644 index 000000000000..7c88d92d8561 --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt @@ -0,0 +1,30 @@ +package org.openapitools.server.apis; + +import org.openapitools.server.models.ItemWithDollarAttributesAndExamples +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response + +import javax.ws.rs.* +import javax.ws.rs.core.Response + + +import java.io.InputStream + + + +@Path("/") +@javax.annotation.Generated(value = arrayOf("org.openapitools.codegen.languages.KotlinServerCodegen"), comments = "Generator version: 7.18.0-SNAPSHOT") +class DefaultApi { + + @GET + @Produces("application/json") + suspend fun itemsItemIdSomethingItemSubIdGet(@PathParam("item\$Id") itemDollarId: kotlin.String,@PathParam("item\$SubId") itemDollarSubId: kotlin.String,@QueryParam("filter\$Type") @DefaultValue("SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String,@QueryParam("filter\$SubType") @DefaultValue("SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String,@HeaderParam("X-Custom_Header") xCustomHeader: kotlin.String?,@HeaderParam("X-Custom_Header_two") xCustomHeaderTwo: kotlin.String?): Response { + return Response.ok().entity("magic!").build(); + } + + @POST + @Consumes("application/x-www-form-urlencoded") + @Produces("application/json") + suspend fun itemsPost(@HeaderParam("X-Post_Header") xPostHeader: kotlin.String?,@FormParam(value = "form$Name") formDollarName: kotlin.String?,@FormParam(value = "form$Value") formDollarValue: kotlin.String?): Response { + return Response.ok().entity("magic!").build(); + } +} diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..783a87a71f7b --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import com.fasterxml.jackson.annotation.JsonProperty +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemWithDollarAttributesAndExamples ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("\$id") + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("\$name") + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" + +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..7238a649bf77 --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import com.fasterxml.jackson.annotation.JsonProperty +/** + * + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ + + +data class ItemsItemIdSomethingItemSubIdGet200Response ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("item\$Id") + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("name\$Value") + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + + @JsonProperty("details\$Info") + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null + +) + diff --git a/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..306dfad7ff73 --- /dev/null +++ b/samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.server.models + +import com.fasterxml.jackson.annotation.JsonProperty +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ + + +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("detail\$One") + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + + @JsonProperty("detail\$Two") + val detailDollarTwo: kotlin.Int? = null + +) + diff --git a/samples/server/petstore/kotlin-server/ktor/.openapi-generator/FILES b/samples/server/petstore/kotlin-server/ktor/.openapi-generator/FILES index 52c6d592e8f2..f7801c05dcde 100644 --- a/samples/server/petstore/kotlin-server/ktor/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-server/ktor/.openapi-generator/FILES @@ -7,11 +7,15 @@ settings.gradle src/main/kotlin/org/openapitools/server/AppMain.kt src/main/kotlin/org/openapitools/server/Configuration.kt src/main/kotlin/org/openapitools/server/Paths.kt +src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt src/main/kotlin/org/openapitools/server/apis/PetApi.kt src/main/kotlin/org/openapitools/server/apis/StoreApi.kt src/main/kotlin/org/openapitools/server/apis/UserApi.kt src/main/kotlin/org/openapitools/server/infrastructure/ApiKeyAuth.kt src/main/kotlin/org/openapitools/server/models/Category.kt +src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/server/models/ModelApiResponse.kt src/main/kotlin/org/openapitools/server/models/Order.kt src/main/kotlin/org/openapitools/server/models/Pet.kt diff --git a/samples/server/petstore/kotlin-server/ktor/README.md b/samples/server/petstore/kotlin-server/ktor/README.md index df0598074687..85cb52b05552 100644 --- a/samples/server/petstore/kotlin-server/ktor/README.md +++ b/samples/server/petstore/kotlin-server/ktor/README.md @@ -49,6 +49,8 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**itemsItemIdSomethingItemSubIdGet**](docs/DefaultApi.md#itemsitemidsomethingitemsubidget) | **GET** /items/{item$Id}/something/{item$SubId} | SQ = \"; SBS = \\; DBS = \\\\; SD = $some +*DefaultApi* | [**itemsPost**](docs/DefaultApi.md#itemspost) | **POST** /items | SQ = \"; SBS = \\; DBS = \\\\; SD = $some *PetApi* | [**addPet**](docs/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store *PetApi* | [**deletePet**](docs/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet *PetApi* | [**findPetsByStatus**](docs/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status @@ -75,6 +77,9 @@ Class | Method | HTTP request | Description ## Documentation for Models - [org.openapitools.server.models.Category](docs/Category.md) + - [org.openapitools.server.models.ItemWithDollarAttributesAndExamples](docs/ItemWithDollarAttributesAndExamples.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response](docs/ItemsItemIdSomethingItemSubIdGet200Response.md) + - [org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo](docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md) - [org.openapitools.server.models.ModelApiResponse](docs/ModelApiResponse.md) - [org.openapitools.server.models.Order](docs/Order.md) - [org.openapitools.server.models.Pet](docs/Pet.md) diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/AppMain.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/AppMain.kt index 4053d223ac9c..0a041827688b 100644 --- a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/AppMain.kt +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/AppMain.kt @@ -19,6 +19,7 @@ import io.ktor.client.engine.apache.Apache import io.ktor.server.config.HoconApplicationConfig import io.ktor.server.auth.* import org.openapitools.server.infrastructure.* +import org.openapitools.server.apis.DefaultApi import org.openapitools.server.apis.PetApi import org.openapitools.server.apis.StoreApi import org.openapitools.server.apis.UserApi @@ -61,6 +62,7 @@ fun Application.main() { } } routing { + DefaultApi() PetApi() StoreApi() UserApi() diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/Paths.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/Paths.kt index 0dc3888eb309..b785cb46128c 100644 --- a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/Paths.kt +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/Paths.kt @@ -16,6 +16,27 @@ import kotlinx.serialization.* import org.openapitools.server.models.* object Paths { + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param itemDollarSubId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param filterDollarType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param filterDollarSubType SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + * @param xCustomHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + */ + @Resource("/items/{item\$Id}/something/{item\$SubId}") class itemsItemIdSomethingItemSubIdGet(val itemDollarId: kotlin.String, val itemDollarSubId: kotlin.String, val filterDollarType: kotlin.String? = null, val filterDollarSubType: kotlin.String? = null) + + /** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param xPostHeader SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarName SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional) + * @param formDollarValue SQ = \\\"; SBS = \\\\; DBS = \\\\\\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = $some") + */ + @Resource("/items") class itemsPost() + /** * Add a new pet to the store * diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt new file mode 100644 index 000000000000..4b542497c3ac --- /dev/null +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt @@ -0,0 +1,68 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.apis + +import io.ktor.http.* +import io.ktor.server.application.* +import io.ktor.server.auth.* +import io.ktor.server.response.* +import org.openapitools.server.Paths +import io.ktor.server.resources.options +import io.ktor.server.resources.get +import io.ktor.server.resources.post +import io.ktor.server.resources.put +import io.ktor.server.resources.delete +import io.ktor.server.resources.head +import io.ktor.server.resources.patch +import io.ktor.server.routing.* +import org.openapitools.server.infrastructure.ApiPrincipal +import org.openapitools.server.models.ItemWithDollarAttributesAndExamples +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200Response + +fun Route.DefaultApi() { + val empty = mutableMapOf() + + get { + val exampleContentType = "application/json" + val exampleContentString = """{ + "name$Value" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "details$Info" : { + "detail$One" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "detail$Two" : 42 + }, + "item$Id" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + }""" + + when (exampleContentType) { + "application/json" -> call.respondText(exampleContentType, ContentType.Application.Json) + "application/xml" -> call.respondText(exampleContentString, ContentType.Text.Xml) + else -> call.respondText(exampleContentString) + } + + } + + post { + val exampleContentType = "application/json" + val exampleContentString = """{ + "$name" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + "$id" : "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + }""" + + when (exampleContentType) { + "application/json" -> call.respondText(exampleContentType, ContentType.Application.Json) + "application/xml" -> call.respondText(exampleContentString, ContentType.Text.Xml) + else -> call.respondText(exampleContentString) + } + + } + +} diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..86024efa6bf9 --- /dev/null +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,30 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + + +import kotlinx.serialization.Serializable +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable +data class ItemWithDollarAttributesAndExamples( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) +{ +} + diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..84a670e4fc47 --- /dev/null +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,33 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + +import org.openapitools.server.models.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo + +import kotlinx.serialization.Serializable +/** + * + * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailsDollarInfo + */ +@Serializable +data class ItemsItemIdSomethingItemSubIdGet200Response( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) +{ +} + diff --git a/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..00b5c9ac762d --- /dev/null +++ b/samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,30 @@ +/** +* OpenAPI Petstore +* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. +* +* The version of the OpenAPI document: 1.0.0 +* +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +package org.openapitools.server.models + + +import kotlinx.serialization.Serializable +/** + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarOne SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param detailDollarTwo SQ = \"; SBS = \\; DBS = \\\\; SD = $some + */ +@Serializable +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ + val detailDollarTwo: kotlin.Int? = null +) +{ +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/.openapi-generator/FILES b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/.openapi-generator/FILES index 18f6d4999914..7a299e837265 100644 --- a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/.openapi-generator/FILES @@ -6,10 +6,14 @@ gradlew gradlew.bat pom.xml settings.gradle +src/main/kotlin/org/openapitools/api/DefaultApiClient.kt src/main/kotlin/org/openapitools/api/PetApiClient.kt src/main/kotlin/org/openapitools/api/StoreApiClient.kt src/main/kotlin/org/openapitools/api/UserApiClient.kt src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt new file mode 100644 index 000000000000..6fe0db391743 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt @@ -0,0 +1,63 @@ +/** +* NOTE: Auto generated by OpenAPI Generator (7.18.0-SNAPSHOT) +* Spring 6 Declarative HTTP Interface +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* + +import org.springframework.web.service.annotation.* +import org.springframework.web.bind.annotation.* +import org.springframework.http.HttpStatus + +import org.springframework.validation.annotation.Validated +import jakarta.validation.Valid +import jakarta.validation.constraints.* + + +import kotlin.collections.List +import kotlin.collections.Map + +@Validated +interface DefaultApi { + + @ResponseStatus(HttpStatus.OK) + @HttpExchange( + url = PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */, + method = "GET" + ) + suspend fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ItemsItemIdSomethingItemSubIdGet200Response + + @ResponseStatus(HttpStatus.CREATED) + @HttpExchange( + url = PATH_ITEMS_POST /* "/items" */, + method = "POST" + ) + suspend fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ItemWithDollarAttributesAndExamples + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/.openapi-generator/FILES b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/.openapi-generator/FILES index 18f6d4999914..7a299e837265 100644 --- a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/.openapi-generator/FILES @@ -6,10 +6,14 @@ gradlew gradlew.bat pom.xml settings.gradle +src/main/kotlin/org/openapitools/api/DefaultApiClient.kt src/main/kotlin/org/openapitools/api/PetApiClient.kt src/main/kotlin/org/openapitools/api/StoreApiClient.kt src/main/kotlin/org/openapitools/api/UserApiClient.kt src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt new file mode 100644 index 000000000000..c6c37b77d436 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt @@ -0,0 +1,65 @@ +/** +* NOTE: Auto generated by OpenAPI Generator (7.18.0-SNAPSHOT) +* Spring 6 Declarative HTTP Interface +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* + +import org.springframework.web.service.annotation.* +import org.springframework.web.bind.annotation.* +import org.springframework.http.ResponseEntity + +import org.springframework.validation.annotation.Validated +import jakarta.validation.Valid +import jakarta.validation.constraints.* + +import reactor.core.publisher.Flux +import reactor.core.publisher.Mono + +import kotlin.collections.List +import kotlin.collections.Map + +@Validated +interface DefaultApi { + + @HttpExchange( + url = PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */, + method = "GET" + ) + fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): Mono> + + + @HttpExchange( + url = PATH_ITEMS_POST /* "/items" */, + method = "POST" + ) + fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): Mono> + + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/.openapi-generator/FILES b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/.openapi-generator/FILES index 18f6d4999914..7a299e837265 100644 --- a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/.openapi-generator/FILES @@ -6,10 +6,14 @@ gradlew gradlew.bat pom.xml settings.gradle +src/main/kotlin/org/openapitools/api/DefaultApiClient.kt src/main/kotlin/org/openapitools/api/PetApiClient.kt src/main/kotlin/org/openapitools/api/StoreApiClient.kt src/main/kotlin/org/openapitools/api/UserApiClient.kt src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt new file mode 100644 index 000000000000..0497c8fd65e7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt @@ -0,0 +1,63 @@ +/** +* NOTE: Auto generated by OpenAPI Generator (7.18.0-SNAPSHOT) +* Spring 6 Declarative HTTP Interface +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* + +import org.springframework.web.service.annotation.* +import org.springframework.web.bind.annotation.* +import org.springframework.http.ResponseEntity + +import org.springframework.validation.annotation.Validated +import jakarta.validation.Valid +import jakarta.validation.constraints.* + + +import kotlin.collections.List +import kotlin.collections.Map + +@Validated +interface DefaultApi { + + @HttpExchange( + url = PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */, + method = "GET" + ) + fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ResponseEntity + + + @HttpExchange( + url = PATH_ITEMS_POST /* "/items" */, + method = "POST" + ) + fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ResponseEntity + + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface/.openapi-generator/FILES b/samples/server/petstore/kotlin-spring-declarative-interface/.openapi-generator/FILES index 18f6d4999914..7a299e837265 100644 --- a/samples/server/petstore/kotlin-spring-declarative-interface/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-spring-declarative-interface/.openapi-generator/FILES @@ -6,10 +6,14 @@ gradlew gradlew.bat pom.xml settings.gradle +src/main/kotlin/org/openapitools/api/DefaultApiClient.kt src/main/kotlin/org/openapitools/api/PetApiClient.kt src/main/kotlin/org/openapitools/api/StoreApiClient.kt src/main/kotlin/org/openapitools/api/UserApiClient.kt src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt diff --git a/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt new file mode 100644 index 000000000000..0497c8fd65e7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt @@ -0,0 +1,63 @@ +/** +* NOTE: Auto generated by OpenAPI Generator (7.18.0-SNAPSHOT) +* Spring 6 Declarative HTTP Interface +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* + +import org.springframework.web.service.annotation.* +import org.springframework.web.bind.annotation.* +import org.springframework.http.ResponseEntity + +import org.springframework.validation.annotation.Validated +import jakarta.validation.Valid +import jakarta.validation.constraints.* + + +import kotlin.collections.List +import kotlin.collections.Map + +@Validated +interface DefaultApi { + + @HttpExchange( + url = PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */, + method = "GET" + ) + fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ResponseEntity + + + @HttpExchange( + url = PATH_ITEMS_POST /* "/items" */, + method = "POST" + ) + fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ResponseEntity + + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator-ignore b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator-ignore new file mode 100644 index 000000000000..7484ee590a38 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/FILES new file mode 100644 index 000000000000..65587b352876 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/FILES @@ -0,0 +1,24 @@ +README.md +build.gradle.kts +gradle/wrapper/gradle-wrapper.jar +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat +pom.xml +settings.gradle +src/main/kotlin/org/openapitools/SpringDocConfiguration.kt +src/main/kotlin/org/openapitools/api/ApiUtil.kt +src/main/kotlin/org/openapitools/api/Exceptions.kt +src/main/kotlin/org/openapitools/api/ItemsApi.kt +src/main/kotlin/org/openapitools/api/PetApi.kt +src/main/kotlin/org/openapitools/api/StoreApi.kt +src/main/kotlin/org/openapitools/api/UserApi.kt +src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt +src/main/kotlin/org/openapitools/model/ModelApiResponse.kt +src/main/kotlin/org/openapitools/model/Order.kt +src/main/kotlin/org/openapitools/model/Pet.kt +src/main/kotlin/org/openapitools/model/Tag.kt +src/main/kotlin/org/openapitools/model/User.kt diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/VERSION b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/VERSION new file mode 100644 index 000000000000..2fb556b60635 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.18.0-SNAPSHOT diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/README.md b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/README.md new file mode 100644 index 000000000000..b6865a081135 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/README.md @@ -0,0 +1,21 @@ +# openAPIPetstore + +This Kotlin based [Spring Boot](https://spring.io/projects/spring-boot) application has been generated using the [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). + +## Getting Started + +This document assumes you have either maven or gradle available, either via the wrapper or otherwise. This does not come with a gradle / maven wrapper checked in. + +By default a [`pom.xml`](pom.xml) file will be generated. If you specified `gradleBuildFile=true` when generating this project, a `build.gradle.kts` will also be generated. Note this uses [Gradle Kotlin DSL](https://github.com/gradle/kotlin-dsl). + +To build the project using maven, run: +```bash +mvn package && java -jar target/openapi-spring-1.0.0.jar +``` + +To build the project using gradle, run: +```bash +gradle build && java -jar build/libs/openapi-spring-1.0.0.jar +``` + +If all builds successfully, the server should run on [http://localhost:8080/](http://localhost:8080/) diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/build.gradle.kts b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/build.gradle.kts new file mode 100644 index 000000000000..a064415b6540 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/build.gradle.kts @@ -0,0 +1,47 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +group = "org.openapitools" +version = "1.0.0" +java.sourceCompatibility = JavaVersion.VERSION_17 + +repositories { + mavenCentral() + maven { url = uri("https://repo.spring.io/milestone") } +} + +tasks.withType { + kotlinOptions.jvmTarget = "17" +} + +tasks.bootJar { + enabled = false +} + +plugins { + val kotlinVersion = "1.9.25" + id("org.jetbrains.kotlin.jvm") version kotlinVersion + id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion + id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion + id("org.springframework.boot") version "3.0.2" + id("io.spring.dependency-management") version "1.0.14.RELEASE" +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.6.0") + + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") + implementation("jakarta.validation:jakarta.validation-api") + implementation("jakarta.annotation:jakarta.annotation-api:2.1.0") + + testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") + testImplementation("org.springframework.boot:spring-boot-starter-test") { + exclude(module = "junit") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.jar b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000000..e6441136f3d4 Binary files /dev/null and b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.properties b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000000..80187ac30432 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew new file mode 100644 index 000000000000..9d0ce634cb11 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while +APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path +[ -h "$app_path" ] +do +ls=$( ls -ld "$app_path" ) +link=${ls#*' -> '} +case $link in #( +/*) app_path=$link ;; #( +*) app_path=$APP_HOME$link ;; +esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { +echo "$*" +} >&2 + +die () { +echo +echo "$*" +echo +exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( +CYGWIN* ) cygwin=true ;; #( +Darwin* ) darwin=true ;; #( +MSYS* | MINGW* ) msys=true ;; #( +NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then +if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +# IBM's JDK on AIX uses strange locations for the executables +JAVACMD=$JAVA_HOME/jre/sh/java +else +JAVACMD=$JAVA_HOME/bin/java +fi +if [ ! -x "$JAVACMD" ] ; then +die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +else +JAVACMD=java +if ! command -v java >/dev/null 2>&1 +then +die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then +case $MAX_FD in #( +max*) +# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +MAX_FD=$( ulimit -H -n ) || +warn "Could not query maximum file descriptor limit" +esac +case $MAX_FD in #( +'' | soft) :;; #( +*) +# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +ulimit -n "$MAX_FD" || +warn "Could not set maximum file descriptor limit to $MAX_FD" +esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then +APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) +CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + +JAVACMD=$( cygpath --unix "$JAVACMD" ) + +# Now convert the arguments - kludge to limit ourselves to /bin/sh +for arg do +if +case $arg in #( +-*) false ;; # don't mess with options #( +/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath +[ -e "$t" ] ;; #( +*) false ;; +esac +then +arg=$( cygpath --path --ignore --mixed "$arg" ) +fi +# Roll the args list around exactly as many times as the number of +# args, so each arg winds up back in the position where it started, but +# possibly modified. +# +# NB: a `for` loop captures its iteration list before it begins, so +# changing the positional parameters here affects neither the number of +# iterations, nor the values presented in `arg`. +shift # remove old arg +set -- "$@" "$arg" # push replacement arg +done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ +"-Dorg.gradle.appname=$APP_BASE_NAME" \ +-classpath "$CLASSPATH" \ +org.gradle.wrapper.GradleWrapperMain \ +"$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then +die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( +printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | +xargs -n1 | +sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | +tr '\n' ' ' +)" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew.bat b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew.bat new file mode 100644 index 000000000000..25da30dbdeee --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/pom.xml b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/pom.xml new file mode 100644 index 000000000000..d3d44b8d2b04 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/pom.xml @@ -0,0 +1,149 @@ + + 4.0.0 + org.openapitools + openapi-spring + jar + openapi-spring + 1.0.0 + + 3.0.2 + 2.1.0 + 1.7.10 + + 1.7.10 + UTF-8 + + + org.springframework.boot + spring-boot-starter-parent + 3.1.3 + + + + repository.spring.milestone + Spring Milestone Repository + https://repo.spring.io/milestone + + + + + spring-milestones + https://repo.spring.io/milestone + + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/test/kotlin + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar + + + + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + spring + + 17 + + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.jetbrains.kotlin + kotlin-maven-allopen + ${kotlin.version} + + + + + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-reflect + ${kotlin.version} + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springdoc + springdoc-openapi-webmvc-core + ${springdoc-openapi.version} + + + + + com.google.code.findbugs + jsr305 + ${findbugs-jsr305.version} + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.fasterxml.jackson.module + jackson-module-kotlin + + + + jakarta.validation + jakarta.validation-api + + + jakarta.annotation + jakarta.annotation-api + ${jakarta-annotation.version} + provided + + + org.jetbrains.kotlin + kotlin-test-junit5 + ${kotlin-test-junit5.version} + test + + + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/settings.gradle b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/settings.gradle new file mode 100644 index 000000000000..14844905cd40 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/settings.gradle @@ -0,0 +1,15 @@ +pluginManagement { + repositories { + maven { url = uri("https://repo.spring.io/snapshot") } + maven { url = uri("https://repo.spring.io/milestone") } + gradlePluginPortal() + } + resolutionStrategy { + eachPlugin { + if (requested.id.id == "org.springframework.boot") { + useModule("org.springframework.boot:spring-boot-gradle-plugin:${requested.version}") + } + } + } +} +rootProject.name = "openapi-spring" diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt new file mode 100644 index 000000000000..ab4d5eb17b86 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt @@ -0,0 +1,42 @@ +package org.openapitools + +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +import io.swagger.v3.oas.models.OpenAPI +import io.swagger.v3.oas.models.info.Info +import io.swagger.v3.oas.models.info.Contact +import io.swagger.v3.oas.models.info.License +import io.swagger.v3.oas.models.Components +import io.swagger.v3.oas.models.security.SecurityScheme + +@Configuration +class SpringDocConfiguration { + + @Bean + fun apiInfo(): OpenAPI { + return OpenAPI() + .info( + Info() + .title("OpenAPI Petstore") + .description("This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.") + .license( + License() + .name("Apache-2.0") + .url("https://www.apache.org/licenses/LICENSE-2.0.html") + ) + .version("1.0.0") + ) + .components( + Components() + .addSecuritySchemes("petstore_auth", SecurityScheme() + .type(SecurityScheme.Type.OAUTH2) + ) + .addSecuritySchemes("api_key", SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .`in`(SecurityScheme.In.HEADER) + .name("api_key") + ) + ) + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ApiUtil.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ApiUtil.kt new file mode 100644 index 000000000000..03344e13b474 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ApiUtil.kt @@ -0,0 +1,19 @@ +package org.openapitools.api + +import org.springframework.web.context.request.NativeWebRequest + +import jakarta.servlet.http.HttpServletResponse +import java.io.IOException + +object ApiUtil { + fun setExampleResponse(req: NativeWebRequest, contentType: String, example: String) { + try { + val res = req.getNativeResponse(HttpServletResponse::class.java) + res?.characterEncoding = "UTF-8" + res?.addHeader("Content-Type", contentType) + res?.writer?.print(example) + } catch (e: IOException) { + throw RuntimeException(e) + } + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/Exceptions.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/Exceptions.kt new file mode 100644 index 000000000000..1bd78f54576a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/Exceptions.kt @@ -0,0 +1,30 @@ +package org.openapitools.api + +import org.springframework.context.annotation.Configuration +import org.springframework.http.HttpStatus +import org.springframework.web.bind.annotation.ControllerAdvice +import org.springframework.web.bind.annotation.ExceptionHandler +import jakarta.servlet.http.HttpServletResponse +import jakarta.validation.ConstraintViolationException + +// TODO Extend ApiException for custom exception handling, e.g. the below NotFound exception +sealed class ApiException(msg: String, val code: Int) : Exception(msg) + +class NotFoundException(msg: String, code: Int = HttpStatus.NOT_FOUND.value()) : ApiException(msg, code) + +@Configuration("org.openapitools.api.DefaultExceptionHandler") +@ControllerAdvice +class DefaultExceptionHandler { + + @ExceptionHandler(value = [ApiException::class]) + fun onApiException(ex: ApiException, response: HttpServletResponse): Unit = + response.sendError(ex.code, ex.message) + + @ExceptionHandler(value = [NotImplementedError::class]) + fun onNotImplemented(ex: NotImplementedError, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.NOT_IMPLEMENTED.value()) + + @ExceptionHandler(value = [ConstraintViolationException::class]) + fun onConstraintViolation(ex: ConstraintViolationException, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.BAD_REQUEST.value(), ex.constraintViolations.joinToString(", ") { it.message }) +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ItemsApi.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ItemsApi.kt new file mode 100644 index 000000000000..25d8fa0f4ed9 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ItemsApi.kt @@ -0,0 +1,99 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.ItemsApi.Companion.BASE_PATH + +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +interface ItemsApi { + + @Operation( + tags = ["default",], + summary = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + operationId = "itemsItemIdSomethingItemSubIdGet", + description = """SQ = "; SBS = \; DBS = \\; SD = ${'$'}some""", + responses = [ + ApiResponse(responseCode = "200", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", content = [Content(schema = Schema(implementation = ItemsItemIdSomethingItemSubIdGet200Response::class))]) + ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item$Id}/something/{item$SubId}" */], + produces = ["application/json"] + ) + fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["default",], + summary = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + operationId = "itemsPost", + description = """SQ = "; SBS = \; DBS = \\; SD = ${'$'}some""", + responses = [ + ApiResponse(responseCode = "201", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", content = [Content(schema = Schema(implementation = ItemWithDollarAttributesAndExamples::class))]) + ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ITEMS_POST /* "/items" */], + produces = ["application/json"], + consumes = ["application/x-www-form-urlencoded"] + ) + fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/PetApi.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/PetApi.kt new file mode 100644 index 000000000000..80daa9dac69d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/PetApi.kt @@ -0,0 +1,238 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.PetApi.Companion.BASE_PATH + +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +interface PetApi { + + @Operation( + tags = ["pet",], + summary = "Add a new pet to the store", + operationId = "addPet", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Pet::class))]), + ApiResponse(responseCode = "405", description = "Invalid input") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ADD_PET /* "/pet" */], + produces = ["application/xml", "application/json"], + consumes = ["application/json", "application/xml"] + ) + fun addPet( + @Parameter(description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody pet: Pet + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Deletes a pet", + operationId = "deletePet", + description = """""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid pet value") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_PET /* "/pet/{petId}" */] + ) + fun deletePet( + @Parameter(description = "Pet id to delete", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "", `in` = ParameterIn.HEADER) @RequestHeader(value = "api_key", required = false) apiKey: kotlin.String? + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Finds Pets by status", + operationId = "findPetsByStatus", + description = """Multiple status values can be provided with comma separated strings""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(array = ArraySchema(schema = Schema(implementation = Pet::class)))]), + ApiResponse(responseCode = "400", description = "Invalid status value") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_STATUS /* "/pet/findByStatus" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByStatus( + @NotNull @Parameter(description = "Status values that need to be considered for filter", required = true, schema = Schema(allowableValues = ["available", "pending", "sold"])) @Valid @RequestParam(value = "status", required = true) status: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Finds Pets by tags", + operationId = "findPetsByTags", + description = """Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(array = ArraySchema(schema = Schema(implementation = Pet::class)))]), + ApiResponse(responseCode = "400", description = "Invalid tag value") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_TAGS /* "/pet/findByTags" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByTags( + @NotNull @Parameter(description = "Tags to filter by", required = true) @Valid @RequestParam(value = "tags", required = true) tags: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Find pet by ID", + operationId = "getPetById", + description = """Returns a single pet""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Pet::class))]), + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Pet not found") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_PET_BY_ID /* "/pet/{petId}" */], + produces = ["application/xml", "application/json"] + ) + fun getPetById( + @Parameter(description = "ID of pet to return", required = true) @PathVariable("petId") petId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Update an existing pet", + operationId = "updatePet", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Pet::class))]), + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Pet not found"), + ApiResponse(responseCode = "405", description = "Validation exception") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_PET /* "/pet" */], + produces = ["application/xml", "application/json"], + consumes = ["application/json", "application/xml"] + ) + fun updatePet( + @Parameter(description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody pet: Pet + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "Updates a pet in the store with form data", + operationId = "updatePetWithForm", + description = """""", + responses = [ + ApiResponse(responseCode = "405", description = "Invalid input") + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPDATE_PET_WITH_FORM /* "/pet/{petId}" */], + consumes = ["application/x-www-form-urlencoded"] + ) + fun updatePetWithForm( + @Parameter(description = "ID of pet that needs to be updated", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) name: kotlin.String?, + @Parameter(description = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) status: kotlin.String? + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["pet",], + summary = "uploads an image", + operationId = "uploadFile", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = ModelApiResponse::class))]) + ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPLOAD_FILE /* "/pet/{petId}/uploadImage" */], + produces = ["application/json"], + consumes = ["multipart/form-data"] + ) + fun uploadFile( + @Parameter(description = "ID of pet to update", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String?, + @Parameter(description = "file to upload") @Valid @RequestPart("file", required = false) file: org.springframework.web.multipart.MultipartFile + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + const val PATH_ADD_PET: String = "/pet" + const val PATH_DELETE_PET: String = "/pet/{petId}" + const val PATH_FIND_PETS_BY_STATUS: String = "/pet/findByStatus" + const val PATH_FIND_PETS_BY_TAGS: String = "/pet/findByTags" + const val PATH_GET_PET_BY_ID: String = "/pet/{petId}" + const val PATH_UPDATE_PET: String = "/pet" + const val PATH_UPDATE_PET_WITH_FORM: String = "/pet/{petId}" + const val PATH_UPLOAD_FILE: String = "/pet/{petId}/uploadImage" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/StoreApi.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/StoreApi.kt new file mode 100644 index 000000000000..abcae142295a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/StoreApi.kt @@ -0,0 +1,133 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.api + +import org.openapitools.model.Order +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.StoreApi.Companion.BASE_PATH + +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +interface StoreApi { + + @Operation( + tags = ["store",], + summary = "Delete purchase order by ID", + operationId = "deleteOrder", + description = """For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Order not found") + ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] + ) + fun deleteOrder( + @Parameter(description = "ID of the order that needs to be deleted", required = true) @PathVariable("orderId") orderId: kotlin.String + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["store",], + summary = "Returns pet inventories by status", + operationId = "getInventory", + description = """Returns a map of status codes to quantities""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = kotlin.collections.Map::class))]) + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_INVENTORY /* "/store/inventory" */], + produces = ["application/json"] + ) + fun getInventory(): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["store",], + summary = "Find purchase order by ID", + operationId = "getOrderById", + description = """For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Order::class))]), + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Order not found") + ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_ORDER_BY_ID /* "/store/order/{orderId}" */], + produces = ["application/xml", "application/json"] + ) + fun getOrderById( + @Min(value=1L) @Max(value=5L) @Parameter(description = "ID of pet that needs to be fetched", required = true) @PathVariable("orderId") orderId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["store",], + summary = "Place an order for a pet", + operationId = "placeOrder", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Order::class))]), + ApiResponse(responseCode = "400", description = "Invalid Order") + ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_PLACE_ORDER /* "/store/order" */], + produces = ["application/xml", "application/json"], + consumes = ["application/json"] + ) + fun placeOrder( + @Parameter(description = "order placed for purchasing the pet", required = true) @Valid @RequestBody order: Order + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + const val PATH_DELETE_ORDER: String = "/store/order/{orderId}" + const val PATH_GET_INVENTORY: String = "/store/inventory" + const val PATH_GET_ORDER_BY_ID: String = "/store/order/{orderId}" + const val PATH_PLACE_ORDER: String = "/store/order" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/UserApi.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/UserApi.kt new file mode 100644 index 000000000000..587f3b5817ca --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/UserApi.kt @@ -0,0 +1,223 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.api + +import org.openapitools.model.User +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.UserApi.Companion.BASE_PATH + +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +interface UserApi { + + @Operation( + tags = ["user",], + summary = "Create user", + operationId = "createUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USER /* "/user" */], + consumes = ["application/json"] + ) + fun createUser( + @Parameter(description = "Created user object", required = true) @Valid @RequestBody user: User + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Creates list of users with given input array", + operationId = "createUsersWithArrayInput", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_ARRAY_INPUT /* "/user/createWithArray" */], + consumes = ["application/json"] + ) + fun createUsersWithArrayInput( + @Parameter(description = "List of user object", required = true) @Valid @RequestBody user: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Creates list of users with given input array", + operationId = "createUsersWithListInput", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_LIST_INPUT /* "/user/createWithList" */], + consumes = ["application/json"] + ) + fun createUsersWithListInput( + @Parameter(description = "List of user object", required = true) @Valid @RequestBody user: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Delete user", + operationId = "deleteUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid username supplied"), + ApiResponse(responseCode = "404", description = "User not found") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_USER /* "/user/{username}" */] + ) + fun deleteUser( + @Parameter(description = "The name that needs to be deleted", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Get user by user name", + operationId = "getUserByName", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = User::class))]), + ApiResponse(responseCode = "400", description = "Invalid username supplied"), + ApiResponse(responseCode = "404", description = "User not found") + ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_USER_BY_NAME /* "/user/{username}" */], + produces = ["application/xml", "application/json"] + ) + fun getUserByName( + @Parameter(description = "The name that needs to be fetched. Use user1 for testing.", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Logs user into the system", + operationId = "loginUser", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = kotlin.String::class))]), + ApiResponse(responseCode = "400", description = "Invalid username/password supplied") + ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGIN_USER /* "/user/login" */], + produces = ["application/xml", "application/json"] + ) + fun loginUser( + @NotNull @Pattern(regexp="^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") @Parameter(description = "The user name for login", required = true) @Valid @RequestParam(value = "username", required = true) username: kotlin.String, + @NotNull @Parameter(description = "The password for login in clear text", required = true) @Valid @RequestParam(value = "password", required = true) password: kotlin.String + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Logs out current logged in user session", + operationId = "logoutUser", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGOUT_USER /* "/user/logout" */] + ) + fun logoutUser(): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + @Operation( + tags = ["user",], + summary = "Updated user", + operationId = "updateUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid user supplied"), + ApiResponse(responseCode = "404", description = "User not found") + ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_USER /* "/user/{username}" */], + consumes = ["application/json"] + ) + fun updateUser( + @Parameter(description = "name that need to be deleted", required = true) @PathVariable("username") username: kotlin.String, + @Parameter(description = "Updated user object", required = true) @Valid @RequestBody user: User + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + const val PATH_CREATE_USER: String = "/user" + const val PATH_CREATE_USERS_WITH_ARRAY_INPUT: String = "/user/createWithArray" + const val PATH_CREATE_USERS_WITH_LIST_INPUT: String = "/user/createWithList" + const val PATH_DELETE_USER: String = "/user/{username}" + const val PATH_GET_USER_BY_NAME: String = "/user/{username}" + const val PATH_LOGIN_USER: String = "/user/login" + const val PATH_LOGOUT_USER: String = "/user/logout" + const val PATH_UPDATE_USER: String = "/user/{username}" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Category.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Category.kt new file mode 100644 index 000000000000..4d38e2f38b0c --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Category.kt @@ -0,0 +1,37 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A category for a pet + * @param id + * @param name + */ +data class Category( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @get:Pattern(regexp="^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") + @Schema(example = "null", description = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt new file mode 100644 index 000000000000..b94f16fe0c34 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt @@ -0,0 +1,40 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * Describes the result of uploading an image resource + * @param code + * @param type + * @param message + */ +data class ModelApiResponse( + + @Schema(example = "null", description = "") + @get:JsonProperty("code") val code: kotlin.Int? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("type") val type: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("message") val message: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Order.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Order.kt new file mode 100644 index 000000000000..f1f9dd136e4d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Order.kt @@ -0,0 +1,74 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * An order for a pets from the pet store + * @param id + * @param petId + * @param quantity + * @param shipDate + * @param status Order Status + * @param complete + */ +data class Order( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("petId") val petId: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("quantity") val quantity: kotlin.Int? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("shipDate") val shipDate: java.time.OffsetDateTime? = null, + + @Schema(example = "null", description = "Order Status") + @get:JsonProperty("status") val status: Order.Status? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("complete") val complete: kotlin.Boolean? = false +) : Serializable { + + /** + * Order Status + * Values: placed,approved,delivered + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + placed("placed"), + approved("approved"), + delivered("delivered"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Order'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Pet.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Pet.kt new file mode 100644 index 000000000000..e644f12f163d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Pet.kt @@ -0,0 +1,79 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import org.openapitools.model.Category +import org.openapitools.model.Tag +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A pet for sale in the pet store + * @param name + * @param photoUrls + * @param id + * @param category + * @param tags + * @param status pet status in the store + */ +data class Pet( + + @Schema(example = "doggie", required = true, description = "") + @get:JsonProperty("name", required = true) val name: kotlin.String, + + @Schema(example = "null", required = true, description = "") + @get:JsonProperty("photoUrls", required = true) val photoUrls: kotlin.collections.List, + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("category") val category: Category? = null, + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("tags") val tags: kotlin.collections.List? = null, + + @Schema(example = "null", description = "pet status in the store") + @Deprecated(message = "") + @get:JsonProperty("status") val status: Pet.Status? = null +) : Serializable { + + /** + * pet status in the store + * Values: available,pending,sold + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + available("available"), + pending("pending"), + sold("sold"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Pet'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Tag.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Tag.kt new file mode 100644 index 000000000000..9aeefda7ac75 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Tag.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A tag for a pet + * @param id + * @param name + */ +data class Tag( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/User.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/User.kt new file mode 100644 index 000000000000..3824ce08a5b2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/User.kt @@ -0,0 +1,60 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A User who is purchasing from the pet store + * @param id + * @param username + * @param firstName + * @param lastName + * @param email + * @param password + * @param phone + * @param userStatus User Status + */ +data class User( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("username") val username: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("firstName") val firstName: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("lastName") val lastName: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("email") val email: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("password") val password: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("phone") val phone: kotlin.String? = null, + + @Schema(example = "null", description = "User Status") + @get:JsonProperty("userStatus") val userStatus: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator-ignore b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator-ignore new file mode 100644 index 000000000000..7484ee590a38 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/FILES new file mode 100644 index 000000000000..8ba65087e770 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/FILES @@ -0,0 +1,36 @@ +README.md +build.gradle.kts +gradle/wrapper/gradle-wrapper.jar +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat +pom.xml +settings.gradle +src/main/kotlin/org/openapitools/Application.kt +src/main/kotlin/org/openapitools/HomeController.kt +src/main/kotlin/org/openapitools/SpringDocConfiguration.kt +src/main/kotlin/org/openapitools/api/ApiUtil.kt +src/main/kotlin/org/openapitools/api/Exceptions.kt +src/main/kotlin/org/openapitools/api/ItemsApiController.kt +src/main/kotlin/org/openapitools/api/ItemsApiService.kt +src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/PetApiController.kt +src/main/kotlin/org/openapitools/api/PetApiService.kt +src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/StoreApiController.kt +src/main/kotlin/org/openapitools/api/StoreApiService.kt +src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/UserApiController.kt +src/main/kotlin/org/openapitools/api/UserApiService.kt +src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt +src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt +src/main/kotlin/org/openapitools/model/ModelApiResponse.kt +src/main/kotlin/org/openapitools/model/Order.kt +src/main/kotlin/org/openapitools/model/Pet.kt +src/main/kotlin/org/openapitools/model/Tag.kt +src/main/kotlin/org/openapitools/model/User.kt +src/main/resources/application.yaml +src/main/resources/openapi.yaml diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/VERSION b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/VERSION new file mode 100644 index 000000000000..2fb556b60635 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.18.0-SNAPSHOT diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/README.md b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/README.md new file mode 100644 index 000000000000..b6865a081135 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/README.md @@ -0,0 +1,21 @@ +# openAPIPetstore + +This Kotlin based [Spring Boot](https://spring.io/projects/spring-boot) application has been generated using the [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). + +## Getting Started + +This document assumes you have either maven or gradle available, either via the wrapper or otherwise. This does not come with a gradle / maven wrapper checked in. + +By default a [`pom.xml`](pom.xml) file will be generated. If you specified `gradleBuildFile=true` when generating this project, a `build.gradle.kts` will also be generated. Note this uses [Gradle Kotlin DSL](https://github.com/gradle/kotlin-dsl). + +To build the project using maven, run: +```bash +mvn package && java -jar target/openapi-spring-1.0.0.jar +``` + +To build the project using gradle, run: +```bash +gradle build && java -jar build/libs/openapi-spring-1.0.0.jar +``` + +If all builds successfully, the server should run on [http://localhost:8080/](http://localhost:8080/) diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/build.gradle.kts b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/build.gradle.kts new file mode 100644 index 000000000000..ae1b59ef90c8 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/build.gradle.kts @@ -0,0 +1,43 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +group = "org.openapitools" +version = "1.0.0" +java.sourceCompatibility = JavaVersion.VERSION_17 + +repositories { + mavenCentral() + maven { url = uri("https://repo.spring.io/milestone") } +} + +tasks.withType { + kotlinOptions.jvmTarget = "17" +} + +plugins { + val kotlinVersion = "1.9.25" + id("org.jetbrains.kotlin.jvm") version kotlinVersion + id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion + id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion + id("org.springframework.boot") version "3.0.2" + id("io.spring.dependency-management") version "1.0.14.RELEASE" +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.6.0") + + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") + implementation("jakarta.validation:jakarta.validation-api") + implementation("jakarta.annotation:jakarta.annotation-api:2.1.0") + + testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") + testImplementation("org.springframework.boot:spring-boot-starter-test") { + exclude(module = "junit") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.jar b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000000..e6441136f3d4 Binary files /dev/null and b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.properties b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000000..80187ac30432 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew new file mode 100644 index 000000000000..9d0ce634cb11 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while +APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path +[ -h "$app_path" ] +do +ls=$( ls -ld "$app_path" ) +link=${ls#*' -> '} +case $link in #( +/*) app_path=$link ;; #( +*) app_path=$APP_HOME$link ;; +esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { +echo "$*" +} >&2 + +die () { +echo +echo "$*" +echo +exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( +CYGWIN* ) cygwin=true ;; #( +Darwin* ) darwin=true ;; #( +MSYS* | MINGW* ) msys=true ;; #( +NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then +if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +# IBM's JDK on AIX uses strange locations for the executables +JAVACMD=$JAVA_HOME/jre/sh/java +else +JAVACMD=$JAVA_HOME/bin/java +fi +if [ ! -x "$JAVACMD" ] ; then +die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +else +JAVACMD=java +if ! command -v java >/dev/null 2>&1 +then +die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then +case $MAX_FD in #( +max*) +# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +MAX_FD=$( ulimit -H -n ) || +warn "Could not query maximum file descriptor limit" +esac +case $MAX_FD in #( +'' | soft) :;; #( +*) +# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +ulimit -n "$MAX_FD" || +warn "Could not set maximum file descriptor limit to $MAX_FD" +esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then +APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) +CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + +JAVACMD=$( cygpath --unix "$JAVACMD" ) + +# Now convert the arguments - kludge to limit ourselves to /bin/sh +for arg do +if +case $arg in #( +-*) false ;; # don't mess with options #( +/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath +[ -e "$t" ] ;; #( +*) false ;; +esac +then +arg=$( cygpath --path --ignore --mixed "$arg" ) +fi +# Roll the args list around exactly as many times as the number of +# args, so each arg winds up back in the position where it started, but +# possibly modified. +# +# NB: a `for` loop captures its iteration list before it begins, so +# changing the positional parameters here affects neither the number of +# iterations, nor the values presented in `arg`. +shift # remove old arg +set -- "$@" "$arg" # push replacement arg +done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ +"-Dorg.gradle.appname=$APP_BASE_NAME" \ +-classpath "$CLASSPATH" \ +org.gradle.wrapper.GradleWrapperMain \ +"$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then +die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( +printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | +xargs -n1 | +sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | +tr '\n' ' ' +)" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew.bat b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew.bat new file mode 100644 index 000000000000..25da30dbdeee --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/pom.xml b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/pom.xml new file mode 100644 index 000000000000..07c653febb4b --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/pom.xml @@ -0,0 +1,149 @@ + + 4.0.0 + org.openapitools + openapi-spring + jar + openapi-spring + 1.0.0 + + 3.0.2 + 2.1.0 + 1.7.10 + + 1.7.10 + UTF-8 + + + org.springframework.boot + spring-boot-starter-parent + 3.1.3 + + + + repository.spring.milestone + Spring Milestone Repository + https://repo.spring.io/milestone + + + + + spring-milestones + https://repo.spring.io/milestone + + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/test/kotlin + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + spring + + 17 + + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.jetbrains.kotlin + kotlin-maven-allopen + ${kotlin.version} + + + + + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-reflect + ${kotlin.version} + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springdoc + springdoc-openapi-webmvc-core + ${springdoc-openapi.version} + + + + + com.google.code.findbugs + jsr305 + ${findbugs-jsr305.version} + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.fasterxml.jackson.module + jackson-module-kotlin + + + + jakarta.validation + jakarta.validation-api + + + jakarta.annotation + jakarta.annotation-api + ${jakarta-annotation.version} + provided + + + org.jetbrains.kotlin + kotlin-test-junit5 + ${kotlin-test-junit5.version} + test + + + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/settings.gradle b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/settings.gradle new file mode 100644 index 000000000000..14844905cd40 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/settings.gradle @@ -0,0 +1,15 @@ +pluginManagement { + repositories { + maven { url = uri("https://repo.spring.io/snapshot") } + maven { url = uri("https://repo.spring.io/milestone") } + gradlePluginPortal() + } + resolutionStrategy { + eachPlugin { + if (requested.id.id == "org.springframework.boot") { + useModule("org.springframework.boot:spring-boot-gradle-plugin:${requested.version}") + } + } + } +} +rootProject.name = "openapi-spring" diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/Application.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/Application.kt new file mode 100644 index 000000000000..2fe6de62479e --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/Application.kt @@ -0,0 +1,13 @@ +package org.openapitools + +import org.springframework.boot.runApplication +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.context.annotation.ComponentScan + +@SpringBootApplication +@ComponentScan(basePackages = ["org.openapitools", "org.openapitools.api", "org.openapitools.model"]) +class Application + +fun main(args: Array) { + runApplication(*args) +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/HomeController.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/HomeController.kt new file mode 100644 index 000000000000..310e7f4d62e3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/HomeController.kt @@ -0,0 +1,12 @@ +package org.openapitools + +import org.springframework.context.annotation.Bean +import org.springframework.stereotype.Controller +import org.springframework.web.bind.annotation.RequestMapping + +/** + * Home redirection to OpenAPI api documentation + */ +@Controller +class HomeController { +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt new file mode 100644 index 000000000000..cbdc4ba437ca --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt @@ -0,0 +1,42 @@ +package org.openapitools + +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +import io.swagger.v3.oas.models.OpenAPI +import io.swagger.v3.oas.models.info.Info +import io.swagger.v3.oas.models.info.Contact +import io.swagger.v3.oas.models.info.License +import io.swagger.v3.oas.models.Components +import io.swagger.v3.oas.models.security.SecurityScheme + +@Configuration +class SpringDocConfiguration { + + @Bean + fun apiInfo(): OpenAPI { + return OpenAPI() + .info( + Info() + .title("OpenAPI Petstore") + .description("This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.") + .license( + License() + .name("Apache-2.0") + .url("http://www.apache.org/licenses/LICENSE-2.0.html") + ) + .version("1.0.0") + ) + .components( + Components() + .addSecuritySchemes("petstore_auth", SecurityScheme() + .type(SecurityScheme.Type.OAUTH2) + ) + .addSecuritySchemes("api_key", SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .`in`(SecurityScheme.In.HEADER) + .name("api_key") + ) + ) + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ApiUtil.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ApiUtil.kt new file mode 100644 index 000000000000..03344e13b474 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ApiUtil.kt @@ -0,0 +1,19 @@ +package org.openapitools.api + +import org.springframework.web.context.request.NativeWebRequest + +import jakarta.servlet.http.HttpServletResponse +import java.io.IOException + +object ApiUtil { + fun setExampleResponse(req: NativeWebRequest, contentType: String, example: String) { + try { + val res = req.getNativeResponse(HttpServletResponse::class.java) + res?.characterEncoding = "UTF-8" + res?.addHeader("Content-Type", contentType) + res?.writer?.print(example) + } catch (e: IOException) { + throw RuntimeException(e) + } + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/Exceptions.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/Exceptions.kt new file mode 100644 index 000000000000..1bd78f54576a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/Exceptions.kt @@ -0,0 +1,30 @@ +package org.openapitools.api + +import org.springframework.context.annotation.Configuration +import org.springframework.http.HttpStatus +import org.springframework.web.bind.annotation.ControllerAdvice +import org.springframework.web.bind.annotation.ExceptionHandler +import jakarta.servlet.http.HttpServletResponse +import jakarta.validation.ConstraintViolationException + +// TODO Extend ApiException for custom exception handling, e.g. the below NotFound exception +sealed class ApiException(msg: String, val code: Int) : Exception(msg) + +class NotFoundException(msg: String, code: Int = HttpStatus.NOT_FOUND.value()) : ApiException(msg, code) + +@Configuration("org.openapitools.api.DefaultExceptionHandler") +@ControllerAdvice +class DefaultExceptionHandler { + + @ExceptionHandler(value = [ApiException::class]) + fun onApiException(ex: ApiException, response: HttpServletResponse): Unit = + response.sendError(ex.code, ex.message) + + @ExceptionHandler(value = [NotImplementedError::class]) + fun onNotImplemented(ex: NotImplementedError, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.NOT_IMPLEMENTED.value()) + + @ExceptionHandler(value = [ConstraintViolationException::class]) + fun onConstraintViolation(ex: ConstraintViolationException, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.BAD_REQUEST.value(), ex.constraintViolations.joinToString(", ") { it.message }) +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiController.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiController.kt new file mode 100644 index 000000000000..2d2f6caffc94 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,87 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +class ItemsApiController(@Autowired(required = true) val service: ItemsApiService) { + + @Operation( + summary = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + operationId = "itemsItemIdSomethingItemSubIdGet", + description = """SQ = "; SBS = \; DBS = \\; SD = ${'$'}some""", + responses = [ + ApiResponse(responseCode = "200", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", content = [Content(schema = Schema(implementation = ItemsItemIdSomethingItemSubIdGet200Response::class))]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item$Id}/something/{item$SubId}" */], + produces = ["application/json"] + ) + fun itemsItemIdSomethingItemSubIdGet( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + operationId = "itemsPost", + description = """SQ = "; SBS = \; DBS = \\; SD = ${'$'}some""", + responses = [ + ApiResponse(responseCode = "201", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", content = [Content(schema = Schema(implementation = ItemWithDollarAttributesAndExamples::class))]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ITEMS_POST /* "/items" */], + produces = ["application/json"], + consumes = ["application/x-www-form-urlencoded"] + ) + fun itemsPost( + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", `in` = ParameterIn.HEADER) @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @Parameter(description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", schema = Schema(defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.itemsPost(xPostHeader, formDollarName, formDollarValue), HttpStatus.valueOf(201)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiService.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiService.kt new file mode 100644 index 000000000000..918cb1610b33 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiService.kt @@ -0,0 +1,36 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +interface ItemsApiService { + + /** + * GET /items/{item$Id}/something/{item$SubId} : SQ = "; SBS = \; DBS = \\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some (required) + * @param itemDollarSubId SQ = "; SBS = \; DBS = \\; SD = $some (required) + * @param filterDollarType SQ = "; SBS = \; DBS = \\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @param filterDollarSubType SQ = "; SBS = \; DBS = \\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @param xCustomHeader SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param sessionDollarToken SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param sessionDollarTokenTwo SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @return SQ = "; SBS = \; DBS = \\; SD = $some (status code 200) + * @see ItemsApi#itemsItemIdSomethingItemSubIdGet + */ + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String, filterDollarSubType: kotlin.String, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?, sessionDollarToken: kotlin.String?, sessionDollarTokenTwo: kotlin.String?): ItemsItemIdSomethingItemSubIdGet200Response + + /** + * POST /items : SQ = "; SBS = \; DBS = \\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * + * @param xPostHeader SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param formDollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @return SQ = "; SBS = \; DBS = \\; SD = $some (status code 201) + * @see ItemsApi#itemsPost + */ + fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String): ItemWithDollarAttributesAndExamples +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt new file mode 100644 index 000000000000..5753996f7855 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt @@ -0,0 +1,16 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import org.springframework.stereotype.Service +@Service +class ItemsApiServiceImpl : ItemsApiService { + + override fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String, filterDollarSubType: kotlin.String, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?, sessionDollarToken: kotlin.String?, sessionDollarTokenTwo: kotlin.String?): ItemsItemIdSomethingItemSubIdGet200Response { + TODO("Implement me") + } + + override fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String): ItemWithDollarAttributesAndExamples { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiController.kt new file mode 100644 index 000000000000..526c57dfd17b --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -0,0 +1,253 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +class PetApiController(@Autowired(required = true) val service: PetApiService) { + + @Operation( + summary = "Add a new pet to the store", + operationId = "addPet", + description = """""", + responses = [ + ApiResponse(responseCode = "405", description = "Invalid input") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ADD_PET /* "/pet" */], + consumes = ["application/json", "application/xml"] + ) + fun addPet( + @Parameter(description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody body: Pet + ): ResponseEntity { + return ResponseEntity(service.addPet(body), HttpStatus.valueOf(405)) + } + + @Operation( + summary = "Deletes a pet", + operationId = "deletePet", + description = """""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid pet value") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_PET /* "/pet/{petId}" */] + ) + fun deletePet( + @Parameter(description = "Pet id to delete", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "", `in` = ParameterIn.HEADER) @RequestHeader(value = "api_key", required = false) apiKey: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.deletePet(petId, apiKey), HttpStatus.valueOf(400)) + } + + @Operation( + summary = "Finds Pets by status", + operationId = "findPetsByStatus", + description = """Multiple status values can be provided with comma separated strings""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(array = ArraySchema(schema = Schema(implementation = Pet::class)))]), + ApiResponse(responseCode = "400", description = "Invalid status value") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_STATUS /* "/pet/findByStatus" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByStatus( + @NotNull @Parameter(description = "Status values that need to be considered for filter", required = true, schema = Schema(allowableValues = ["available", "pending", "sold"])) @Valid @RequestParam(value = "status", required = true) status: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(service.findPetsByStatus(status), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Finds Pets by tags", + operationId = "findPetsByTags", + description = """Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(array = ArraySchema(schema = Schema(implementation = Pet::class)))]), + ApiResponse(responseCode = "400", description = "Invalid tag value") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_TAGS /* "/pet/findByTags" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByTags( + @NotNull @Parameter(description = "Tags to filter by", required = true) @Valid @RequestParam(value = "tags", required = true) tags: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(service.findPetsByTags(tags), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Get an image", + operationId = "getImage", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = org.springframework.core.io.Resource::class))]) ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_IMAGE /* "/pet/{petId}/getImage" */], + produces = ["application/octet-stream"] + ) + fun getImage( + @Parameter(description = "ID of pet to get image", required = true) @PathVariable("petId") petId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getImage(petId), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Find pet by ID", + operationId = "getPetById", + description = """Returns a single pet""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Pet::class))]), + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Pet not found") ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_PET_BY_ID /* "/pet/{petId}" */], + produces = ["application/xml", "application/json"] + ) + fun getPetById( + @Parameter(description = "ID of pet to return", required = true) @PathVariable("petId") petId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getPetById(petId), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Update an existing pet", + operationId = "updatePet", + description = """""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Pet not found"), + ApiResponse(responseCode = "405", description = "Validation exception") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_PET /* "/pet" */], + consumes = ["application/json", "application/xml"] + ) + fun updatePet( + @Parameter(description = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody body: Pet + ): ResponseEntity { + return ResponseEntity(service.updatePet(body), HttpStatus.valueOf(400)) + } + + @Operation( + summary = "Updates a pet in the store with form data", + operationId = "updatePetWithForm", + description = """""", + responses = [ + ApiResponse(responseCode = "405", description = "Invalid input") ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPDATE_PET_WITH_FORM /* "/pet/{petId}" */], + consumes = ["application/x-www-form-urlencoded"] + ) + fun updatePetWithForm( + @Parameter(description = "ID of pet that needs to be updated", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) name: kotlin.String?, + @Parameter(description = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) status: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.updatePetWithForm(petId, name, status), HttpStatus.valueOf(405)) + } + + @Operation( + summary = "uploads an image", + operationId = "uploadFile", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = ModelApiResponse::class))]) ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPLOAD_FILE /* "/pet/{petId}/uploadImage" */], + produces = ["application/json"], + consumes = ["multipart/form-data"] + ) + fun uploadFile( + @Parameter(description = "ID of pet to update", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "image to upload") @Valid @RequestPart("image", required = true) image: org.springframework.web.multipart.MultipartFile, + @Parameter(description = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.uploadFile(petId, image, additionalMetadata), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "uploads multiple images", + operationId = "uploadMultipleFile", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = ModelApiResponse::class))]) ], + security = [ SecurityRequirement(name = "petstore_auth", scopes = [ "write:pets", "read:pets" ]) ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPLOAD_MULTIPLE_FILE /* "/pet/{petId}/uploadMultipleImage" */], + produces = ["application/json"], + consumes = ["multipart/form-data"] + ) + fun uploadMultipleFile( + @Parameter(description = "ID of pet to update", required = true) @PathVariable("petId") petId: kotlin.Long, + @Parameter(description = "") @Valid @RequestPart("images", required = true) images: Array, + @Parameter(description = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.uploadMultipleFile(petId, images, additionalMetadata), HttpStatus.valueOf(200)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ADD_PET: String = "/pet" + const val PATH_DELETE_PET: String = "/pet/{petId}" + const val PATH_FIND_PETS_BY_STATUS: String = "/pet/findByStatus" + const val PATH_FIND_PETS_BY_TAGS: String = "/pet/findByTags" + const val PATH_GET_IMAGE: String = "/pet/{petId}/getImage" + const val PATH_GET_PET_BY_ID: String = "/pet/{petId}" + const val PATH_UPDATE_PET: String = "/pet" + const val PATH_UPDATE_PET_WITH_FORM: String = "/pet/{petId}" + const val PATH_UPLOAD_FILE: String = "/pet/{petId}/uploadImage" + const val PATH_UPLOAD_MULTIPLE_FILE: String = "/pet/{petId}/uploadMultipleImage" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiService.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiService.kt new file mode 100644 index 000000000000..fe00af396a96 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiService.kt @@ -0,0 +1,114 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet + +interface PetApiService { + + /** + * POST /pet : Add a new pet to the store + * + * @param body Pet object that needs to be added to the store (required) + * @return Invalid input (status code 405) + * @see PetApi#addPet + */ + fun addPet(body: Pet): Unit + + /** + * DELETE /pet/{petId} : Deletes a pet + * + * @param petId Pet id to delete (required) + * @param apiKey (optional) + * @return Invalid pet value (status code 400) + * @see PetApi#deletePet + */ + fun deletePet(petId: kotlin.Long, apiKey: kotlin.String?): Unit + + /** + * GET /pet/findByStatus : Finds Pets by status + * Multiple status values can be provided with comma separated strings + * + * @param status Status values that need to be considered for filter (required) + * @return successful operation (status code 200) + * or Invalid status value (status code 400) + * @see PetApi#findPetsByStatus + */ + fun findPetsByStatus(status: kotlin.collections.List): List + + /** + * GET /pet/findByTags : Finds Pets by tags + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + * + * @param tags Tags to filter by (required) + * @return successful operation (status code 200) + * or Invalid tag value (status code 400) + * @deprecated + * @see PetApi#findPetsByTags + */ + fun findPetsByTags(tags: kotlin.collections.List): List + + /** + * GET /pet/{petId}/getImage : Get an image + * + * @param petId ID of pet to get image (required) + * @return successful operation (status code 200) + * @see PetApi#getImage + */ + fun getImage(petId: kotlin.Long): org.springframework.core.io.Resource + + /** + * GET /pet/{petId} : Find pet by ID + * Returns a single pet + * + * @param petId ID of pet to return (required) + * @return successful operation (status code 200) + * or Invalid ID supplied (status code 400) + * or Pet not found (status code 404) + * @see PetApi#getPetById + */ + fun getPetById(petId: kotlin.Long): Pet + + /** + * PUT /pet : Update an existing pet + * + * @param body Pet object that needs to be added to the store (required) + * @return Invalid ID supplied (status code 400) + * or Pet not found (status code 404) + * or Validation exception (status code 405) + * @see PetApi#updatePet + */ + fun updatePet(body: Pet): Unit + + /** + * POST /pet/{petId} : Updates a pet in the store with form data + * + * @param petId ID of pet that needs to be updated (required) + * @param name Updated name of the pet (optional) + * @param status Updated status of the pet (optional) + * @return Invalid input (status code 405) + * @see PetApi#updatePetWithForm + */ + fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String?, status: kotlin.String?): Unit + + /** + * POST /pet/{petId}/uploadImage : uploads an image + * + * @param petId ID of pet to update (required) + * @param image image to upload (required) + * @param additionalMetadata Additional data to pass to server (optional) + * @return successful operation (status code 200) + * @see PetApi#uploadFile + */ + fun uploadFile(petId: kotlin.Long, image: org.springframework.web.multipart.MultipartFile, additionalMetadata: kotlin.String?): ModelApiResponse + + /** + * POST /pet/{petId}/uploadMultipleImage : uploads multiple images + * + * @param petId ID of pet to update (required) + * @param images (required) + * @param additionalMetadata Additional data to pass to server (optional) + * @return successful operation (status code 200) + * @see PetApi#uploadMultipleFile + */ + fun uploadMultipleFile(petId: kotlin.Long, images: Array, additionalMetadata: kotlin.String?): ModelApiResponse +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt new file mode 100644 index 000000000000..5b1b8e57d8be --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt @@ -0,0 +1,48 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import org.springframework.stereotype.Service +@Service +class PetApiServiceImpl : PetApiService { + + override fun addPet(body: Pet): Unit { + TODO("Implement me") + } + + override fun deletePet(petId: kotlin.Long, apiKey: kotlin.String?): Unit { + TODO("Implement me") + } + + override fun findPetsByStatus(status: kotlin.collections.List): List { + TODO("Implement me") + } + + override fun findPetsByTags(tags: kotlin.collections.List): List { + TODO("Implement me") + } + + override fun getImage(petId: kotlin.Long): org.springframework.core.io.Resource { + TODO("Implement me") + } + + override fun getPetById(petId: kotlin.Long): Pet { + TODO("Implement me") + } + + override fun updatePet(body: Pet): Unit { + TODO("Implement me") + } + + override fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String?, status: kotlin.String?): Unit { + TODO("Implement me") + } + + override fun uploadFile(petId: kotlin.Long, image: org.springframework.web.multipart.MultipartFile, additionalMetadata: kotlin.String?): ModelApiResponse { + TODO("Implement me") + } + + override fun uploadMultipleFile(petId: kotlin.Long, images: Array, additionalMetadata: kotlin.String?): ModelApiResponse { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiController.kt new file mode 100644 index 000000000000..cbb6a7f5c6a0 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -0,0 +1,116 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +class StoreApiController(@Autowired(required = true) val service: StoreApiService) { + + @Operation( + summary = "Delete purchase order by ID", + operationId = "deleteOrder", + description = """For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Order not found") ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] + ) + fun deleteOrder( + @Parameter(description = "ID of the order that needs to be deleted", required = true) @PathVariable("orderId") orderId: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.deleteOrder(orderId), HttpStatus.valueOf(400)) + } + + @Operation( + summary = "Returns pet inventories by status", + operationId = "getInventory", + description = """Returns a map of status codes to quantities""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = kotlin.collections.Map::class))]) ], + security = [ SecurityRequirement(name = "api_key") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_INVENTORY /* "/store/inventory" */], + produces = ["application/json"] + ) + fun getInventory(): ResponseEntity> { + return ResponseEntity(service.getInventory(), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Find purchase order by ID", + operationId = "getOrderById", + description = """For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Order::class))]), + ApiResponse(responseCode = "400", description = "Invalid ID supplied"), + ApiResponse(responseCode = "404", description = "Order not found") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_ORDER_BY_ID /* "/store/order/{orderId}" */], + produces = ["application/xml", "application/json"] + ) + fun getOrderById( + @Min(value=1L) @Max(value=5L) @Parameter(description = "ID of pet that needs to be fetched", required = true) @PathVariable("orderId") orderId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getOrderById(orderId), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Place an order for a pet", + operationId = "placeOrder", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = Order::class))]), + ApiResponse(responseCode = "400", description = "Invalid Order") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_PLACE_ORDER /* "/store/order" */], + produces = ["application/xml", "application/json"] + ) + fun placeOrder( + @Parameter(description = "order placed for purchasing the pet", required = true) @Valid @RequestBody body: Order + ): ResponseEntity { + return ResponseEntity(service.placeOrder(body), HttpStatus.valueOf(200)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_DELETE_ORDER: String = "/store/order/{orderId}" + const val PATH_GET_INVENTORY: String = "/store/inventory" + const val PATH_GET_ORDER_BY_ID: String = "/store/order/{orderId}" + const val PATH_PLACE_ORDER: String = "/store/order" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt new file mode 100644 index 000000000000..c65ddf31c90a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -0,0 +1,48 @@ +package org.openapitools.api + +import org.openapitools.model.Order + +interface StoreApiService { + + /** + * DELETE /store/order/{orderId} : Delete purchase order by ID + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * + * @param orderId ID of the order that needs to be deleted (required) + * @return Invalid ID supplied (status code 400) + * or Order not found (status code 404) + * @see StoreApi#deleteOrder + */ + fun deleteOrder(orderId: kotlin.String): Unit + + /** + * GET /store/inventory : Returns pet inventories by status + * Returns a map of status codes to quantities + * + * @return successful operation (status code 200) + * @see StoreApi#getInventory + */ + fun getInventory(): Map + + /** + * GET /store/order/{orderId} : Find purchase order by ID + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * + * @param orderId ID of pet that needs to be fetched (required) + * @return successful operation (status code 200) + * or Invalid ID supplied (status code 400) + * or Order not found (status code 404) + * @see StoreApi#getOrderById + */ + fun getOrderById(orderId: kotlin.Long): Order + + /** + * POST /store/order : Place an order for a pet + * + * @param body order placed for purchasing the pet (required) + * @return successful operation (status code 200) + * or Invalid Order (status code 400) + * @see StoreApi#placeOrder + */ + fun placeOrder(body: Order): Order +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt new file mode 100644 index 000000000000..7e733e28dc50 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt @@ -0,0 +1,23 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import org.springframework.stereotype.Service +@Service +class StoreApiServiceImpl : StoreApiService { + + override fun deleteOrder(orderId: kotlin.String): Unit { + TODO("Implement me") + } + + override fun getInventory(): Map { + TODO("Implement me") + } + + override fun getOrderById(orderId: kotlin.Long): Order { + TODO("Implement me") + } + + override fun placeOrder(body: Order): Order { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiController.kt new file mode 100644 index 000000000000..91970e252573 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -0,0 +1,205 @@ +package org.openapitools.api + +import org.openapitools.model.User +import io.swagger.v3.oas.annotations.* +import io.swagger.v3.oas.annotations.enums.* +import io.swagger.v3.oas.annotations.media.* +import io.swagger.v3.oas.annotations.responses.* +import io.swagger.v3.oas.annotations.security.* +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +class UserApiController(@Autowired(required = true) val service: UserApiService) { + + @Operation( + summary = "Create user", + operationId = "createUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USER /* "/user" */] + ) + fun createUser( + @Parameter(description = "Created user object", required = true) @Valid @RequestBody body: User + ): ResponseEntity { + return ResponseEntity(service.createUser(body), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Creates list of users with given input array", + operationId = "createUsersWithArrayInput", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_ARRAY_INPUT /* "/user/createWithArray" */] + ) + fun createUsersWithArrayInput( + @Parameter(description = "List of user object", required = true) @Valid @RequestBody body: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(service.createUsersWithArrayInput(body), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Creates list of users with given input array", + operationId = "createUsersWithListInput", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") ] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_LIST_INPUT /* "/user/createWithList" */] + ) + fun createUsersWithListInput( + @Parameter(description = "List of user object", required = true) @Valid @RequestBody body: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(service.createUsersWithListInput(body), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Delete user", + operationId = "deleteUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid username supplied"), + ApiResponse(responseCode = "404", description = "User not found") ] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_USER /* "/user/{username}" */] + ) + fun deleteUser( + @Parameter(description = "The name that needs to be deleted", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.deleteUser(username), HttpStatus.valueOf(400)) + } + + @Operation( + summary = "Get user by user name", + operationId = "getUserByName", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = User::class))]), + ApiResponse(responseCode = "400", description = "Invalid username supplied"), + ApiResponse(responseCode = "404", description = "User not found") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_USER_BY_NAME /* "/user/{username}" */], + produces = ["application/xml", "application/json"] + ) + fun getUserByName( + @Parameter(description = "The name that needs to be fetched. Use user1 for testing.", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.getUserByName(username), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Logs user into the system", + operationId = "loginUser", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation", content = [Content(schema = Schema(implementation = kotlin.String::class))]), + ApiResponse(responseCode = "400", description = "Invalid username/password supplied") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGIN_USER /* "/user/login" */], + produces = ["application/xml", "application/json"] + ) + fun loginUser( + @NotNull @Parameter(description = "The user name for login", required = true) @Valid @RequestParam(value = "username", required = true) username: kotlin.String, + @NotNull @Parameter(description = "The password for login in clear text", required = true) @Valid @RequestParam(value = "password", required = true) password: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.loginUser(username, password), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Logs out current logged in user session", + operationId = "logoutUser", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "successful operation") ] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGOUT_USER /* "/user/logout" */] + ) + fun logoutUser(): ResponseEntity { + return ResponseEntity(service.logoutUser(), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "logoutUserOptions", + operationId = "logoutUserOptions", + description = """""", + responses = [ + ApiResponse(responseCode = "200", description = "endpoint configuration response") ] + ) + @RequestMapping( + method = [RequestMethod.OPTIONS], + value = [PATH_LOGOUT_USER_OPTIONS /* "/user/logout" */] + ) + fun logoutUserOptions(): ResponseEntity { + return ResponseEntity(service.logoutUserOptions(), HttpStatus.valueOf(200)) + } + + @Operation( + summary = "Updated user", + operationId = "updateUser", + description = """This can only be done by the logged in user.""", + responses = [ + ApiResponse(responseCode = "400", description = "Invalid user supplied"), + ApiResponse(responseCode = "404", description = "User not found") ] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_USER /* "/user/{username}" */] + ) + fun updateUser( + @Parameter(description = "name that need to be deleted", required = true) @PathVariable("username") username: kotlin.String, + @Parameter(description = "Updated user object", required = true) @Valid @RequestBody body: User + ): ResponseEntity { + return ResponseEntity(service.updateUser(username, body), HttpStatus.valueOf(400)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_CREATE_USER: String = "/user" + const val PATH_CREATE_USERS_WITH_ARRAY_INPUT: String = "/user/createWithArray" + const val PATH_CREATE_USERS_WITH_LIST_INPUT: String = "/user/createWithList" + const val PATH_DELETE_USER: String = "/user/{username}" + const val PATH_GET_USER_BY_NAME: String = "/user/{username}" + const val PATH_LOGIN_USER: String = "/user/login" + const val PATH_LOGOUT_USER: String = "/user/logout" + const val PATH_LOGOUT_USER_OPTIONS: String = "/user/logout" + const val PATH_UPDATE_USER: String = "/user/{username}" + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiService.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiService.kt new file mode 100644 index 000000000000..6942dc3ede0a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiService.kt @@ -0,0 +1,95 @@ +package org.openapitools.api + +import org.openapitools.model.User + +interface UserApiService { + + /** + * POST /user : Create user + * This can only be done by the logged in user. + * + * @param body Created user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUser + */ + fun createUser(body: User): Unit + + /** + * POST /user/createWithArray : Creates list of users with given input array + * + * @param body List of user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUsersWithArrayInput + */ + fun createUsersWithArrayInput(body: kotlin.collections.List): Unit + + /** + * POST /user/createWithList : Creates list of users with given input array + * + * @param body List of user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUsersWithListInput + */ + fun createUsersWithListInput(body: kotlin.collections.List): Unit + + /** + * DELETE /user/{username} : Delete user + * This can only be done by the logged in user. + * + * @param username The name that needs to be deleted (required) + * @return Invalid username supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#deleteUser + */ + fun deleteUser(username: kotlin.String): Unit + + /** + * GET /user/{username} : Get user by user name + * + * @param username The name that needs to be fetched. Use user1 for testing. (required) + * @return successful operation (status code 200) + * or Invalid username supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#getUserByName + */ + fun getUserByName(username: kotlin.String): User + + /** + * GET /user/login : Logs user into the system + * + * @param username The user name for login (required) + * @param password The password for login in clear text (required) + * @return successful operation (status code 200) + * or Invalid username/password supplied (status code 400) + * @see UserApi#loginUser + */ + fun loginUser(username: kotlin.String, password: kotlin.String): kotlin.String + + /** + * GET /user/logout : Logs out current logged in user session + * + * @return successful operation (status code 200) + * @see UserApi#logoutUser + */ + fun logoutUser(): Unit + + /** + * OPTIONS /user/logout : logoutUserOptions + * + * @return endpoint configuration response (status code 200) + * @see UserApi#logoutUserOptions + */ + fun logoutUserOptions(): Unit + + /** + * PUT /user/{username} : Updated user + * This can only be done by the logged in user. + * + * @param username name that need to be deleted (required) + * @param body Updated user object (required) + * @return Invalid user supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#updateUser + */ + fun updateUser(username: kotlin.String, body: User): Unit +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt new file mode 100644 index 000000000000..f0798bd1695a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt @@ -0,0 +1,43 @@ +package org.openapitools.api + +import org.openapitools.model.User +import org.springframework.stereotype.Service +@Service +class UserApiServiceImpl : UserApiService { + + override fun createUser(body: User): Unit { + TODO("Implement me") + } + + override fun createUsersWithArrayInput(body: kotlin.collections.List): Unit { + TODO("Implement me") + } + + override fun createUsersWithListInput(body: kotlin.collections.List): Unit { + TODO("Implement me") + } + + override fun deleteUser(username: kotlin.String): Unit { + TODO("Implement me") + } + + override fun getUserByName(username: kotlin.String): User { + TODO("Implement me") + } + + override fun loginUser(username: kotlin.String, password: kotlin.String): kotlin.String { + TODO("Implement me") + } + + override fun logoutUser(): Unit { + TODO("Implement me") + } + + override fun logoutUserOptions(): Unit { + TODO("Implement me") + } + + override fun updateUser(username: kotlin.String, body: User): Unit { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Category.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Category.kt new file mode 100644 index 000000000000..4415f71fc6e3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Category.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A category for a pet + * @param id + * @param name + */ +data class Category( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..c72ad5e772ca --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..a892b615afa7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..9a960bec6b6c --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @Schema(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @Schema(example = "42", description = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt new file mode 100644 index 000000000000..b94f16fe0c34 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt @@ -0,0 +1,40 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * Describes the result of uploading an image resource + * @param code + * @param type + * @param message + */ +data class ModelApiResponse( + + @Schema(example = "null", description = "") + @get:JsonProperty("code") val code: kotlin.Int? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("type") val type: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("message") val message: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Order.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Order.kt new file mode 100644 index 000000000000..f1f9dd136e4d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Order.kt @@ -0,0 +1,74 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * An order for a pets from the pet store + * @param id + * @param petId + * @param quantity + * @param shipDate + * @param status Order Status + * @param complete + */ +data class Order( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("petId") val petId: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("quantity") val quantity: kotlin.Int? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("shipDate") val shipDate: java.time.OffsetDateTime? = null, + + @Schema(example = "null", description = "Order Status") + @get:JsonProperty("status") val status: Order.Status? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("complete") val complete: kotlin.Boolean? = false +) : Serializable { + + /** + * Order Status + * Values: placed,approved,delivered + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + placed("placed"), + approved("approved"), + delivered("delivered"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Order'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Pet.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Pet.kt new file mode 100644 index 000000000000..a96e73ae83cb --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Pet.kt @@ -0,0 +1,78 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import org.openapitools.model.Category +import org.openapitools.model.Tag +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A pet for sale in the pet store + * @param name + * @param photoUrls + * @param id + * @param category + * @param tags + * @param status pet status in the store + */ +data class Pet( + + @Schema(example = "doggie", required = true, description = "") + @get:JsonProperty("name", required = true) val name: kotlin.String, + + @Schema(example = "null", required = true, description = "") + @get:JsonProperty("photoUrls", required = true) val photoUrls: kotlin.collections.List, + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("category") val category: Category? = null, + + @field:Valid + @Schema(example = "null", description = "") + @get:JsonProperty("tags") val tags: kotlin.collections.List? = null, + + @Schema(example = "null", description = "pet status in the store") + @get:JsonProperty("status") val status: Pet.Status? = null +) : Serializable { + + /** + * pet status in the store + * Values: available,pending,sold + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + available("available"), + pending("pending"), + sold("sold"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Pet'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Tag.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Tag.kt new file mode 100644 index 000000000000..9aeefda7ac75 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Tag.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A tag for a pet + * @param id + * @param name + */ +data class Tag( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/User.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/User.kt new file mode 100644 index 000000000000..3824ce08a5b2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/User.kt @@ -0,0 +1,60 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import jakarta.validation.Valid +import io.swagger.v3.oas.annotations.media.Schema + +/** + * A User who is purchasing from the pet store + * @param id + * @param username + * @param firstName + * @param lastName + * @param email + * @param password + * @param phone + * @param userStatus User Status + */ +data class User( + + @Schema(example = "null", description = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("username") val username: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("firstName") val firstName: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("lastName") val lastName: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("email") val email: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("password") val password: kotlin.String? = null, + + @Schema(example = "null", description = "") + @get:JsonProperty("phone") val phone: kotlin.String? = null, + + @Schema(example = "null", description = "User Status") + @get:JsonProperty("userStatus") val userStatus: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/application.yaml b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/application.yaml new file mode 100644 index 000000000000..8e2ebcde976d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/application.yaml @@ -0,0 +1,10 @@ +spring: + application: + name: openAPIPetstore + + jackson: + serialization: + WRITE_DATES_AS_TIMESTAMPS: false + +server: + port: 8080 diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/openapi.yaml b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/openapi.yaml new file mode 100644 index 000000000000..e06418a039f3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/openapi.yaml @@ -0,0 +1,1060 @@ +openapi: 3.0.1 +info: + description: "This is a sample server Petstore server. For this sample, you can\ + \ use the api key `special-key` to test the authorization filters." + license: + name: Apache-2.0 + url: http://www.apache.org/licenses/LICENSE-2.0.html + title: OpenAPI Petstore + version: 1.0.0 +servers: +- url: http://petstore.swagger.io/v2 +tags: +- description: Everything about your Pets + name: pet +- description: Access to Petstore orders + name: store +- description: Operations about user + name: user +paths: + /pet: + post: + operationId: addPet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + description: Pet object that needs to be added to the store + required: true + responses: + "405": + content: {} + description: Invalid input + security: + - petstore_auth: + - write:pets + - read:pets + summary: Add a new pet to the store + tags: + - pet tag + x-codegen-request-body-name: body + put: + operationId: updatePet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + description: Pet object that needs to be added to the store + required: true + responses: + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Pet not found + "405": + content: {} + description: Validation exception + security: + - petstore_auth: + - write:pets + - read:pets + summary: Update an existing pet + tags: + - pet tag + x-codegen-request-body-name: body + /pet/findByStatus: + get: + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - description: Status values that need to be considered for filter + explode: false + in: query + name: status + required: true + schema: + items: + default: available + enum: + - available + - pending + - sold + type: string + type: array + style: form + responses: + "200": + content: + application/xml: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + application/json: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + description: successful operation + "400": + content: {} + description: Invalid status value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Finds Pets by status + tags: + - pet tag + x-spring-paginated: true + /pet/findByTags: + get: + deprecated: true + description: "Multiple tags can be provided with comma separated strings. Use\ + \ tag1, tag2, tag3 for testing." + operationId: findPetsByTags + parameters: + - description: Tags to filter by + explode: false + in: query + name: tags + required: true + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/xml: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + application/json: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + description: successful operation + "400": + content: {} + description: Invalid tag value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Finds Pets by tags + tags: + - pet tag + x-spring-paginated: true + /pet/{petId}: + delete: + operationId: deletePet + parameters: + - explode: false + in: header + name: api_key + required: false + schema: + type: string + style: simple + - description: Pet id to delete + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "400": + content: {} + description: Invalid pet value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Deletes a pet + tags: + - pet tag + get: + description: Returns a single pet + operationId: getPetById + parameters: + - description: ID of pet to return + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Pet" + application/json: + schema: + $ref: "#/components/schemas/Pet" + description: successful operation + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Pet not found + security: + - api_key: [] + summary: Find pet by ID + tags: + - pet tag + post: + operationId: updatePetWithForm + parameters: + - description: ID of pet that needs to be updated + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/updatePetWithForm_request" + responses: + "405": + content: {} + description: Invalid input + security: + - petstore_auth: + - write:pets + - read:pets + summary: Updates a pet in the store with form data + tags: + - pet tag + /pet/{petId}/uploadImage: + post: + operationId: uploadFile + parameters: + - description: ID of pet to update + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/uploadFile_request" + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: uploads an image + tags: + - pet tag + /pet/{petId}/uploadMultipleImage: + post: + operationId: uploadMultipleFile + parameters: + - description: ID of pet to update + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/uploadMultipleFile_request" + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: uploads multiple images + tags: + - pet tag + /pet/{petId}/getImage: + get: + operationId: getImage + parameters: + - description: ID of pet to get image + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "200": + content: + application/octet-stream: + schema: + format: binary + type: string + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: Get an image + tags: + - pet tag + /store/inventory: + get: + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + "200": + content: + application/json: + schema: + additionalProperties: + format: int32 + type: integer + type: object + description: successful operation + security: + - api_key: [] + summary: Returns pet inventories by status + tags: + - store tag + /store/order: + post: + operationId: placeOrder + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/Order" + description: order placed for purchasing the pet + required: true + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Order" + application/json: + schema: + $ref: "#/components/schemas/Order" + description: successful operation + "400": + content: {} + description: Invalid Order + summary: Place an order for a pet + tags: + - store tag + x-codegen-request-body-name: body + /store/order/{orderId}: + delete: + description: For valid response try integer IDs with value < 1000. Anything + above 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - description: ID of the order that needs to be deleted + explode: false + in: path + name: orderId + required: true + schema: + type: string + style: simple + responses: + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Order not found + summary: Delete purchase order by ID + tags: + - store tag + get: + description: For valid response try integer IDs with value <= 5 or > 10. Other + values will generate exceptions + operationId: getOrderById + parameters: + - description: ID of pet that needs to be fetched + explode: false + in: path + name: orderId + required: true + schema: + format: int64 + maximum: 5 + minimum: 1 + type: integer + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Order" + application/json: + schema: + $ref: "#/components/schemas/Order" + description: successful operation + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Order not found + summary: Find purchase order by ID + tags: + - store tag + /user: + post: + description: This can only be done by the logged in user. + operationId: createUser + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/User" + description: Created user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Create user + tags: + - user tag + x-codegen-request-body-name: body + /user/createWithArray: + post: + operationId: createUsersWithArrayInput + requestBody: + content: + '*/*': + schema: + items: + $ref: "#/components/schemas/User" + type: array + description: List of user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Creates list of users with given input array + tags: + - user tag + x-codegen-request-body-name: body + /user/createWithList: + post: + operationId: createUsersWithListInput + requestBody: + content: + '*/*': + schema: + items: + $ref: "#/components/schemas/User" + type: array + description: List of user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Creates list of users with given input array + tags: + - user tag + x-codegen-request-body-name: body + /user/login: + get: + operationId: loginUser + parameters: + - description: The user name for login + explode: true + in: query + name: username + required: true + schema: + type: string + style: form + - description: The password for login in clear text + explode: true + in: query + name: password + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/xml: + schema: + type: string + application/json: + schema: + type: string + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + explode: false + schema: + format: int32 + type: integer + style: simple + X-Expires-After: + description: date in UTC when token expires + explode: false + schema: + format: date-time + type: string + style: simple + "400": + content: {} + description: Invalid username/password supplied + summary: Logs user into the system + tags: + - user tag + /user/logout: + get: + operationId: logoutUser + responses: + default: + content: {} + description: successful operation + summary: Logs out current logged in user session + tags: + - user tag + options: + operationId: logoutUserOptions + responses: + default: + content: {} + description: endpoint configuration response + summary: logoutUserOptions + tags: + - user tag + /user/{username}: + delete: + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - description: The name that needs to be deleted + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + responses: + "400": + content: {} + description: Invalid username supplied + "404": + content: {} + description: User not found + summary: Delete user + tags: + - user tag + get: + operationId: getUserByName + parameters: + - description: The name that needs to be fetched. Use user1 for testing. + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/User" + application/json: + schema: + $ref: "#/components/schemas/User" + description: successful operation + "400": + content: {} + description: Invalid username supplied + "404": + content: {} + description: User not found + summary: Get user by user name + tags: + - user tag + put: + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - description: name that need to be deleted + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/User" + description: Updated user object + required: true + responses: + "400": + content: {} + description: Invalid user supplied + "404": + content: {} + description: User not found + summary: Updated user + tags: + - user tag + x-codegen-request-body-name: body + /items/{item$Id}/something/{item$SubId}: + get: + description: SQ = "; SBS = \; DBS = \\; SD = $some + parameters: + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: path + name: item$Id + required: true + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: path + name: item$SubId + required: true + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: query + name: filter$Type + required: false + schema: + default: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: query + name: filter$SubType + required: false + schema: + default: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Custom_Header + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Custom_Header_two + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: cookie + name: session$Token + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: cookie + name: session$TokenTwo + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/_items__item_Id__something__item_SubId__get_200_response" + description: SQ = "; SBS = \; DBS = \\; SD = $some + summary: SQ = "; SBS = \; DBS = \\; SD = $some + /items: + post: + description: SQ = "; SBS = \; DBS = \\; SD = $some + parameters: + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Post_Header + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/_items_post_request" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" + description: SQ = "; SBS = \; DBS = \\; SD = $some + summary: SQ = "; SBS = \; DBS = \\; SD = $some +components: + schemas: + Order: + description: An order for a pets from the pet store + example: + petId: 6 + quantity: 1 + id: 0 + shipDate: 2000-01-23T04:56:07.000+00:00 + complete: false + status: placed + properties: + id: + format: int64 + type: integer + petId: + format: int64 + type: integer + quantity: + format: int32 + type: integer + shipDate: + format: date-time + type: string + status: + description: Order Status + enum: + - placed + - approved + - delivered + type: string + complete: + default: false + type: boolean + title: Pet Order + type: object + xml: + name: Order + Category: + description: A category for a pet + example: + name: name + id: 6 + properties: + id: + format: int64 + type: integer + name: + type: string + title: Pet category + type: object + xml: + name: Category + User: + description: A User who is purchasing from the pet store + example: + firstName: firstName + lastName: lastName + password: password + userStatus: 6 + phone: phone + id: 0 + email: email + username: username + properties: + id: + format: int64 + type: integer + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + description: User Status + format: int32 + type: integer + title: a User + type: object + xml: + name: User + Tag: + description: A tag for a pet + example: + name: name + id: 1 + properties: + id: + format: int64 + type: integer + name: + type: string + title: Pet Tag + type: object + xml: + name: Tag + Pet: + description: A pet for sale in the pet store + example: + photoUrls: + - photoUrls + - photoUrls + name: doggie + id: 0 + category: + name: name + id: 6 + tags: + - name: name + id: 1 + - name: name + id: 1 + status: available + properties: + id: + format: int64 + type: integer + category: + $ref: "#/components/schemas/Category" + name: + example: doggie + type: string + photoUrls: + items: + type: string + type: array + xml: + name: photoUrl + wrapped: true + tags: + items: + $ref: "#/components/schemas/Tag" + type: array + xml: + name: tag + wrapped: true + status: + description: pet status in the store + enum: + - available + - pending + - sold + type: string + required: + - name + - photoUrls + title: a Pet + type: object + xml: + name: Pet + ApiResponse: + description: Describes the result of uploading an image resource + example: + code: 0 + type: type + message: message + properties: + code: + format: int32 + type: integer + type: + type: string + message: + type: string + title: An uploaded response + type: object + ItemWithDollarAttributesAndExamples: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: + $name: SQ = "; SBS = \; DBS = \\; SD = $some + $id: SQ = "; SBS = \; DBS = \\; SD = $some + properties: + $id: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + $name: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + type: object + updatePetWithForm_request: + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + uploadFile_request: + properties: + additionalMetadata: + description: Additional data to pass to server + type: string + image: + description: image to upload + format: binary + type: string + required: + - image + uploadMultipleFile_request: + properties: + additionalMetadata: + description: Additional data to pass to server + type: string + images: + items: + description: image to upload + format: binary + type: string + type: array + required: + - images + _items__item_Id__something__item_SubId__get_200_response_details_Info: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: + detail$One: SQ = "; SBS = \; DBS = \\; SD = $some + detail$Two: 42 + properties: + detail$One: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + detail$Two: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: 42 + type: integer + type: object + _items__item_Id__something__item_SubId__get_200_response: + example: + name$Value: SQ = "; SBS = \; DBS = \\; SD = $some + details$Info: + detail$One: SQ = "; SBS = \; DBS = \\; SD = $some + detail$Two: 42 + item$Id: SQ = "; SBS = \; DBS = \\; SD = $some + properties: + item$Id: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + name$Value: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + details$Info: + $ref: "#/components/schemas/_items__item_Id__something__item_SubId__get_200_response_details_Info" + type: object + _items_post_request: + properties: + form$Name: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + form$Value: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + type: object + securitySchemes: + petstore_auth: + flows: + implicit: + authorizationUrl: http://petstore.swagger.io/api/oauth/dialog + scopes: + write:pets: modify pets in your account + read:pets: read your pets + type: oauth2 + api_key: + in: header + name: api_key + type: apiKey diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt new file mode 100644 index 000000000000..b9dd52637709 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt @@ -0,0 +1,51 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class ItemsApiTest { + + private val service: ItemsApiService = ItemsApiServiceImpl() + private val api: ItemsApiController = ItemsApiController(service) + + /** + * To test ItemsApiController.itemsItemIdSomethingItemSubIdGet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsItemIdSomethingItemSubIdGetTest() { + val itemDollarId: kotlin.String = TODO() + val itemDollarSubId: kotlin.String = TODO() + val filterDollarType: kotlin.String = TODO() + val filterDollarSubType: kotlin.String = TODO() + val xCustomHeader: kotlin.String? = TODO() + val xCustomHeaderTwo: kotlin.String? = TODO() + val sessionDollarToken: kotlin.String? = TODO() + val sessionDollarTokenTwo: kotlin.String? = TODO() + + val response: ResponseEntity = api.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo) + + // TODO: test validations + } + + /** + * To test ItemsApiController.itemsPost + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsPostTest() { + val xPostHeader: kotlin.String? = TODO() + val formDollarName: kotlin.String? = TODO() + val formDollarValue: kotlin.String = TODO() + + val response: ResponseEntity = api.itemsPost(xPostHeader, formDollarName, formDollarValue) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/PetApiTest.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/PetApiTest.kt new file mode 100644 index 000000000000..2e469407743c --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/PetApiTest.kt @@ -0,0 +1,169 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class PetApiTest { + + private val service: PetApiService = PetApiServiceImpl() + private val api: PetApiController = PetApiController(service) + + /** + * To test PetApiController.addPet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun addPetTest() { + val body: Pet = TODO() + + val response: ResponseEntity = api.addPet(body) + + // TODO: test validations + } + + /** + * To test PetApiController.deletePet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deletePetTest() { + val petId: kotlin.Long = TODO() + val apiKey: kotlin.String? = TODO() + + val response: ResponseEntity = api.deletePet(petId, apiKey) + + // TODO: test validations + } + + /** + * To test PetApiController.findPetsByStatus + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun findPetsByStatusTest() { + val status: kotlin.collections.List = TODO() + + val response: ResponseEntity> = api.findPetsByStatus(status) + + // TODO: test validations + } + + /** + * To test PetApiController.findPetsByTags + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun findPetsByTagsTest() { + val tags: kotlin.collections.List = TODO() + + val response: ResponseEntity> = api.findPetsByTags(tags) + + // TODO: test validations + } + + /** + * To test PetApiController.getImage + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getImageTest() { + val petId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getImage(petId) + + // TODO: test validations + } + + /** + * To test PetApiController.getPetById + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getPetByIdTest() { + val petId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getPetById(petId) + + // TODO: test validations + } + + /** + * To test PetApiController.updatePet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updatePetTest() { + val body: Pet = TODO() + + val response: ResponseEntity = api.updatePet(body) + + // TODO: test validations + } + + /** + * To test PetApiController.updatePetWithForm + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updatePetWithFormTest() { + val petId: kotlin.Long = TODO() + val name: kotlin.String? = TODO() + val status: kotlin.String? = TODO() + + val response: ResponseEntity = api.updatePetWithForm(petId, name, status) + + // TODO: test validations + } + + /** + * To test PetApiController.uploadFile + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun uploadFileTest() { + val petId: kotlin.Long = TODO() + val image: org.springframework.web.multipart.MultipartFile = TODO() + val additionalMetadata: kotlin.String? = TODO() + + val response: ResponseEntity = api.uploadFile(petId, image, additionalMetadata) + + // TODO: test validations + } + + /** + * To test PetApiController.uploadMultipleFile + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun uploadMultipleFileTest() { + val petId: kotlin.Long = TODO() + val images: Array = TODO() + val additionalMetadata: kotlin.String? = TODO() + + val response: ResponseEntity = api.uploadMultipleFile(petId, images, additionalMetadata) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/StoreApiTest.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/StoreApiTest.kt new file mode 100644 index 000000000000..b67568e31dab --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/StoreApiTest.kt @@ -0,0 +1,70 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class StoreApiTest { + + private val service: StoreApiService = StoreApiServiceImpl() + private val api: StoreApiController = StoreApiController(service) + + /** + * To test StoreApiController.deleteOrder + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deleteOrderTest() { + val orderId: kotlin.String = TODO() + + val response: ResponseEntity = api.deleteOrder(orderId) + + // TODO: test validations + } + + /** + * To test StoreApiController.getInventory + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getInventoryTest() { + + val response: ResponseEntity> = api.getInventory() + + // TODO: test validations + } + + /** + * To test StoreApiController.getOrderById + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getOrderByIdTest() { + val orderId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getOrderById(orderId) + + // TODO: test validations + } + + /** + * To test StoreApiController.placeOrder + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun placeOrderTest() { + val body: Order = TODO() + + val response: ResponseEntity = api.placeOrder(body) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/UserApiTest.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/UserApiTest.kt new file mode 100644 index 000000000000..d7f7e9523f5f --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/UserApiTest.kt @@ -0,0 +1,146 @@ +package org.openapitools.api + +import org.openapitools.model.User +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class UserApiTest { + + private val service: UserApiService = UserApiServiceImpl() + private val api: UserApiController = UserApiController(service) + + /** + * To test UserApiController.createUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUserTest() { + val body: User = TODO() + + val response: ResponseEntity = api.createUser(body) + + // TODO: test validations + } + + /** + * To test UserApiController.createUsersWithArrayInput + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUsersWithArrayInputTest() { + val body: kotlin.collections.List = TODO() + + val response: ResponseEntity = api.createUsersWithArrayInput(body) + + // TODO: test validations + } + + /** + * To test UserApiController.createUsersWithListInput + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUsersWithListInputTest() { + val body: kotlin.collections.List = TODO() + + val response: ResponseEntity = api.createUsersWithListInput(body) + + // TODO: test validations + } + + /** + * To test UserApiController.deleteUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deleteUserTest() { + val username: kotlin.String = TODO() + + val response: ResponseEntity = api.deleteUser(username) + + // TODO: test validations + } + + /** + * To test UserApiController.getUserByName + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getUserByNameTest() { + val username: kotlin.String = TODO() + + val response: ResponseEntity = api.getUserByName(username) + + // TODO: test validations + } + + /** + * To test UserApiController.loginUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun loginUserTest() { + val username: kotlin.String = TODO() + val password: kotlin.String = TODO() + + val response: ResponseEntity = api.loginUser(username, password) + + // TODO: test validations + } + + /** + * To test UserApiController.logoutUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun logoutUserTest() { + + val response: ResponseEntity = api.logoutUser() + + // TODO: test validations + } + + /** + * To test UserApiController.logoutUserOptions + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun logoutUserOptionsTest() { + + val response: ResponseEntity = api.logoutUserOptions() + + // TODO: test validations + } + + /** + * To test UserApiController.updateUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updateUserTest() { + val username: kotlin.String = TODO() + val body: User = TODO() + + val response: ResponseEntity = api.updateUser(username, body) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-3-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-3-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 474b51456b27..b532e9076953 100644 --- a/samples/server/petstore/kotlin-springboot-3-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-3-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-3/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-3/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 474b51456b27..b532e9076953 100644 --- a/samples/server/petstore/kotlin-springboot-3/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-3/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-additionalproperties/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-additionalproperties/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 474b51456b27..b532e9076953 100644 --- a/samples/server/petstore/kotlin-springboot-additionalproperties/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-additionalproperties/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator-ignore b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator-ignore new file mode 100644 index 000000000000..7484ee590a38 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/FILES new file mode 100644 index 000000000000..321c9fba3a7b --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/FILES @@ -0,0 +1,36 @@ +README.md +build.gradle.kts +gradle/wrapper/gradle-wrapper.jar +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat +pom.xml +settings.gradle +src/main/kotlin/org/openapitools/Application.kt +src/main/kotlin/org/openapitools/HomeController.kt +src/main/kotlin/org/openapitools/SpringFoxConfiguration.kt +src/main/kotlin/org/openapitools/api/ApiUtil.kt +src/main/kotlin/org/openapitools/api/Exceptions.kt +src/main/kotlin/org/openapitools/api/ItemsApiController.kt +src/main/kotlin/org/openapitools/api/ItemsApiService.kt +src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/PetApiController.kt +src/main/kotlin/org/openapitools/api/PetApiService.kt +src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/StoreApiController.kt +src/main/kotlin/org/openapitools/api/StoreApiService.kt +src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt +src/main/kotlin/org/openapitools/api/UserApiController.kt +src/main/kotlin/org/openapitools/api/UserApiService.kt +src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt +src/main/kotlin/org/openapitools/model/Category.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt +src/main/kotlin/org/openapitools/model/ModelApiResponse.kt +src/main/kotlin/org/openapitools/model/Order.kt +src/main/kotlin/org/openapitools/model/Pet.kt +src/main/kotlin/org/openapitools/model/Tag.kt +src/main/kotlin/org/openapitools/model/User.kt +src/main/resources/application.yaml +src/main/resources/openapi.yaml diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/VERSION b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/VERSION new file mode 100644 index 000000000000..2fb556b60635 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.18.0-SNAPSHOT diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/README.md b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/README.md new file mode 100644 index 000000000000..b6865a081135 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/README.md @@ -0,0 +1,21 @@ +# openAPIPetstore + +This Kotlin based [Spring Boot](https://spring.io/projects/spring-boot) application has been generated using the [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator). + +## Getting Started + +This document assumes you have either maven or gradle available, either via the wrapper or otherwise. This does not come with a gradle / maven wrapper checked in. + +By default a [`pom.xml`](pom.xml) file will be generated. If you specified `gradleBuildFile=true` when generating this project, a `build.gradle.kts` will also be generated. Note this uses [Gradle Kotlin DSL](https://github.com/gradle/kotlin-dsl). + +To build the project using maven, run: +```bash +mvn package && java -jar target/openapi-spring-1.0.0.jar +``` + +To build the project using gradle, run: +```bash +gradle build && java -jar build/libs/openapi-spring-1.0.0.jar +``` + +If all builds successfully, the server should run on [http://localhost:8080/](http://localhost:8080/) diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/build.gradle.kts b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/build.gradle.kts new file mode 100644 index 000000000000..0d536331c529 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/build.gradle.kts @@ -0,0 +1,49 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:2.6.7") + } +} + +group = "org.openapitools" +version = "1.0.0" + +repositories { + mavenCentral() +} + +tasks.withType { + kotlinOptions.jvmTarget = "11" +} + +plugins { + val kotlinVersion = "1.9.25" + id("org.jetbrains.kotlin.jvm") version kotlinVersion + id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion + id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion + id("org.springframework.boot") version "2.6.7" + id("io.spring.dependency-management") version "1.0.11.RELEASE" +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("io.springfox:springfox-swagger2:2.9.2") + + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") + implementation("javax.validation:validation-api") + implementation("javax.annotation:javax.annotation-api:1.3.2") + testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") + testImplementation("org.springframework.boot:spring-boot-starter-test") { + exclude(module = "junit") + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.jar b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000000..e6441136f3d4 Binary files /dev/null and b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.jar differ diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.properties b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000000..80187ac30432 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew new file mode 100644 index 000000000000..9d0ce634cb11 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while +APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path +[ -h "$app_path" ] +do +ls=$( ls -ld "$app_path" ) +link=${ls#*' -> '} +case $link in #( +/*) app_path=$link ;; #( +*) app_path=$APP_HOME$link ;; +esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { +echo "$*" +} >&2 + +die () { +echo +echo "$*" +echo +exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( +CYGWIN* ) cygwin=true ;; #( +Darwin* ) darwin=true ;; #( +MSYS* | MINGW* ) msys=true ;; #( +NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then +if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +# IBM's JDK on AIX uses strange locations for the executables +JAVACMD=$JAVA_HOME/jre/sh/java +else +JAVACMD=$JAVA_HOME/bin/java +fi +if [ ! -x "$JAVACMD" ] ; then +die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +else +JAVACMD=java +if ! command -v java >/dev/null 2>&1 +then +die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then +case $MAX_FD in #( +max*) +# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +MAX_FD=$( ulimit -H -n ) || +warn "Could not query maximum file descriptor limit" +esac +case $MAX_FD in #( +'' | soft) :;; #( +*) +# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. +# shellcheck disable=SC2039,SC3045 +ulimit -n "$MAX_FD" || +warn "Could not set maximum file descriptor limit to $MAX_FD" +esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then +APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) +CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + +JAVACMD=$( cygpath --unix "$JAVACMD" ) + +# Now convert the arguments - kludge to limit ourselves to /bin/sh +for arg do +if +case $arg in #( +-*) false ;; # don't mess with options #( +/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath +[ -e "$t" ] ;; #( +*) false ;; +esac +then +arg=$( cygpath --path --ignore --mixed "$arg" ) +fi +# Roll the args list around exactly as many times as the number of +# args, so each arg winds up back in the position where it started, but +# possibly modified. +# +# NB: a `for` loop captures its iteration list before it begins, so +# changing the positional parameters here affects neither the number of +# iterations, nor the values presented in `arg`. +shift # remove old arg +set -- "$@" "$arg" # push replacement arg +done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ +"-Dorg.gradle.appname=$APP_BASE_NAME" \ +-classpath "$CLASSPATH" \ +org.gradle.wrapper.GradleWrapperMain \ +"$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then +die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( +printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | +xargs -n1 | +sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | +tr '\n' ' ' +)" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew.bat b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew.bat new file mode 100644 index 000000000000..25da30dbdeee --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/pom.xml b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/pom.xml new file mode 100644 index 000000000000..3fa348144d65 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/pom.xml @@ -0,0 +1,138 @@ + + 4.0.0 + org.openapitools + openapi-spring + jar + openapi-spring + 1.0.0 + + 2.9.2 + 3.0.2 + 1.3.2 + 1.6.21 + + 1.6.21 + UTF-8 + + + org.springframework.boot + spring-boot-starter-parent + 2.7.15 + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/test/kotlin + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + spring + + 11 + + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.jetbrains.kotlin + kotlin-maven-allopen + ${kotlin.version} + + + + + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-reflect + ${kotlin.version} + + + org.springframework.boot + spring-boot-starter-web + + + + + + io.springfox + springfox-swagger2 + ${springfox-swagger2.version} + + + + + com.google.code.findbugs + jsr305 + ${findbugs-jsr305.version} + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.fasterxml.jackson.module + jackson-module-kotlin + + + + javax.validation + validation-api + + + javax.annotation + javax.annotation-api + ${javax-annotation.version} + provided + + + org.jetbrains.kotlin + kotlin-test-junit5 + ${kotlin-test-junit5.version} + test + + + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/settings.gradle b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/settings.gradle new file mode 100644 index 000000000000..14844905cd40 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/settings.gradle @@ -0,0 +1,15 @@ +pluginManagement { + repositories { + maven { url = uri("https://repo.spring.io/snapshot") } + maven { url = uri("https://repo.spring.io/milestone") } + gradlePluginPortal() + } + resolutionStrategy { + eachPlugin { + if (requested.id.id == "org.springframework.boot") { + useModule("org.springframework.boot:spring-boot-gradle-plugin:${requested.version}") + } + } + } +} +rootProject.name = "openapi-spring" diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/Application.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/Application.kt new file mode 100644 index 000000000000..2fe6de62479e --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/Application.kt @@ -0,0 +1,13 @@ +package org.openapitools + +import org.springframework.boot.runApplication +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.context.annotation.ComponentScan + +@SpringBootApplication +@ComponentScan(basePackages = ["org.openapitools", "org.openapitools.api", "org.openapitools.model"]) +class Application + +fun main(args: Array) { + runApplication(*args) +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/HomeController.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/HomeController.kt new file mode 100644 index 000000000000..310e7f4d62e3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/HomeController.kt @@ -0,0 +1,12 @@ +package org.openapitools + +import org.springframework.context.annotation.Bean +import org.springframework.stereotype.Controller +import org.springframework.web.bind.annotation.RequestMapping + +/** + * Home redirection to OpenAPI api documentation + */ +@Controller +class HomeController { +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/SpringFoxConfiguration.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/SpringFoxConfiguration.kt new file mode 100644 index 000000000000..a2628c31c8d7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/SpringFoxConfiguration.kt @@ -0,0 +1,64 @@ +package org.openapitools + +import org.springframework.beans.factory.annotation.Value +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.web.util.UriComponentsBuilder +import springfox.documentation.builders.ApiInfoBuilder +import springfox.documentation.builders.RequestHandlerSelectors +import springfox.documentation.service.ApiInfo +import springfox.documentation.service.Contact +import springfox.documentation.spi.DocumentationType +import springfox.documentation.spring.web.paths.Paths +import springfox.documentation.spring.web.paths.RelativePathProvider +import springfox.documentation.spring.web.plugins.Docket +import springfox.documentation.swagger2.annotations.EnableSwagger2 +import javax.servlet.ServletContext + + +@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT") +@Configuration +@EnableSwagger2 +class SpringFoxConfiguration { + + fun apiInfo(): ApiInfo { + return ApiInfoBuilder() + .title("OpenAPI Petstore") + .description("This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.") + .license("Apache-2.0") + .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") + .termsOfServiceUrl("") + .version("1.0.0") + .contact(Contact("", "", "")) + .build() + } + + @Bean + fun customImplementation(servletContext: ServletContext, @Value("\${openapi.openAPIPetstore.base-path:\${api.base-path:/v2}}") basePath: String): Docket { + return Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.basePackage("org.openapitools.api")) + .build() + .pathProvider(BasePathAwareRelativePathProvider(servletContext, basePath)) + .directModelSubstitute(java.time.LocalDate::class.java, java.sql.Date::class.java) + .directModelSubstitute(java.time.OffsetDateTime::class.java, java.util.Date::class.java) + .apiInfo(apiInfo()) + } + + class BasePathAwareRelativePathProvider(servletContext: ServletContext, private val basePath: String) : + RelativePathProvider(servletContext) { + + override fun applicationPath(): String { + return Paths.removeAdjacentForwardSlashes( + UriComponentsBuilder.fromPath(super.applicationPath()).path(basePath).build().toString() + ) + } + + override fun getOperationPath(operationPath: String): String { + val uriComponentsBuilder = UriComponentsBuilder.fromPath("/") + return Paths.removeAdjacentForwardSlashes( + uriComponentsBuilder.path(operationPath.replaceFirst("^$basePath", "")).build().toString() + ) + } + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ApiUtil.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ApiUtil.kt new file mode 100644 index 000000000000..88e892d0f49a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ApiUtil.kt @@ -0,0 +1,19 @@ +package org.openapitools.api + +import org.springframework.web.context.request.NativeWebRequest + +import javax.servlet.http.HttpServletResponse +import java.io.IOException + +object ApiUtil { + fun setExampleResponse(req: NativeWebRequest, contentType: String, example: String) { + try { + val res = req.getNativeResponse(HttpServletResponse::class.java) + res?.characterEncoding = "UTF-8" + res?.addHeader("Content-Type", contentType) + res?.writer?.print(example) + } catch (e: IOException) { + throw RuntimeException(e) + } + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/Exceptions.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/Exceptions.kt new file mode 100644 index 000000000000..901db1237ee7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/Exceptions.kt @@ -0,0 +1,30 @@ +package org.openapitools.api + +import org.springframework.context.annotation.Configuration +import org.springframework.http.HttpStatus +import org.springframework.web.bind.annotation.ControllerAdvice +import org.springframework.web.bind.annotation.ExceptionHandler +import javax.servlet.http.HttpServletResponse +import javax.validation.ConstraintViolationException + +// TODO Extend ApiException for custom exception handling, e.g. the below NotFound exception +sealed class ApiException(msg: String, val code: Int) : Exception(msg) + +class NotFoundException(msg: String, code: Int = HttpStatus.NOT_FOUND.value()) : ApiException(msg, code) + +@Configuration("org.openapitools.api.DefaultExceptionHandler") +@ControllerAdvice +class DefaultExceptionHandler { + + @ExceptionHandler(value = [ApiException::class]) + fun onApiException(ex: ApiException, response: HttpServletResponse): Unit = + response.sendError(ex.code, ex.message) + + @ExceptionHandler(value = [NotImplementedError::class]) + fun onNotImplemented(ex: NotImplementedError, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.NOT_IMPLEMENTED.value()) + + @ExceptionHandler(value = [ConstraintViolationException::class]) + fun onConstraintViolation(ex: ConstraintViolationException, response: HttpServletResponse): Unit = + response.sendError(HttpStatus.BAD_REQUEST.value(), ex.constraintViolations.joinToString(", ") { it.message }) +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiController.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiController.kt new file mode 100644 index 000000000000..d1a61211e519 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,96 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import javax.validation.Valid +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "items", description = "The items API") +class ItemsApiController(@Autowired(required = true) val service: ItemsApiService) { + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsItemIdSomethingItemSubIdGet", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemsItemIdSomethingItemSubIdGet200Response::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item$Id}/something/{item$SubId}" */], + produces = ["application/json"] + ) + fun itemsItemIdSomethingItemSubIdGet( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsPost", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemWithDollarAttributesAndExamples::class + ) + @ApiResponses( + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ITEMS_POST /* "/items" */], + produces = ["application/json"], + consumes = ["application/x-www-form-urlencoded"] + ) + fun itemsPost( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.itemsPost(xPostHeader, formDollarName, formDollarValue), HttpStatus.valueOf(201)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiService.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiService.kt new file mode 100644 index 000000000000..918cb1610b33 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiService.kt @@ -0,0 +1,36 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response + +interface ItemsApiService { + + /** + * GET /items/{item$Id}/something/{item$SubId} : SQ = "; SBS = \; DBS = \\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some (required) + * @param itemDollarSubId SQ = "; SBS = \; DBS = \\; SD = $some (required) + * @param filterDollarType SQ = "; SBS = \; DBS = \\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @param filterDollarSubType SQ = "; SBS = \; DBS = \\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @param xCustomHeader SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param xCustomHeaderTwo SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param sessionDollarToken SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param sessionDollarTokenTwo SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @return SQ = "; SBS = \; DBS = \\; SD = $some (status code 200) + * @see ItemsApi#itemsItemIdSomethingItemSubIdGet + */ + fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String, filterDollarSubType: kotlin.String, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?, sessionDollarToken: kotlin.String?, sessionDollarTokenTwo: kotlin.String?): ItemsItemIdSomethingItemSubIdGet200Response + + /** + * POST /items : SQ = "; SBS = \; DBS = \\; SD = $some + * SQ = "; SBS = \; DBS = \\; SD = $some + * + * @param xPostHeader SQ = "; SBS = \; DBS = \\; SD = $some (optional) + * @param formDollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional) + * @param formDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some (optional, default to "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + * @return SQ = "; SBS = \; DBS = \\; SD = $some (status code 201) + * @see ItemsApi#itemsPost + */ + fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String): ItemWithDollarAttributesAndExamples +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt new file mode 100644 index 000000000000..5753996f7855 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt @@ -0,0 +1,16 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import org.springframework.stereotype.Service +@Service +class ItemsApiServiceImpl : ItemsApiService { + + override fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, itemDollarSubId: kotlin.String, filterDollarType: kotlin.String, filterDollarSubType: kotlin.String, xCustomHeader: kotlin.String?, xCustomHeaderTwo: kotlin.String?, sessionDollarToken: kotlin.String?, sessionDollarTokenTwo: kotlin.String?): ItemsItemIdSomethingItemSubIdGet200Response { + TODO("Implement me") + } + + override fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, formDollarValue: kotlin.String): ItemWithDollarAttributesAndExamples { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt new file mode 100644 index 000000000000..acce2c6aef97 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -0,0 +1,278 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import javax.validation.Valid +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "pet", description = "The pet API") +class PetApiController(@Autowired(required = true) val service: PetApiService) { + + + @ApiOperation( + value = "Add a new pet to the store", + nickname = "addPet", + notes = "", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 405, message = "Invalid input")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ADD_PET /* "/pet" */], + consumes = ["application/json", "application/xml"] + ) + fun addPet( + @ApiParam(value = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody body: Pet + ): ResponseEntity { + return ResponseEntity(service.addPet(body), HttpStatus.valueOf(405)) + } + + + @ApiOperation( + value = "Deletes a pet", + nickname = "deletePet", + notes = "", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 400, message = "Invalid pet value")] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_PET /* "/pet/{petId}" */] + ) + fun deletePet( + @ApiParam(value = "Pet id to delete", required = true) @PathVariable("petId") petId: kotlin.Long, + @ApiParam(value = "") @RequestHeader(value = "api_key", required = false) apiKey: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.deletePet(petId, apiKey), HttpStatus.valueOf(400)) + } + + + @ApiOperation( + value = "Finds Pets by status", + nickname = "findPetsByStatus", + notes = "Multiple status values can be provided with comma separated strings", + response = Pet::class, + responseContainer = "List", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_STATUS /* "/pet/findByStatus" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByStatus( + @NotNull @ApiParam(value = "Status values that need to be considered for filter", required = true, allowableValues = "available, pending, sold") @Valid @RequestParam(value = "status", required = true) status: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(service.findPetsByStatus(status), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Finds Pets by tags", + nickname = "findPetsByTags", + notes = "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", + response = Pet::class, + responseContainer = "List", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_FIND_PETS_BY_TAGS /* "/pet/findByTags" */], + produces = ["application/xml", "application/json"] + ) + fun findPetsByTags( + @NotNull @ApiParam(value = "Tags to filter by", required = true) @Valid @RequestParam(value = "tags", required = true) tags: kotlin.collections.List + ): ResponseEntity> { + return ResponseEntity(service.findPetsByTags(tags), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Get an image", + nickname = "getImage", + notes = "", + response = org.springframework.core.io.Resource::class, + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = org.springframework.core.io.Resource::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_IMAGE /* "/pet/{petId}/getImage" */], + produces = ["application/octet-stream"] + ) + fun getImage( + @ApiParam(value = "ID of pet to get image", required = true) @PathVariable("petId") petId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getImage(petId), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Find pet by ID", + nickname = "getPetById", + notes = "Returns a single pet", + response = Pet::class, + authorizations = [Authorization(value = "api_key")] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_PET_BY_ID /* "/pet/{petId}" */], + produces = ["application/xml", "application/json"] + ) + fun getPetById( + @ApiParam(value = "ID of pet to return", required = true) @PathVariable("petId") petId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getPetById(petId), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Update an existing pet", + nickname = "updatePet", + notes = "", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_PET /* "/pet" */], + consumes = ["application/json", "application/xml"] + ) + fun updatePet( + @ApiParam(value = "Pet object that needs to be added to the store", required = true) @Valid @RequestBody body: Pet + ): ResponseEntity { + return ResponseEntity(service.updatePet(body), HttpStatus.valueOf(400)) + } + + + @ApiOperation( + value = "Updates a pet in the store with form data", + nickname = "updatePetWithForm", + notes = "", + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 405, message = "Invalid input")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPDATE_PET_WITH_FORM /* "/pet/{petId}" */], + consumes = ["application/x-www-form-urlencoded"] + ) + fun updatePetWithForm( + @ApiParam(value = "ID of pet that needs to be updated", required = true) @PathVariable("petId") petId: kotlin.Long, + @ApiParam(value = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) name: kotlin.String?, + @ApiParam(value = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) status: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.updatePetWithForm(petId, name, status), HttpStatus.valueOf(405)) + } + + + @ApiOperation( + value = "uploads an image", + nickname = "uploadFile", + notes = "", + response = ModelApiResponse::class, + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPLOAD_FILE /* "/pet/{petId}/uploadImage" */], + produces = ["application/json"], + consumes = ["multipart/form-data"] + ) + fun uploadFile( + @ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") petId: kotlin.Long, + @ApiParam(value = "file detail") @Valid @RequestPart("image", required = true) image: org.springframework.web.multipart.MultipartFile, + @ApiParam(value = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.uploadFile(petId, image, additionalMetadata), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "uploads multiple images", + nickname = "uploadMultipleFile", + notes = "", + response = ModelApiResponse::class, + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_UPLOAD_MULTIPLE_FILE /* "/pet/{petId}/uploadMultipleImage" */], + produces = ["application/json"], + consumes = ["multipart/form-data"] + ) + fun uploadMultipleFile( + @ApiParam(value = "ID of pet to update", required = true) @PathVariable("petId") petId: kotlin.Long, + @ApiParam(value = "file detail") @Valid @RequestPart("images", required = true) images: Array, + @ApiParam(value = "Additional data to pass to server") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String? + ): ResponseEntity { + return ResponseEntity(service.uploadMultipleFile(petId, images, additionalMetadata), HttpStatus.valueOf(200)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ADD_PET: String = "/pet" + const val PATH_DELETE_PET: String = "/pet/{petId}" + const val PATH_FIND_PETS_BY_STATUS: String = "/pet/findByStatus" + const val PATH_FIND_PETS_BY_TAGS: String = "/pet/findByTags" + const val PATH_GET_IMAGE: String = "/pet/{petId}/getImage" + const val PATH_GET_PET_BY_ID: String = "/pet/{petId}" + const val PATH_UPDATE_PET: String = "/pet" + const val PATH_UPDATE_PET_WITH_FORM: String = "/pet/{petId}" + const val PATH_UPLOAD_FILE: String = "/pet/{petId}/uploadImage" + const val PATH_UPLOAD_MULTIPLE_FILE: String = "/pet/{petId}/uploadMultipleImage" + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiService.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiService.kt new file mode 100644 index 000000000000..fe00af396a96 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiService.kt @@ -0,0 +1,114 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet + +interface PetApiService { + + /** + * POST /pet : Add a new pet to the store + * + * @param body Pet object that needs to be added to the store (required) + * @return Invalid input (status code 405) + * @see PetApi#addPet + */ + fun addPet(body: Pet): Unit + + /** + * DELETE /pet/{petId} : Deletes a pet + * + * @param petId Pet id to delete (required) + * @param apiKey (optional) + * @return Invalid pet value (status code 400) + * @see PetApi#deletePet + */ + fun deletePet(petId: kotlin.Long, apiKey: kotlin.String?): Unit + + /** + * GET /pet/findByStatus : Finds Pets by status + * Multiple status values can be provided with comma separated strings + * + * @param status Status values that need to be considered for filter (required) + * @return successful operation (status code 200) + * or Invalid status value (status code 400) + * @see PetApi#findPetsByStatus + */ + fun findPetsByStatus(status: kotlin.collections.List): List + + /** + * GET /pet/findByTags : Finds Pets by tags + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + * + * @param tags Tags to filter by (required) + * @return successful operation (status code 200) + * or Invalid tag value (status code 400) + * @deprecated + * @see PetApi#findPetsByTags + */ + fun findPetsByTags(tags: kotlin.collections.List): List + + /** + * GET /pet/{petId}/getImage : Get an image + * + * @param petId ID of pet to get image (required) + * @return successful operation (status code 200) + * @see PetApi#getImage + */ + fun getImage(petId: kotlin.Long): org.springframework.core.io.Resource + + /** + * GET /pet/{petId} : Find pet by ID + * Returns a single pet + * + * @param petId ID of pet to return (required) + * @return successful operation (status code 200) + * or Invalid ID supplied (status code 400) + * or Pet not found (status code 404) + * @see PetApi#getPetById + */ + fun getPetById(petId: kotlin.Long): Pet + + /** + * PUT /pet : Update an existing pet + * + * @param body Pet object that needs to be added to the store (required) + * @return Invalid ID supplied (status code 400) + * or Pet not found (status code 404) + * or Validation exception (status code 405) + * @see PetApi#updatePet + */ + fun updatePet(body: Pet): Unit + + /** + * POST /pet/{petId} : Updates a pet in the store with form data + * + * @param petId ID of pet that needs to be updated (required) + * @param name Updated name of the pet (optional) + * @param status Updated status of the pet (optional) + * @return Invalid input (status code 405) + * @see PetApi#updatePetWithForm + */ + fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String?, status: kotlin.String?): Unit + + /** + * POST /pet/{petId}/uploadImage : uploads an image + * + * @param petId ID of pet to update (required) + * @param image image to upload (required) + * @param additionalMetadata Additional data to pass to server (optional) + * @return successful operation (status code 200) + * @see PetApi#uploadFile + */ + fun uploadFile(petId: kotlin.Long, image: org.springframework.web.multipart.MultipartFile, additionalMetadata: kotlin.String?): ModelApiResponse + + /** + * POST /pet/{petId}/uploadMultipleImage : uploads multiple images + * + * @param petId ID of pet to update (required) + * @param images (required) + * @param additionalMetadata Additional data to pass to server (optional) + * @return successful operation (status code 200) + * @see PetApi#uploadMultipleFile + */ + fun uploadMultipleFile(petId: kotlin.Long, images: Array, additionalMetadata: kotlin.String?): ModelApiResponse +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt new file mode 100644 index 000000000000..5b1b8e57d8be --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt @@ -0,0 +1,48 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import org.springframework.stereotype.Service +@Service +class PetApiServiceImpl : PetApiService { + + override fun addPet(body: Pet): Unit { + TODO("Implement me") + } + + override fun deletePet(petId: kotlin.Long, apiKey: kotlin.String?): Unit { + TODO("Implement me") + } + + override fun findPetsByStatus(status: kotlin.collections.List): List { + TODO("Implement me") + } + + override fun findPetsByTags(tags: kotlin.collections.List): List { + TODO("Implement me") + } + + override fun getImage(petId: kotlin.Long): org.springframework.core.io.Resource { + TODO("Implement me") + } + + override fun getPetById(petId: kotlin.Long): Pet { + TODO("Implement me") + } + + override fun updatePet(body: Pet): Unit { + TODO("Implement me") + } + + override fun updatePetWithForm(petId: kotlin.Long, name: kotlin.String?, status: kotlin.String?): Unit { + TODO("Implement me") + } + + override fun uploadFile(petId: kotlin.Long, image: org.springframework.web.multipart.MultipartFile, additionalMetadata: kotlin.String?): ModelApiResponse { + TODO("Implement me") + } + + override fun uploadMultipleFile(petId: kotlin.Long, images: Array, additionalMetadata: kotlin.String?): ModelApiResponse { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt new file mode 100644 index 000000000000..755eb01d364d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -0,0 +1,127 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import javax.validation.Valid +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "store", description = "The store API") +class StoreApiController(@Autowired(required = true) val service: StoreApiService) { + + + @ApiOperation( + value = "Delete purchase order by ID", + nickname = "deleteOrder", + notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors" + ) + @ApiResponses( + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] + ) + fun deleteOrder( + @ApiParam(value = "ID of the order that needs to be deleted", required = true) @PathVariable("orderId") orderId: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.deleteOrder(orderId), HttpStatus.valueOf(400)) + } + + + @ApiOperation( + value = "Returns pet inventories by status", + nickname = "getInventory", + notes = "Returns a map of status codes to quantities", + response = kotlin.Int::class, + responseContainer = "Map", + authorizations = [Authorization(value = "api_key")] + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.collections.Map::class, responseContainer = "Map")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_INVENTORY /* "/store/inventory" */], + produces = ["application/json"] + ) + fun getInventory(): ResponseEntity> { + return ResponseEntity(service.getInventory(), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Find purchase order by ID", + nickname = "getOrderById", + notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions", + response = Order::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_ORDER_BY_ID /* "/store/order/{orderId}" */], + produces = ["application/xml", "application/json"] + ) + fun getOrderById( + @Min(value=1L) @Max(value=5L) @ApiParam(value = "ID of pet that needs to be fetched", required = true) @PathVariable("orderId") orderId: kotlin.Long + ): ResponseEntity { + return ResponseEntity(service.getOrderById(orderId), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Place an order for a pet", + nickname = "placeOrder", + notes = "", + response = Order::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_PLACE_ORDER /* "/store/order" */], + produces = ["application/xml", "application/json"] + ) + fun placeOrder( + @ApiParam(value = "order placed for purchasing the pet", required = true) @Valid @RequestBody body: Order + ): ResponseEntity { + return ResponseEntity(service.placeOrder(body), HttpStatus.valueOf(200)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_DELETE_ORDER: String = "/store/order/{orderId}" + const val PATH_GET_INVENTORY: String = "/store/inventory" + const val PATH_GET_ORDER_BY_ID: String = "/store/order/{orderId}" + const val PATH_PLACE_ORDER: String = "/store/order" + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt new file mode 100644 index 000000000000..c65ddf31c90a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -0,0 +1,48 @@ +package org.openapitools.api + +import org.openapitools.model.Order + +interface StoreApiService { + + /** + * DELETE /store/order/{orderId} : Delete purchase order by ID + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * + * @param orderId ID of the order that needs to be deleted (required) + * @return Invalid ID supplied (status code 400) + * or Order not found (status code 404) + * @see StoreApi#deleteOrder + */ + fun deleteOrder(orderId: kotlin.String): Unit + + /** + * GET /store/inventory : Returns pet inventories by status + * Returns a map of status codes to quantities + * + * @return successful operation (status code 200) + * @see StoreApi#getInventory + */ + fun getInventory(): Map + + /** + * GET /store/order/{orderId} : Find purchase order by ID + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * + * @param orderId ID of pet that needs to be fetched (required) + * @return successful operation (status code 200) + * or Invalid ID supplied (status code 400) + * or Order not found (status code 404) + * @see StoreApi#getOrderById + */ + fun getOrderById(orderId: kotlin.Long): Order + + /** + * POST /store/order : Place an order for a pet + * + * @param body order placed for purchasing the pet (required) + * @return successful operation (status code 200) + * or Invalid Order (status code 400) + * @see StoreApi#placeOrder + */ + fun placeOrder(body: Order): Order +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt new file mode 100644 index 000000000000..7e733e28dc50 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt @@ -0,0 +1,23 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import org.springframework.stereotype.Service +@Service +class StoreApiServiceImpl : StoreApiService { + + override fun deleteOrder(orderId: kotlin.String): Unit { + TODO("Implement me") + } + + override fun getInventory(): Map { + TODO("Implement me") + } + + override fun getOrderById(orderId: kotlin.Long): Order { + TODO("Implement me") + } + + override fun placeOrder(body: Order): Order { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt new file mode 100644 index 000000000000..34a1ec737fb2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -0,0 +1,223 @@ +package org.openapitools.api + +import org.openapitools.model.User +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import javax.validation.Valid +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "user", description = "The user API") +class UserApiController(@Autowired(required = true) val service: UserApiService) { + + + @ApiOperation( + value = "Create user", + nickname = "createUser", + notes = "This can only be done by the logged in user." + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USER /* "/user" */] + ) + fun createUser( + @ApiParam(value = "Created user object", required = true) @Valid @RequestBody body: User + ): ResponseEntity { + return ResponseEntity(service.createUser(body), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Creates list of users with given input array", + nickname = "createUsersWithArrayInput", + notes = "" + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_ARRAY_INPUT /* "/user/createWithArray" */] + ) + fun createUsersWithArrayInput( + @ApiParam(value = "List of user object", required = true) @Valid @RequestBody body: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(service.createUsersWithArrayInput(body), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Creates list of users with given input array", + nickname = "createUsersWithListInput", + notes = "" + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation")] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USERS_WITH_LIST_INPUT /* "/user/createWithList" */] + ) + fun createUsersWithListInput( + @ApiParam(value = "List of user object", required = true) @Valid @RequestBody body: kotlin.collections.List + ): ResponseEntity { + return ResponseEntity(service.createUsersWithListInput(body), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Delete user", + nickname = "deleteUser", + notes = "This can only be done by the logged in user." + ) + @ApiResponses( + value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) + @RequestMapping( + method = [RequestMethod.DELETE], + value = [PATH_DELETE_USER /* "/user/{username}" */] + ) + fun deleteUser( + @ApiParam(value = "The name that needs to be deleted", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.deleteUser(username), HttpStatus.valueOf(400)) + } + + + @ApiOperation( + value = "Get user by user name", + nickname = "getUserByName", + notes = "", + response = User::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_GET_USER_BY_NAME /* "/user/{username}" */], + produces = ["application/xml", "application/json"] + ) + fun getUserByName( + @ApiParam(value = "The name that needs to be fetched. Use user1 for testing.", required = true) @PathVariable("username") username: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.getUserByName(username), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Logs user into the system", + nickname = "loginUser", + notes = "", + response = kotlin.String::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGIN_USER /* "/user/login" */], + produces = ["application/xml", "application/json"] + ) + fun loginUser( + @NotNull @ApiParam(value = "The user name for login", required = true) @Valid @RequestParam(value = "username", required = true) username: kotlin.String, + @NotNull @ApiParam(value = "The password for login in clear text", required = true) @Valid @RequestParam(value = "password", required = true) password: kotlin.String + ): ResponseEntity { + return ResponseEntity(service.loginUser(username, password), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Logs out current logged in user session", + nickname = "logoutUser", + notes = "" + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation")] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_LOGOUT_USER /* "/user/logout" */] + ) + fun logoutUser(): ResponseEntity { + return ResponseEntity(service.logoutUser(), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "logoutUserOptions", + nickname = "logoutUserOptions", + notes = "" + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "endpoint configuration response")] + ) + @RequestMapping( + method = [RequestMethod.OPTIONS], + value = [PATH_LOGOUT_USER_OPTIONS /* "/user/logout" */] + ) + fun logoutUserOptions(): ResponseEntity { + return ResponseEntity(service.logoutUserOptions(), HttpStatus.valueOf(200)) + } + + + @ApiOperation( + value = "Updated user", + nickname = "updateUser", + notes = "This can only be done by the logged in user." + ) + @ApiResponses( + value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")] + ) + @RequestMapping( + method = [RequestMethod.PUT], + value = [PATH_UPDATE_USER /* "/user/{username}" */] + ) + fun updateUser( + @ApiParam(value = "name that need to be deleted", required = true) @PathVariable("username") username: kotlin.String, + @ApiParam(value = "Updated user object", required = true) @Valid @RequestBody body: User + ): ResponseEntity { + return ResponseEntity(service.updateUser(username, body), HttpStatus.valueOf(400)) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_CREATE_USER: String = "/user" + const val PATH_CREATE_USERS_WITH_ARRAY_INPUT: String = "/user/createWithArray" + const val PATH_CREATE_USERS_WITH_LIST_INPUT: String = "/user/createWithList" + const val PATH_DELETE_USER: String = "/user/{username}" + const val PATH_GET_USER_BY_NAME: String = "/user/{username}" + const val PATH_LOGIN_USER: String = "/user/login" + const val PATH_LOGOUT_USER: String = "/user/logout" + const val PATH_LOGOUT_USER_OPTIONS: String = "/user/logout" + const val PATH_UPDATE_USER: String = "/user/{username}" + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiService.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiService.kt new file mode 100644 index 000000000000..6942dc3ede0a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiService.kt @@ -0,0 +1,95 @@ +package org.openapitools.api + +import org.openapitools.model.User + +interface UserApiService { + + /** + * POST /user : Create user + * This can only be done by the logged in user. + * + * @param body Created user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUser + */ + fun createUser(body: User): Unit + + /** + * POST /user/createWithArray : Creates list of users with given input array + * + * @param body List of user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUsersWithArrayInput + */ + fun createUsersWithArrayInput(body: kotlin.collections.List): Unit + + /** + * POST /user/createWithList : Creates list of users with given input array + * + * @param body List of user object (required) + * @return successful operation (status code 200) + * @see UserApi#createUsersWithListInput + */ + fun createUsersWithListInput(body: kotlin.collections.List): Unit + + /** + * DELETE /user/{username} : Delete user + * This can only be done by the logged in user. + * + * @param username The name that needs to be deleted (required) + * @return Invalid username supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#deleteUser + */ + fun deleteUser(username: kotlin.String): Unit + + /** + * GET /user/{username} : Get user by user name + * + * @param username The name that needs to be fetched. Use user1 for testing. (required) + * @return successful operation (status code 200) + * or Invalid username supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#getUserByName + */ + fun getUserByName(username: kotlin.String): User + + /** + * GET /user/login : Logs user into the system + * + * @param username The user name for login (required) + * @param password The password for login in clear text (required) + * @return successful operation (status code 200) + * or Invalid username/password supplied (status code 400) + * @see UserApi#loginUser + */ + fun loginUser(username: kotlin.String, password: kotlin.String): kotlin.String + + /** + * GET /user/logout : Logs out current logged in user session + * + * @return successful operation (status code 200) + * @see UserApi#logoutUser + */ + fun logoutUser(): Unit + + /** + * OPTIONS /user/logout : logoutUserOptions + * + * @return endpoint configuration response (status code 200) + * @see UserApi#logoutUserOptions + */ + fun logoutUserOptions(): Unit + + /** + * PUT /user/{username} : Updated user + * This can only be done by the logged in user. + * + * @param username name that need to be deleted (required) + * @param body Updated user object (required) + * @return Invalid user supplied (status code 400) + * or User not found (status code 404) + * @see UserApi#updateUser + */ + fun updateUser(username: kotlin.String, body: User): Unit +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt new file mode 100644 index 000000000000..f0798bd1695a --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt @@ -0,0 +1,43 @@ +package org.openapitools.api + +import org.openapitools.model.User +import org.springframework.stereotype.Service +@Service +class UserApiServiceImpl : UserApiService { + + override fun createUser(body: User): Unit { + TODO("Implement me") + } + + override fun createUsersWithArrayInput(body: kotlin.collections.List): Unit { + TODO("Implement me") + } + + override fun createUsersWithListInput(body: kotlin.collections.List): Unit { + TODO("Implement me") + } + + override fun deleteUser(username: kotlin.String): Unit { + TODO("Implement me") + } + + override fun getUserByName(username: kotlin.String): User { + TODO("Implement me") + } + + override fun loginUser(username: kotlin.String, password: kotlin.String): kotlin.String { + TODO("Implement me") + } + + override fun logoutUser(): Unit { + TODO("Implement me") + } + + override fun logoutUserOptions(): Unit { + TODO("Implement me") + } + + override fun updateUser(username: kotlin.String, body: User): Unit { + TODO("Implement me") + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Category.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Category.kt new file mode 100644 index 000000000000..8514f2c8ba00 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Category.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * A category for a pet + * @param id + * @param name + */ +data class Category( + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..f09c9e4036f2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..ce959d5caa44 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..f1572d669057 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "42", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt new file mode 100644 index 000000000000..58be39aeacfc --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt @@ -0,0 +1,40 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * Describes the result of uploading an image resource + * @param code + * @param type + * @param message + */ +data class ModelApiResponse( + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("code") val code: kotlin.Int? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("type") val type: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("message") val message: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Order.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Order.kt new file mode 100644 index 000000000000..c67dc14ec918 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Order.kt @@ -0,0 +1,74 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * An order for a pets from the pet store + * @param id + * @param petId + * @param quantity + * @param shipDate + * @param status Order Status + * @param complete + */ +data class Order( + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("petId") val petId: kotlin.Long? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("quantity") val quantity: kotlin.Int? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("shipDate") val shipDate: java.time.OffsetDateTime? = null, + + @ApiModelProperty(example = "null", value = "Order Status") + @get:JsonProperty("status") val status: Order.Status? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("complete") val complete: kotlin.Boolean? = false +) : Serializable { + + /** + * Order Status + * Values: placed,approved,delivered + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + placed("placed"), + approved("approved"), + delivered("delivered"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Order'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Pet.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Pet.kt new file mode 100644 index 000000000000..0303d2d9d3d2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Pet.kt @@ -0,0 +1,78 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonValue +import org.openapitools.model.Category +import org.openapitools.model.Tag +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * A pet for sale in the pet store + * @param name + * @param photoUrls + * @param id + * @param category + * @param tags + * @param status pet status in the store + */ +data class Pet( + + @ApiModelProperty(example = "doggie", required = true, value = "") + @get:JsonProperty("name", required = true) val name: kotlin.String, + + @ApiModelProperty(example = "null", required = true, value = "") + @get:JsonProperty("photoUrls", required = true) val photoUrls: kotlin.collections.List, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("category") val category: Category? = null, + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("tags") val tags: kotlin.collections.List? = null, + + @ApiModelProperty(example = "null", value = "pet status in the store") + @get:JsonProperty("status") val status: Pet.Status? = null +) : Serializable { + + /** + * pet status in the store + * Values: available,pending,sold + */ + enum class Status(@get:JsonValue val value: kotlin.String) { + + available("available"), + pending("pending"), + sold("sold"); + + companion object { + @JvmStatic + @JsonCreator + fun forValue(value: kotlin.String): Status { + return values().firstOrNull{it -> it.value == value} + ?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Pet'") + } + } + } + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Tag.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Tag.kt new file mode 100644 index 000000000000..d8a5928093c7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Tag.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * A tag for a pet + * @param id + * @param name + */ +data class Tag( + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("name") val name: kotlin.String? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/User.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/User.kt new file mode 100644 index 000000000000..8d982852e321 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/User.kt @@ -0,0 +1,60 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * A User who is purchasing from the pet store + * @param id + * @param username + * @param firstName + * @param lastName + * @param email + * @param password + * @param phone + * @param userStatus User Status + */ +data class User( + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("id") val id: kotlin.Long? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("username") val username: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("firstName") val firstName: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("lastName") val lastName: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("email") val email: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("password") val password: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("phone") val phone: kotlin.String? = null, + + @ApiModelProperty(example = "null", value = "User Status") + @get:JsonProperty("userStatus") val userStatus: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/application.yaml b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/application.yaml new file mode 100644 index 000000000000..8e2ebcde976d --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/application.yaml @@ -0,0 +1,10 @@ +spring: + application: + name: openAPIPetstore + + jackson: + serialization: + WRITE_DATES_AS_TIMESTAMPS: false + +server: + port: 8080 diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/openapi.yaml b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/openapi.yaml new file mode 100644 index 000000000000..e06418a039f3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/openapi.yaml @@ -0,0 +1,1060 @@ +openapi: 3.0.1 +info: + description: "This is a sample server Petstore server. For this sample, you can\ + \ use the api key `special-key` to test the authorization filters." + license: + name: Apache-2.0 + url: http://www.apache.org/licenses/LICENSE-2.0.html + title: OpenAPI Petstore + version: 1.0.0 +servers: +- url: http://petstore.swagger.io/v2 +tags: +- description: Everything about your Pets + name: pet +- description: Access to Petstore orders + name: store +- description: Operations about user + name: user +paths: + /pet: + post: + operationId: addPet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + description: Pet object that needs to be added to the store + required: true + responses: + "405": + content: {} + description: Invalid input + security: + - petstore_auth: + - write:pets + - read:pets + summary: Add a new pet to the store + tags: + - pet tag + x-codegen-request-body-name: body + put: + operationId: updatePet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + description: Pet object that needs to be added to the store + required: true + responses: + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Pet not found + "405": + content: {} + description: Validation exception + security: + - petstore_auth: + - write:pets + - read:pets + summary: Update an existing pet + tags: + - pet tag + x-codegen-request-body-name: body + /pet/findByStatus: + get: + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - description: Status values that need to be considered for filter + explode: false + in: query + name: status + required: true + schema: + items: + default: available + enum: + - available + - pending + - sold + type: string + type: array + style: form + responses: + "200": + content: + application/xml: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + application/json: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + description: successful operation + "400": + content: {} + description: Invalid status value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Finds Pets by status + tags: + - pet tag + x-spring-paginated: true + /pet/findByTags: + get: + deprecated: true + description: "Multiple tags can be provided with comma separated strings. Use\ + \ tag1, tag2, tag3 for testing." + operationId: findPetsByTags + parameters: + - description: Tags to filter by + explode: false + in: query + name: tags + required: true + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/xml: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + application/json: + schema: + items: + $ref: "#/components/schemas/Pet" + type: array + description: successful operation + "400": + content: {} + description: Invalid tag value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Finds Pets by tags + tags: + - pet tag + x-spring-paginated: true + /pet/{petId}: + delete: + operationId: deletePet + parameters: + - explode: false + in: header + name: api_key + required: false + schema: + type: string + style: simple + - description: Pet id to delete + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "400": + content: {} + description: Invalid pet value + security: + - petstore_auth: + - write:pets + - read:pets + summary: Deletes a pet + tags: + - pet tag + get: + description: Returns a single pet + operationId: getPetById + parameters: + - description: ID of pet to return + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Pet" + application/json: + schema: + $ref: "#/components/schemas/Pet" + description: successful operation + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Pet not found + security: + - api_key: [] + summary: Find pet by ID + tags: + - pet tag + post: + operationId: updatePetWithForm + parameters: + - description: ID of pet that needs to be updated + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/updatePetWithForm_request" + responses: + "405": + content: {} + description: Invalid input + security: + - petstore_auth: + - write:pets + - read:pets + summary: Updates a pet in the store with form data + tags: + - pet tag + /pet/{petId}/uploadImage: + post: + operationId: uploadFile + parameters: + - description: ID of pet to update + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/uploadFile_request" + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: uploads an image + tags: + - pet tag + /pet/{petId}/uploadMultipleImage: + post: + operationId: uploadMultipleFile + parameters: + - description: ID of pet to update + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/uploadMultipleFile_request" + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: uploads multiple images + tags: + - pet tag + /pet/{petId}/getImage: + get: + operationId: getImage + parameters: + - description: ID of pet to get image + explode: false + in: path + name: petId + required: true + schema: + format: int64 + type: integer + style: simple + responses: + "200": + content: + application/octet-stream: + schema: + format: binary + type: string + description: successful operation + security: + - petstore_auth: + - write:pets + - read:pets + summary: Get an image + tags: + - pet tag + /store/inventory: + get: + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + "200": + content: + application/json: + schema: + additionalProperties: + format: int32 + type: integer + type: object + description: successful operation + security: + - api_key: [] + summary: Returns pet inventories by status + tags: + - store tag + /store/order: + post: + operationId: placeOrder + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/Order" + description: order placed for purchasing the pet + required: true + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Order" + application/json: + schema: + $ref: "#/components/schemas/Order" + description: successful operation + "400": + content: {} + description: Invalid Order + summary: Place an order for a pet + tags: + - store tag + x-codegen-request-body-name: body + /store/order/{orderId}: + delete: + description: For valid response try integer IDs with value < 1000. Anything + above 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - description: ID of the order that needs to be deleted + explode: false + in: path + name: orderId + required: true + schema: + type: string + style: simple + responses: + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Order not found + summary: Delete purchase order by ID + tags: + - store tag + get: + description: For valid response try integer IDs with value <= 5 or > 10. Other + values will generate exceptions + operationId: getOrderById + parameters: + - description: ID of pet that needs to be fetched + explode: false + in: path + name: orderId + required: true + schema: + format: int64 + maximum: 5 + minimum: 1 + type: integer + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/Order" + application/json: + schema: + $ref: "#/components/schemas/Order" + description: successful operation + "400": + content: {} + description: Invalid ID supplied + "404": + content: {} + description: Order not found + summary: Find purchase order by ID + tags: + - store tag + /user: + post: + description: This can only be done by the logged in user. + operationId: createUser + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/User" + description: Created user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Create user + tags: + - user tag + x-codegen-request-body-name: body + /user/createWithArray: + post: + operationId: createUsersWithArrayInput + requestBody: + content: + '*/*': + schema: + items: + $ref: "#/components/schemas/User" + type: array + description: List of user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Creates list of users with given input array + tags: + - user tag + x-codegen-request-body-name: body + /user/createWithList: + post: + operationId: createUsersWithListInput + requestBody: + content: + '*/*': + schema: + items: + $ref: "#/components/schemas/User" + type: array + description: List of user object + required: true + responses: + default: + content: {} + description: successful operation + summary: Creates list of users with given input array + tags: + - user tag + x-codegen-request-body-name: body + /user/login: + get: + operationId: loginUser + parameters: + - description: The user name for login + explode: true + in: query + name: username + required: true + schema: + type: string + style: form + - description: The password for login in clear text + explode: true + in: query + name: password + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/xml: + schema: + type: string + application/json: + schema: + type: string + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + explode: false + schema: + format: int32 + type: integer + style: simple + X-Expires-After: + description: date in UTC when token expires + explode: false + schema: + format: date-time + type: string + style: simple + "400": + content: {} + description: Invalid username/password supplied + summary: Logs user into the system + tags: + - user tag + /user/logout: + get: + operationId: logoutUser + responses: + default: + content: {} + description: successful operation + summary: Logs out current logged in user session + tags: + - user tag + options: + operationId: logoutUserOptions + responses: + default: + content: {} + description: endpoint configuration response + summary: logoutUserOptions + tags: + - user tag + /user/{username}: + delete: + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - description: The name that needs to be deleted + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + responses: + "400": + content: {} + description: Invalid username supplied + "404": + content: {} + description: User not found + summary: Delete user + tags: + - user tag + get: + operationId: getUserByName + parameters: + - description: The name that needs to be fetched. Use user1 for testing. + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/xml: + schema: + $ref: "#/components/schemas/User" + application/json: + schema: + $ref: "#/components/schemas/User" + description: successful operation + "400": + content: {} + description: Invalid username supplied + "404": + content: {} + description: User not found + summary: Get user by user name + tags: + - user tag + put: + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - description: name that need to be deleted + explode: false + in: path + name: username + required: true + schema: + type: string + style: simple + requestBody: + content: + '*/*': + schema: + $ref: "#/components/schemas/User" + description: Updated user object + required: true + responses: + "400": + content: {} + description: Invalid user supplied + "404": + content: {} + description: User not found + summary: Updated user + tags: + - user tag + x-codegen-request-body-name: body + /items/{item$Id}/something/{item$SubId}: + get: + description: SQ = "; SBS = \; DBS = \\; SD = $some + parameters: + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: path + name: item$Id + required: true + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: path + name: item$SubId + required: true + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: query + name: filter$Type + required: false + schema: + default: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: query + name: filter$SubType + required: false + schema: + default: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Custom_Header + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Custom_Header_two + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: cookie + name: session$Token + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: true + in: cookie + name: session$TokenTwo + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: "#/components/schemas/_items__item_Id__something__item_SubId__get_200_response" + description: SQ = "; SBS = \; DBS = \\; SD = $some + summary: SQ = "; SBS = \; DBS = \\; SD = $some + /items: + post: + description: SQ = "; SBS = \; DBS = \\; SD = $some + parameters: + - description: SQ = "; SBS = \; DBS = \\; SD = $some + explode: false + in: header + name: X-Post_Header + required: false + schema: + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + style: simple + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/_items_post_request" + required: true + responses: + "201": + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" + description: SQ = "; SBS = \; DBS = \\; SD = $some + summary: SQ = "; SBS = \; DBS = \\; SD = $some +components: + schemas: + Order: + description: An order for a pets from the pet store + example: + petId: 6 + quantity: 1 + id: 0 + shipDate: 2000-01-23T04:56:07.000+00:00 + complete: false + status: placed + properties: + id: + format: int64 + type: integer + petId: + format: int64 + type: integer + quantity: + format: int32 + type: integer + shipDate: + format: date-time + type: string + status: + description: Order Status + enum: + - placed + - approved + - delivered + type: string + complete: + default: false + type: boolean + title: Pet Order + type: object + xml: + name: Order + Category: + description: A category for a pet + example: + name: name + id: 6 + properties: + id: + format: int64 + type: integer + name: + type: string + title: Pet category + type: object + xml: + name: Category + User: + description: A User who is purchasing from the pet store + example: + firstName: firstName + lastName: lastName + password: password + userStatus: 6 + phone: phone + id: 0 + email: email + username: username + properties: + id: + format: int64 + type: integer + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + description: User Status + format: int32 + type: integer + title: a User + type: object + xml: + name: User + Tag: + description: A tag for a pet + example: + name: name + id: 1 + properties: + id: + format: int64 + type: integer + name: + type: string + title: Pet Tag + type: object + xml: + name: Tag + Pet: + description: A pet for sale in the pet store + example: + photoUrls: + - photoUrls + - photoUrls + name: doggie + id: 0 + category: + name: name + id: 6 + tags: + - name: name + id: 1 + - name: name + id: 1 + status: available + properties: + id: + format: int64 + type: integer + category: + $ref: "#/components/schemas/Category" + name: + example: doggie + type: string + photoUrls: + items: + type: string + type: array + xml: + name: photoUrl + wrapped: true + tags: + items: + $ref: "#/components/schemas/Tag" + type: array + xml: + name: tag + wrapped: true + status: + description: pet status in the store + enum: + - available + - pending + - sold + type: string + required: + - name + - photoUrls + title: a Pet + type: object + xml: + name: Pet + ApiResponse: + description: Describes the result of uploading an image resource + example: + code: 0 + type: type + message: message + properties: + code: + format: int32 + type: integer + type: + type: string + message: + type: string + title: An uploaded response + type: object + ItemWithDollarAttributesAndExamples: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: + $name: SQ = "; SBS = \; DBS = \\; SD = $some + $id: SQ = "; SBS = \; DBS = \\; SD = $some + properties: + $id: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + $name: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + type: object + updatePetWithForm_request: + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + uploadFile_request: + properties: + additionalMetadata: + description: Additional data to pass to server + type: string + image: + description: image to upload + format: binary + type: string + required: + - image + uploadMultipleFile_request: + properties: + additionalMetadata: + description: Additional data to pass to server + type: string + images: + items: + description: image to upload + format: binary + type: string + type: array + required: + - images + _items__item_Id__something__item_SubId__get_200_response_details_Info: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: + detail$One: SQ = "; SBS = \; DBS = \\; SD = $some + detail$Two: 42 + properties: + detail$One: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + detail$Two: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: 42 + type: integer + type: object + _items__item_Id__something__item_SubId__get_200_response: + example: + name$Value: SQ = "; SBS = \; DBS = \\; SD = $some + details$Info: + detail$One: SQ = "; SBS = \; DBS = \\; SD = $some + detail$Two: 42 + item$Id: SQ = "; SBS = \; DBS = \\; SD = $some + properties: + item$Id: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + name$Value: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + details$Info: + $ref: "#/components/schemas/_items__item_Id__something__item_SubId__get_200_response_details_Info" + type: object + _items_post_request: + properties: + form$Name: + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + form$Value: + default: SQ = "; SBS = \; DBS = \\; SD = $some + description: SQ = "; SBS = \; DBS = \\; SD = $some + example: SQ = "; SBS = \; DBS = \\; SD = $some + type: string + type: object + securitySchemes: + petstore_auth: + flows: + implicit: + authorizationUrl: http://petstore.swagger.io/api/oauth/dialog + scopes: + write:pets: modify pets in your account + read:pets: read your pets + type: oauth2 + api_key: + in: header + name: api_key + type: apiKey diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt new file mode 100644 index 000000000000..b9dd52637709 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt @@ -0,0 +1,51 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class ItemsApiTest { + + private val service: ItemsApiService = ItemsApiServiceImpl() + private val api: ItemsApiController = ItemsApiController(service) + + /** + * To test ItemsApiController.itemsItemIdSomethingItemSubIdGet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsItemIdSomethingItemSubIdGetTest() { + val itemDollarId: kotlin.String = TODO() + val itemDollarSubId: kotlin.String = TODO() + val filterDollarType: kotlin.String = TODO() + val filterDollarSubType: kotlin.String = TODO() + val xCustomHeader: kotlin.String? = TODO() + val xCustomHeaderTwo: kotlin.String? = TODO() + val sessionDollarToken: kotlin.String? = TODO() + val sessionDollarTokenTwo: kotlin.String? = TODO() + + val response: ResponseEntity = api.itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo) + + // TODO: test validations + } + + /** + * To test ItemsApiController.itemsPost + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsPostTest() { + val xPostHeader: kotlin.String? = TODO() + val formDollarName: kotlin.String? = TODO() + val formDollarValue: kotlin.String = TODO() + + val response: ResponseEntity = api.itemsPost(xPostHeader, formDollarName, formDollarValue) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/PetApiTest.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/PetApiTest.kt new file mode 100644 index 000000000000..2e469407743c --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/PetApiTest.kt @@ -0,0 +1,169 @@ +package org.openapitools.api + +import org.openapitools.model.ModelApiResponse +import org.openapitools.model.Pet +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class PetApiTest { + + private val service: PetApiService = PetApiServiceImpl() + private val api: PetApiController = PetApiController(service) + + /** + * To test PetApiController.addPet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun addPetTest() { + val body: Pet = TODO() + + val response: ResponseEntity = api.addPet(body) + + // TODO: test validations + } + + /** + * To test PetApiController.deletePet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deletePetTest() { + val petId: kotlin.Long = TODO() + val apiKey: kotlin.String? = TODO() + + val response: ResponseEntity = api.deletePet(petId, apiKey) + + // TODO: test validations + } + + /** + * To test PetApiController.findPetsByStatus + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun findPetsByStatusTest() { + val status: kotlin.collections.List = TODO() + + val response: ResponseEntity> = api.findPetsByStatus(status) + + // TODO: test validations + } + + /** + * To test PetApiController.findPetsByTags + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun findPetsByTagsTest() { + val tags: kotlin.collections.List = TODO() + + val response: ResponseEntity> = api.findPetsByTags(tags) + + // TODO: test validations + } + + /** + * To test PetApiController.getImage + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getImageTest() { + val petId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getImage(petId) + + // TODO: test validations + } + + /** + * To test PetApiController.getPetById + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getPetByIdTest() { + val petId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getPetById(petId) + + // TODO: test validations + } + + /** + * To test PetApiController.updatePet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updatePetTest() { + val body: Pet = TODO() + + val response: ResponseEntity = api.updatePet(body) + + // TODO: test validations + } + + /** + * To test PetApiController.updatePetWithForm + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updatePetWithFormTest() { + val petId: kotlin.Long = TODO() + val name: kotlin.String? = TODO() + val status: kotlin.String? = TODO() + + val response: ResponseEntity = api.updatePetWithForm(petId, name, status) + + // TODO: test validations + } + + /** + * To test PetApiController.uploadFile + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun uploadFileTest() { + val petId: kotlin.Long = TODO() + val image: org.springframework.web.multipart.MultipartFile = TODO() + val additionalMetadata: kotlin.String? = TODO() + + val response: ResponseEntity = api.uploadFile(petId, image, additionalMetadata) + + // TODO: test validations + } + + /** + * To test PetApiController.uploadMultipleFile + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun uploadMultipleFileTest() { + val petId: kotlin.Long = TODO() + val images: Array = TODO() + val additionalMetadata: kotlin.String? = TODO() + + val response: ResponseEntity = api.uploadMultipleFile(petId, images, additionalMetadata) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/StoreApiTest.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/StoreApiTest.kt new file mode 100644 index 000000000000..b67568e31dab --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/StoreApiTest.kt @@ -0,0 +1,70 @@ +package org.openapitools.api + +import org.openapitools.model.Order +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class StoreApiTest { + + private val service: StoreApiService = StoreApiServiceImpl() + private val api: StoreApiController = StoreApiController(service) + + /** + * To test StoreApiController.deleteOrder + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deleteOrderTest() { + val orderId: kotlin.String = TODO() + + val response: ResponseEntity = api.deleteOrder(orderId) + + // TODO: test validations + } + + /** + * To test StoreApiController.getInventory + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getInventoryTest() { + + val response: ResponseEntity> = api.getInventory() + + // TODO: test validations + } + + /** + * To test StoreApiController.getOrderById + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getOrderByIdTest() { + val orderId: kotlin.Long = TODO() + + val response: ResponseEntity = api.getOrderById(orderId) + + // TODO: test validations + } + + /** + * To test StoreApiController.placeOrder + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun placeOrderTest() { + val body: Order = TODO() + + val response: ResponseEntity = api.placeOrder(body) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/UserApiTest.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/UserApiTest.kt new file mode 100644 index 000000000000..d7f7e9523f5f --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/UserApiTest.kt @@ -0,0 +1,146 @@ +package org.openapitools.api + +import org.openapitools.model.User +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class UserApiTest { + + private val service: UserApiService = UserApiServiceImpl() + private val api: UserApiController = UserApiController(service) + + /** + * To test UserApiController.createUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUserTest() { + val body: User = TODO() + + val response: ResponseEntity = api.createUser(body) + + // TODO: test validations + } + + /** + * To test UserApiController.createUsersWithArrayInput + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUsersWithArrayInputTest() { + val body: kotlin.collections.List = TODO() + + val response: ResponseEntity = api.createUsersWithArrayInput(body) + + // TODO: test validations + } + + /** + * To test UserApiController.createUsersWithListInput + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun createUsersWithListInputTest() { + val body: kotlin.collections.List = TODO() + + val response: ResponseEntity = api.createUsersWithListInput(body) + + // TODO: test validations + } + + /** + * To test UserApiController.deleteUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun deleteUserTest() { + val username: kotlin.String = TODO() + + val response: ResponseEntity = api.deleteUser(username) + + // TODO: test validations + } + + /** + * To test UserApiController.getUserByName + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun getUserByNameTest() { + val username: kotlin.String = TODO() + + val response: ResponseEntity = api.getUserByName(username) + + // TODO: test validations + } + + /** + * To test UserApiController.loginUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun loginUserTest() { + val username: kotlin.String = TODO() + val password: kotlin.String = TODO() + + val response: ResponseEntity = api.loginUser(username, password) + + // TODO: test validations + } + + /** + * To test UserApiController.logoutUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun logoutUserTest() { + + val response: ResponseEntity = api.logoutUser() + + // TODO: test validations + } + + /** + * To test UserApiController.logoutUserOptions + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun logoutUserOptionsTest() { + + val response: ResponseEntity = api.logoutUserOptions() + + // TODO: test validations + } + + /** + * To test UserApiController.updateUser + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun updateUserTest() { + val username: kotlin.String = TODO() + val body: User = TODO() + + val response: ResponseEntity = api.updateUser(username, body) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/.openapi-generator/FILES index 8b73d6497e4f..3cd6745be096 100644 --- a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/.openapi-generator/FILES @@ -8,6 +8,9 @@ pom.xml settings.gradle src/main/kotlin/org/openapitools/Application.kt src/main/kotlin/org/openapitools/api/ApiUtil.kt +src/main/kotlin/org/openapitools/api/ItemsApi.kt +src/main/kotlin/org/openapitools/api/ItemsApiController.kt +src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt src/main/kotlin/org/openapitools/api/PetApi.kt src/main/kotlin/org/openapitools/api/PetApiController.kt src/main/kotlin/org/openapitools/api/PetApiDelegate.kt @@ -22,6 +25,9 @@ src/main/kotlin/org/openapitools/model/Cat.kt src/main/kotlin/org/openapitools/model/Category.kt src/main/kotlin/org/openapitools/model/Color.kt src/main/kotlin/org/openapitools/model/Dog.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApi.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApi.kt new file mode 100644 index 000000000000..a302ce3cea83 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApi.kt @@ -0,0 +1,106 @@ +/** + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). + * https://openapi-generator.tech + * Do not edit the class manually. +*/ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired + +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid + +import kotlinx.coroutines.flow.Flow +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "items", description = "The items API") +interface ItemsApi { + + fun getDelegate(): ItemsApiDelegate + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsItemIdSomethingItemSubIdGet", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemsItemIdSomethingItemSubIdGet200Response::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item$Id}/something/{item$SubId}" */], + produces = ["application/json"] + ) + suspend fun itemsItemIdSomethingItemSubIdGet( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String?, + @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange + ): ResponseEntity { + return getDelegate().itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo, exchange) + } + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsPost", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemWithDollarAttributesAndExamples::class + ) + @ApiResponses( + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ITEMS_POST /* "/items" */], + produces = ["application/json"], + consumes = ["application/x-www-form-urlencoded"] + ) + suspend fun itemsPost( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String, + @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange + ): ResponseEntity { + return getDelegate().itemsPost(xPostHeader, formDollarName, formDollarValue, exchange) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiController.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiController.kt new file mode 100644 index 000000000000..32a891793f22 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,22 @@ +package org.openapitools.api + +import org.springframework.stereotype.Controller +import org.springframework.web.bind.annotation.RequestMapping +import java.util.Optional +import org.openapitools.api.ItemsApiController.Companion.BASE_PATH + +@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT") +@Controller +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class ItemsApiController( + private val delegate: ItemsApiDelegate +) : ItemsApi { + + override fun getDelegate(): ItemsApiDelegate = delegate + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + } + +} diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt new file mode 100644 index 000000000000..507e56259ee4 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt @@ -0,0 +1,44 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity +import org.springframework.web.context.request.NativeWebRequest +import kotlinx.coroutines.flow.Flow + +import java.util.Optional + +/** + * A delegate to be called by the {@link ItemsApiController}}. + * Implement this interface with a {@link org.springframework.stereotype.Service} annotated class. + */ +@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT") +interface ItemsApiDelegate { + + fun getRequest(): Optional = Optional.empty() + + /** + * @see ItemsApi#itemsItemIdSomethingItemSubIdGet + */ + suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, + itemDollarSubId: kotlin.String, + filterDollarType: kotlin.String, + filterDollarSubType: kotlin.String, + xCustomHeader: kotlin.String?, + xCustomHeaderTwo: kotlin.String?, + sessionDollarToken: kotlin.String?, + sessionDollarTokenTwo: kotlin.String?, + exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity + + + /** + * @see ItemsApi#itemsPost + */ + suspend fun itemsPost(xPostHeader: kotlin.String?, + formDollarName: kotlin.String?, + formDollarValue: kotlin.String, + exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity + +} diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..f09c9e4036f2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..ce959d5caa44 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..f1572d669057 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "42", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-no-response-entity/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-reactive-without-flow/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-reactive-without-flow/src/main/kotlin/org/openapitools/api/StoreApiService.kt index ca81edd9f2b0..4e35128d4949 100644 --- a/samples/server/petstore/kotlin-springboot-reactive-without-flow/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-reactive-without-flow/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -7,7 +7,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -27,7 +27,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt index ca81edd9f2b0..4e35128d4949 100644 --- a/samples/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-reactive/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -7,7 +7,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -27,7 +27,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt index f99b4146027c..ad0ad481db79 100644 --- a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt +++ b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -43,9 +43,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Add a new pet to the store", nickname = "addPet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 405, message = "Invalid input")]) + value = [ApiResponse(code = 405, message = "Invalid input")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ADD_PET /* "/pet" */], @@ -62,9 +64,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Deletes a pet", nickname = "deletePet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid pet value")]) + value = [ApiResponse(code = 400, message = "Invalid pet value")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_PET /* "/pet/{petId}" */] @@ -83,9 +87,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { notes = "Multiple status values can be provided with comma separated strings", response = Pet::class, responseContainer = "List", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_FIND_PETS_BY_STATUS /* "/pet/findByStatus" */], @@ -104,9 +110,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { notes = "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", response = Pet::class, responseContainer = "List", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_FIND_PETS_BY_TAGS /* "/pet/findByTags" */], @@ -124,9 +132,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { nickname = "getPetById", notes = "Returns a single pet", response = Pet::class, - authorizations = [Authorization(value = "api_key")]) + authorizations = [Authorization(value = "api_key")] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_PET_BY_ID /* "/pet/{petId}" */], @@ -143,9 +153,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Update an existing pet", nickname = "updatePet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")]) + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")] + ) @RequestMapping( method = [RequestMethod.PUT], value = [PATH_UPDATE_PET /* "/pet" */], @@ -162,9 +174,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Updates a pet in the store with form data", nickname = "updatePetWithForm", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 405, message = "Invalid input")]) + value = [ApiResponse(code = 405, message = "Invalid input")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_UPDATE_PET_WITH_FORM /* "/pet/{petId}" */], @@ -184,9 +198,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { nickname = "uploadFile", notes = "", response = ModelApiResponse::class, - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)]) + value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_UPLOAD_FILE /* "/pet/{petId}/uploadImage" */], diff --git a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt index fa400197c7ca..90dfe1ddfe07 100644 --- a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt +++ b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -41,9 +41,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic @ApiOperation( value = "Delete purchase order by ID", nickname = "deleteOrder", - notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors") + notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors" + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")]) + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] @@ -61,9 +63,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic notes = "Returns a map of status codes to quantities", response = kotlin.Int::class, responseContainer = "Map", - authorizations = [Authorization(value = "api_key")]) + authorizations = [Authorization(value = "api_key")] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.collections.Map::class, responseContainer = "Map")]) + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.collections.Map::class, responseContainer = "Map")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_INVENTORY /* "/store/inventory" */], @@ -78,9 +82,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic value = "Find purchase order by ID", nickname = "getOrderById", notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions", - response = Order::class) + response = Order::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_ORDER_BY_ID /* "/store/order/{orderId}" */], @@ -97,9 +103,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic value = "Place an order for a pet", nickname = "placeOrder", notes = "", - response = Order::class) + response = Order::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_PLACE_ORDER /* "/store/order" */], diff --git a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt index cbaedc3d378b..b3c71c688c29 100644 --- a/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt +++ b/samples/server/petstore/kotlin-springboot-source-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -41,9 +41,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Create user", nickname = "createUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USER /* "/user" */] @@ -58,9 +60,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Creates list of users with given input array", nickname = "createUsersWithArrayInput", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USERS_WITH_ARRAY_INPUT /* "/user/createWithArray" */] @@ -75,9 +79,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Creates list of users with given input array", nickname = "createUsersWithListInput", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USERS_WITH_LIST_INPUT /* "/user/createWithList" */] @@ -92,9 +98,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Delete user", nickname = "deleteUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_USER /* "/user/{username}" */] @@ -110,9 +118,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) value = "Get user by user name", nickname = "getUserByName", notes = "", - response = User::class) + response = User::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_USER_BY_NAME /* "/user/{username}" */], @@ -129,9 +139,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) value = "Logs user into the system", nickname = "loginUser", notes = "", - response = kotlin.String::class) + response = kotlin.String::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")]) + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_LOGIN_USER /* "/user/login" */], @@ -148,9 +160,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Logs out current logged in user session", nickname = "logoutUser", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_LOGOUT_USER /* "/user/logout" */] @@ -163,9 +177,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Updated user", nickname = "updateUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.PUT], value = [PATH_UPDATE_USER /* "/user/{username}" */] diff --git a/samples/server/petstore/kotlin-springboot-source-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-source-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-source-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-source-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/PetApiController.kt index f99b4146027c..ad0ad481db79 100644 --- a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/PetApiController.kt +++ b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -43,9 +43,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Add a new pet to the store", nickname = "addPet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 405, message = "Invalid input")]) + value = [ApiResponse(code = 405, message = "Invalid input")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ADD_PET /* "/pet" */], @@ -62,9 +64,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Deletes a pet", nickname = "deletePet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid pet value")]) + value = [ApiResponse(code = 400, message = "Invalid pet value")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_PET /* "/pet/{petId}" */] @@ -83,9 +87,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { notes = "Multiple status values can be provided with comma separated strings", response = Pet::class, responseContainer = "List", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_FIND_PETS_BY_STATUS /* "/pet/findByStatus" */], @@ -104,9 +110,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { notes = "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", response = Pet::class, responseContainer = "List", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_FIND_PETS_BY_TAGS /* "/pet/findByTags" */], @@ -124,9 +132,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { nickname = "getPetById", notes = "Returns a single pet", response = Pet::class, - authorizations = [Authorization(value = "api_key")]) + authorizations = [Authorization(value = "api_key")] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_PET_BY_ID /* "/pet/{petId}" */], @@ -143,9 +153,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Update an existing pet", nickname = "updatePet", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")]) + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")] + ) @RequestMapping( method = [RequestMethod.PUT], value = [PATH_UPDATE_PET /* "/pet" */], @@ -162,9 +174,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { value = "Updates a pet in the store with form data", nickname = "updatePetWithForm", notes = "", - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 405, message = "Invalid input")]) + value = [ApiResponse(code = 405, message = "Invalid input")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_UPDATE_PET_WITH_FORM /* "/pet/{petId}" */], @@ -184,9 +198,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { nickname = "uploadFile", notes = "", response = ModelApiResponse::class, - authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])]) + authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)]) + value = [ApiResponse(code = 200, message = "successful operation", response = ModelApiResponse::class)] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_UPLOAD_FILE /* "/pet/{petId}/uploadImage" */], diff --git a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiController.kt index fa400197c7ca..90dfe1ddfe07 100644 --- a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiController.kt +++ b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -41,9 +41,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic @ApiOperation( value = "Delete purchase order by ID", nickname = "deleteOrder", - notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors") + notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors" + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")]) + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] @@ -61,9 +63,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic notes = "Returns a map of status codes to quantities", response = kotlin.Int::class, responseContainer = "Map", - authorizations = [Authorization(value = "api_key")]) + authorizations = [Authorization(value = "api_key")] + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.collections.Map::class, responseContainer = "Map")]) + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.collections.Map::class, responseContainer = "Map")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_INVENTORY /* "/store/inventory" */], @@ -78,9 +82,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic value = "Find purchase order by ID", nickname = "getOrderById", notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions", - response = Order::class) + response = Order::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_ORDER_BY_ID /* "/store/order/{orderId}" */], @@ -97,9 +103,11 @@ class StoreApiController(@Autowired(required = true) val service: StoreApiServic value = "Place an order for a pet", nickname = "placeOrder", notes = "", - response = Order::class) + response = Order::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")]) + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_PLACE_ORDER /* "/store/order" */], diff --git a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200) diff --git a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/UserApiController.kt index cbaedc3d378b..b3c71c688c29 100644 --- a/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/UserApiController.kt +++ b/samples/server/petstore/kotlin-springboot-springfox/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -41,9 +41,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Create user", nickname = "createUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USER /* "/user" */] @@ -58,9 +60,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Creates list of users with given input array", nickname = "createUsersWithArrayInput", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USERS_WITH_ARRAY_INPUT /* "/user/createWithArray" */] @@ -75,9 +79,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Creates list of users with given input array", nickname = "createUsersWithListInput", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USERS_WITH_LIST_INPUT /* "/user/createWithList" */] @@ -92,9 +98,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Delete user", nickname = "deleteUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.DELETE], value = [PATH_DELETE_USER /* "/user/{username}" */] @@ -110,9 +118,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) value = "Get user by user name", nickname = "getUserByName", notes = "", - response = User::class) + response = User::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_GET_USER_BY_NAME /* "/user/{username}" */], @@ -129,9 +139,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) value = "Logs user into the system", nickname = "loginUser", notes = "", - response = kotlin.String::class) + response = kotlin.String::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")]) + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_LOGIN_USER /* "/user/login" */], @@ -148,9 +160,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Logs out current logged in user session", nickname = "logoutUser", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.GET], value = [PATH_LOGOUT_USER /* "/user/logout" */] @@ -163,9 +177,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "Updated user", nickname = "updateUser", - notes = "This can only be done by the logged in user.") + notes = "This can only be done by the logged in user." + ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")]) + value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")] + ) @RequestMapping( method = [RequestMethod.PUT], value = [PATH_UPDATE_USER /* "/user/{username}" */] diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES index 59aed4399e9f..14defc430ae5 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES @@ -6,18 +6,24 @@ gradlew gradlew.bat pom.xml settings.gradle +src/main/kotlin/org/openapitools/Application.kt src/main/kotlin/org/openapitools/api/ApiUtil.kt src/main/kotlin/org/openapitools/api/Exceptions.kt -src/main/kotlin/org/openapitools/api/PetApi.kt -src/main/kotlin/org/openapitools/api/StoreApi.kt -src/main/kotlin/org/openapitools/api/UserApi.kt +src/main/kotlin/org/openapitools/api/ItemsApiController.kt +src/main/kotlin/org/openapitools/api/PetApiController.kt +src/main/kotlin/org/openapitools/api/StoreApiController.kt +src/main/kotlin/org/openapitools/api/UserApiController.kt src/main/kotlin/org/openapitools/configuration/EnumConverterConfiguration.kt src/main/kotlin/org/openapitools/model/Cat.kt src/main/kotlin/org/openapitools/model/Category.kt src/main/kotlin/org/openapitools/model/Color.kt src/main/kotlin/org/openapitools/model/Dog.kt +src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt src/main/kotlin/org/openapitools/model/ModelApiResponse.kt src/main/kotlin/org/openapitools/model/Order.kt src/main/kotlin/org/openapitools/model/Pet.kt src/main/kotlin/org/openapitools/model/Tag.kt src/main/kotlin/org/openapitools/model/User.kt +src/main/resources/application.yaml diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/build.gradle.kts b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/build.gradle.kts index 10a80f14f0ff..70561b9c46ef 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/build.gradle.kts +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/build.gradle.kts @@ -20,10 +20,6 @@ tasks.withType { kotlinOptions.jvmTarget = "11" } -tasks.bootJar { - enabled = false -} - plugins { val kotlinVersion = "1.9.25" id("org.jetbrains.kotlin.jvm") version kotlinVersion diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/pom.xml b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/pom.xml index 067cb2bbd025..afa447d2d2a4 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/pom.xml +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/pom.xml @@ -24,17 +24,17 @@ ${project.basedir}/src/test/kotlin - org.apache.maven.plugins - maven-source-plugin + org.springframework.boot + spring-boot-maven-plugin - attach-sources - jar + repackage + kotlin-maven-plugin org.jetbrains.kotlin diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/Application.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/Application.kt new file mode 100644 index 000000000000..2fe6de62479e --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/Application.kt @@ -0,0 +1,13 @@ +package org.openapitools + +import org.springframework.boot.runApplication +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.context.annotation.ComponentScan + +@SpringBootApplication +@ComponentScan(basePackages = ["org.openapitools", "org.openapitools.api", "org.openapitools.model"]) +class Application + +fun main(args: Array) { + runApplication(*args) +} diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApiController.kt new file mode 100644 index 000000000000..457d0e7251ed --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,101 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import io.swagger.annotations.ApiResponse +import io.swagger.annotations.ApiResponses +import io.swagger.annotations.Authorization +import io.swagger.annotations.AuthorizationScope +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity + +import org.springframework.web.bind.annotation.* +import org.springframework.validation.annotation.Validated +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.ItemsApiController.Companion.BASE_PATH + +import javax.validation.Valid +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size + +import kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "items", description = "The items API") +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class ItemsApiController() { + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsItemIdSomethingItemSubIdGet", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemsItemIdSomethingItemSubIdGet200Response::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item$Id}/something/{item$SubId}" */], + produces = ["application/json"] + ) + fun itemsItemIdSomethingItemSubIdGet( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$Id") itemDollarId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", required = true) @PathVariable("item\$SubId") itemDollarSubId: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$Type", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "filter\$SubType", required = false, defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") filterDollarSubType: kotlin.String, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Custom_Header_two", required = false) xCustomHeaderTwo: kotlin.String?, + @CookieValue(name = "session\$Token", required = false) sessionDollarToken: kotlin.String?, + @CookieValue(name = "session\$TokenTwo", required = false) sessionDollarTokenTwo: kotlin.String?, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + nickname = "itemsPost", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + response = ItemWithDollarAttributesAndExamples::class + ) + @ApiResponses( + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] + ) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_ITEMS_POST /* "/items" */], + produces = ["application/json"], + consumes = ["application/x-www-form-urlencoded"] + ) + fun itemsPost( + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Name", required = false) formDollarName: kotlin.String?, + @ApiParam(value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", defaultValue = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: kotlin.String, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" + const val PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET: String = "/items/{item\$Id}/something/{item\$SubId}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt similarity index 86% rename from samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApi.kt rename to samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt index 74927d98aeb4..d2bd3af5781f 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApi.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -1,8 +1,3 @@ -/** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). - * https://openapi-generator.tech - * Do not edit the class manually. -*/ package org.openapitools.api import org.openapitools.model.ModelApiResponse @@ -22,7 +17,9 @@ import org.springframework.web.bind.annotation.* import org.springframework.validation.annotation.Validated import org.springframework.web.context.request.NativeWebRequest import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.PetApiController.Companion.BASE_PATH +import javax.validation.Valid import javax.validation.constraints.DecimalMax import javax.validation.constraints.DecimalMin import javax.validation.constraints.Email @@ -31,7 +28,6 @@ import javax.validation.constraints.Min import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern import javax.validation.constraints.Size -import javax.validation.Valid import kotlin.collections.List import kotlin.collections.Map @@ -39,7 +35,8 @@ import kotlin.collections.Map @RestController @Validated @Api(value = "pet", description = "The pet API") -interface PetApi { +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class PetApiController() { @ApiOperation( @@ -59,7 +56,9 @@ interface PetApi { fun addPet( @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -79,7 +78,9 @@ interface PetApi { @ApiParam(value = "Pet id to delete", required = true) @PathVariable("petId") petId: kotlin.Long, @ApiParam(value = "") @RequestHeader(value = "api_key", required = false) apiKey: kotlin.String?, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -91,7 +92,7 @@ interface PetApi { authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"), ApiResponse(code = 400, message = "Invalid status value")] + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid status value")] ) @RequestMapping( method = [RequestMethod.GET], @@ -101,7 +102,9 @@ interface PetApi { fun findPetsByStatus( @NotNull @ApiParam(value = "Status values that need to be considered for filter", required = true, allowableValues = "available, pending, sold") @Valid @RequestParam(value = "status", required = true) status: kotlin.collections.List, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity> + ): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -113,7 +116,7 @@ interface PetApi { authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"), ApiResponse(code = 400, message = "Invalid tag value")] + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class, responseContainer = "List"),ApiResponse(code = 400, message = "Invalid tag value")] ) @RequestMapping( method = [RequestMethod.GET], @@ -123,7 +126,9 @@ interface PetApi { fun findPetsByTags( @NotNull @ApiParam(value = "Tags to filter by", required = true) @Valid @RequestParam(value = "tags", required = true) tags: kotlin.collections.List, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity> + ): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -134,7 +139,7 @@ interface PetApi { authorizations = [Authorization(value = "api_key")] ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class), ApiResponse(code = 400, message = "Invalid ID supplied"), ApiResponse(code = 404, message = "Pet not found")] + value = [ApiResponse(code = 200, message = "successful operation", response = Pet::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found")] ) @RequestMapping( method = [RequestMethod.GET], @@ -144,7 +149,9 @@ interface PetApi { fun getPetById( @ApiParam(value = "ID of pet to return", required = true) @PathVariable("petId") petId: kotlin.Long, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -154,7 +161,7 @@ interface PetApi { authorizations = [Authorization(value = "petstore_auth", scopes = [AuthorizationScope(scope = "write:pets", description = "modify pets in your account"), AuthorizationScope(scope = "read:pets", description = "read your pets")])] ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"), ApiResponse(code = 404, message = "Pet not found"), ApiResponse(code = 405, message = "Validation exception")] + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Pet not found"),ApiResponse(code = 405, message = "Validation exception")] ) @RequestMapping( method = [RequestMethod.PUT], @@ -164,7 +171,9 @@ interface PetApi { fun updatePet( @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -186,7 +195,9 @@ interface PetApi { @ApiParam(value = "Updated name of the pet") @Valid @RequestParam(value = "name", required = false) name: kotlin.String?, @ApiParam(value = "Updated status of the pet") @Valid @RequestParam(value = "status", required = false) status: kotlin.String?, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -210,10 +221,13 @@ interface PetApi { @ApiParam(value = "") @Valid @RequestParam(value = "additionalMetadata", required = false) additionalMetadata: kotlin.String?, @ApiParam(value = "file detail") @Valid @RequestPart("file", required = false) file: org.springframework.web.multipart.MultipartFile, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } companion object { //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" const val PATH_ADD_PET: String = "/pet" const val PATH_DELETE_PET: String = "/pet/{petId}" const val PATH_FIND_PETS_BY_STATUS: String = "/pet/findByStatus" diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt similarity index 82% rename from samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApi.kt rename to samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt index 40c176b58ce1..685b3f1a68aa 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApi.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -1,8 +1,3 @@ -/** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). - * https://openapi-generator.tech - * Do not edit the class manually. -*/ package org.openapitools.api import org.openapitools.model.Order @@ -21,7 +16,9 @@ import org.springframework.web.bind.annotation.* import org.springframework.validation.annotation.Validated import org.springframework.web.context.request.NativeWebRequest import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.StoreApiController.Companion.BASE_PATH +import javax.validation.Valid import javax.validation.constraints.DecimalMax import javax.validation.constraints.DecimalMin import javax.validation.constraints.Email @@ -30,7 +27,6 @@ import javax.validation.constraints.Min import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern import javax.validation.constraints.Size -import javax.validation.Valid import kotlin.collections.List import kotlin.collections.Map @@ -38,7 +34,8 @@ import kotlin.collections.Map @RestController @Validated @Api(value = "store", description = "The store API") -interface StoreApi { +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class StoreApiController() { @ApiOperation( @@ -47,7 +44,7 @@ interface StoreApi { notes = "" ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid ID supplied"), ApiResponse(code = 404, message = "Order not found")] + value = [ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] ) @RequestMapping( method = [RequestMethod.DELETE], @@ -56,7 +53,9 @@ interface StoreApi { fun deleteOrder( @ApiParam(value = "", required = true) @PathVariable("orderId") orderId: kotlin.String, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -75,7 +74,9 @@ interface StoreApi { value = [PATH_GET_INVENTORY /* "/store/inventory" */], produces = ["application/json"] ) - fun getInventory(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity> + fun getInventory(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -85,7 +86,7 @@ interface StoreApi { response = Order::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class), ApiResponse(code = 400, message = "Invalid ID supplied"), ApiResponse(code = 404, message = "Order not found")] + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid ID supplied"),ApiResponse(code = 404, message = "Order not found")] ) @RequestMapping( method = [RequestMethod.GET], @@ -95,7 +96,9 @@ interface StoreApi { fun getOrderById( @Min(value=1) @Max(value=5) @ApiParam(value = "", required = true) @PathVariable("orderId") orderId: kotlin.Int, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -105,7 +108,7 @@ interface StoreApi { response = Order::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = Order::class), ApiResponse(code = 400, message = "Invalid Order")] + value = [ApiResponse(code = 200, message = "successful operation", response = Order::class),ApiResponse(code = 400, message = "Invalid Order")] ) @RequestMapping( method = [RequestMethod.POST], @@ -116,10 +119,13 @@ interface StoreApi { fun placeOrder( @ApiParam(value = "", required = true) @Valid @RequestBody order: Order, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } companion object { //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" const val PATH_DELETE_ORDER: String = "/store/order/{orderId}" const val PATH_GET_INVENTORY: String = "/store/inventory" const val PATH_GET_ORDER_BY_ID: String = "/store/order/{orderId}" diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt similarity index 82% rename from samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApi.kt rename to samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt index db017f3558b1..f257f0533cc5 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApi.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -1,8 +1,3 @@ -/** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.18.0-SNAPSHOT). - * https://openapi-generator.tech - * Do not edit the class manually. -*/ package org.openapitools.api import org.openapitools.model.User @@ -21,7 +16,9 @@ import org.springframework.web.bind.annotation.* import org.springframework.validation.annotation.Validated import org.springframework.web.context.request.NativeWebRequest import org.springframework.beans.factory.annotation.Autowired +import org.openapitools.api.UserApiController.Companion.BASE_PATH +import javax.validation.Valid import javax.validation.constraints.DecimalMax import javax.validation.constraints.DecimalMin import javax.validation.constraints.Email @@ -30,7 +27,6 @@ import javax.validation.constraints.Min import javax.validation.constraints.NotNull import javax.validation.constraints.Pattern import javax.validation.constraints.Size -import javax.validation.Valid import kotlin.collections.List import kotlin.collections.Map @@ -38,7 +34,8 @@ import kotlin.collections.Map @RestController @Validated @Api(value = "user", description = "The user API") -interface UserApi { +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class UserApiController() { @ApiOperation( @@ -57,7 +54,9 @@ interface UserApi { fun createUser( @ApiParam(value = "", required = true) @Valid @RequestBody user: User, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -76,7 +75,9 @@ interface UserApi { fun createUsersWithArrayInput( @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -95,7 +96,9 @@ interface UserApi { fun createUsersWithListInput( @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -104,7 +107,7 @@ interface UserApi { notes = "" ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid username supplied"), ApiResponse(code = 404, message = "User not found")] + value = [ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] ) @RequestMapping( method = [RequestMethod.DELETE], @@ -113,7 +116,9 @@ interface UserApi { fun deleteUser( @ApiParam(value = "", required = true) @PathVariable("username") username: kotlin.String, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -123,7 +128,7 @@ interface UserApi { response = User::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = User::class), ApiResponse(code = 400, message = "Invalid username supplied"), ApiResponse(code = 404, message = "User not found")] + value = [ApiResponse(code = 200, message = "successful operation", response = User::class),ApiResponse(code = 400, message = "Invalid username supplied"),ApiResponse(code = 404, message = "User not found")] ) @RequestMapping( method = [RequestMethod.GET], @@ -133,7 +138,9 @@ interface UserApi { fun getUserByName( @ApiParam(value = "", required = true) @PathVariable("username") username: kotlin.String, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -143,7 +150,7 @@ interface UserApi { response = kotlin.String::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class), ApiResponse(code = 400, message = "Invalid username/password supplied")] + value = [ApiResponse(code = 200, message = "successful operation", response = kotlin.String::class),ApiResponse(code = 400, message = "Invalid username/password supplied")] ) @RequestMapping( method = [RequestMethod.GET], @@ -154,7 +161,9 @@ interface UserApi { @NotNull @ApiParam(value = "", required = true) @Valid @RequestParam(value = "username", required = true) username: kotlin.String, @NotNull @ApiParam(value = "", required = true) @Valid @RequestParam(value = "password", required = true) password: kotlin.String, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -169,7 +178,9 @@ interface UserApi { method = [RequestMethod.GET], value = [PATH_LOGOUT_USER /* "/user/logout" */] ) - fun logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity + fun logoutUser(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } @ApiOperation( @@ -178,7 +189,7 @@ interface UserApi { notes = "" ) @ApiResponses( - value = [ApiResponse(code = 400, message = "Invalid user supplied"), ApiResponse(code = 404, message = "User not found")] + value = [ApiResponse(code = 400, message = "Invalid user supplied"),ApiResponse(code = 404, message = "User not found")] ) @RequestMapping( method = [RequestMethod.PUT], @@ -189,10 +200,13 @@ interface UserApi { @ApiParam(value = "", required = true) @PathVariable("username") username: kotlin.String, @ApiParam(value = "", required = true) @Valid @RequestBody user: User, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } companion object { //for your own safety never directly reuse these path definitions in tests + const val BASE_PATH: String = "/v2" const val PATH_CREATE_USER: String = "/user" const val PATH_CREATE_USERS_WITH_ARRAY_INPUT: String = "/user/createWithArray" const val PATH_CREATE_USERS_WITH_LIST_INPUT: String = "/user/createWithList" diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt new file mode 100644 index 000000000000..f09c9e4036f2 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param dollarName SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemWithDollarAttributesAndExamples( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$id") val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("\$name") val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt new file mode 100644 index 000000000000..ce959d5caa44 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt @@ -0,0 +1,42 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * + * @param itemDollarId SQ = "; SBS = \; DBS = \\; SD = $some + * @param nameDollarValue SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailsDollarInfo + */ +data class ItemsItemIdSomethingItemSubIdGet200Response( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("item\$Id") val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("name\$Value") val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..f1572d669057 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt @@ -0,0 +1,36 @@ +package org.openapitools.model + +import java.util.Locale +import java.util.Objects +import com.fasterxml.jackson.annotation.JsonProperty +import java.io.Serializable +import javax.validation.constraints.DecimalMax +import javax.validation.constraints.DecimalMin +import javax.validation.constraints.Email +import javax.validation.constraints.Max +import javax.validation.constraints.Min +import javax.validation.constraints.NotNull +import javax.validation.constraints.Pattern +import javax.validation.constraints.Size +import javax.validation.Valid +import io.swagger.annotations.ApiModelProperty + +/** + * SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarOne SQ = "; SBS = \; DBS = \\; SD = $some + * @param detailDollarTwo SQ = "; SBS = \; DBS = \\; SD = $some + */ +data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( + + @ApiModelProperty(example = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$One") val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", + + @ApiModelProperty(example = "42", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt new file mode 100644 index 000000000000..4e076731c962 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt @@ -0,0 +1,46 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdGet200Response +import org.junit.jupiter.api.Test +import org.springframework.http.ResponseEntity + +class ItemsApiTest { + + private val api: ItemsApiController = ItemsApiController() + + /** + * To test ItemsApiController.itemsItemIdGet + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsItemIdGetTest() { + val itemDollarId: kotlin.String = TODO() + val filterDollarType: kotlin.String = TODO() + val xCustomDollarHeader: kotlin.String? = TODO() + val sessionDollarToken: kotlin.String? = TODO() + val request: javax.servlet.http.HttpServletRequest = TODO() + val response: ResponseEntity = api.itemsItemIdGet(itemDollarId, filterDollarType, xCustomDollarHeader, sessionDollarToken, request) + + // TODO: test validations + } + + /** + * To test ItemsApiController.itemsPost + * + * @throws ApiException + * if the Api call fails + */ + @Test + fun itemsPostTest() { + val xPostDollarHeader: kotlin.String? = TODO() + val formDollarName: kotlin.String? = TODO() + val formDollarValue: kotlin.String? = TODO() + val request: javax.servlet.http.HttpServletRequest = TODO() + val response: ResponseEntity = api.itemsPost(xPostDollarHeader, formDollarName, formDollarValue, request) + + // TODO: test validations + } +} diff --git a/samples/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt b/samples/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- a/samples/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt +++ b/samples/server/petstore/kotlin-springboot/src/main/kotlin/org/openapitools/api/StoreApiService.kt @@ -6,7 +6,7 @@ interface StoreApiService { /** * DELETE /store/order/{orderId} : Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * * @param orderId ID of the order that needs to be deleted (required) * @return Invalid ID supplied (status code 400) @@ -26,7 +26,7 @@ interface StoreApiService { /** * GET /store/order/{orderId} : Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions * * @param orderId ID of pet that needs to be fetched (required) * @return successful operation (status code 200)