From ad798ded6f78a24efc853526493ed34d26f99bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 00:18:34 +0100 Subject: [PATCH 01/29] break tests by introducing problematic dollar --- .../3_0/kotlin/petstore-with-tags.yaml | 59 +++++++++++++++ .../petstore-with-x-kotlin-implements.yaml | 60 ++++++++++++++- .../.openapi-generator/FILES | 6 ++ .../kotlin/org/openapitools/api/ItemsApi.kt | 73 +++++++++++++++++++ .../openapitools/api/ItemsApiController.kt | 22 ++++++ .../org/openapitools/api/ItemsApiDelegate.kt | 28 +++++++ .../ItemWithDollarAttributesAndExamples.kt | 36 +++++++++ .../model/ItemsItemIdGet200Response.kt | 42 +++++++++++ .../ItemsItemIdGet200ResponseDetailsInfo.kt | 36 +++++++++ .../.openapi-generator/FILES | 4 + .../kotlin/org/openapitools/api/ItemsApi.kt | 68 +++++++++++++++++ .../ItemWithDollarAttributesAndExamples.kt | 36 +++++++++ .../model/ItemsItemIdGet200Response.kt | 42 +++++++++++ .../ItemsItemIdGet200ResponseDetailsInfo.kt | 36 +++++++++ 14 files changed, 547 insertions(+), 1 deletion(-) create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt 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..cc9cef6857c9 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 @@ -654,6 +654,53 @@ paths: 404: description: User not found content: { } + /items/{item$Id}: + get: + summary: "Retrieve item by $Id" + description: "Get an item using the $symbol in parameter and property names." + parameters: + - name: "item$Id" + in: path + required: true + description: "The $prefixed ID of the item." + schema: + type: string + example: "item$123" + - name: "filter$Type" + in: query + required: false + description: "Optional $filter for item type." + schema: + type: string + example: "type$A" + responses: + '200': + description: "Successful $response" + content: + application/json: + schema: + type: object + properties: + item$Id: + type: string + description: "The $ID of the item." + example: "item$123" + name$Value: + type: string + description: "The $name of the item." + example: "Item$Name" + details$Info: + type: object + description: "Nested object with $keys." + properties: + detail$One: + type: string + description: "First $detail" + example: "Detail$1" + detail$Two: + type: integer + description: "Second $detail" + example: 42 components: schemas: Order: @@ -786,6 +833,18 @@ components: message: type: string description: Describes the result of uploading an image resource + ItemWithDollarAttributesAndExamples: + type: object + description: "A schema demonstrating $usage in properties." + properties: + $id: + type: string + description: "$ID property" + example: "$item123" + $name: + type: string + description: "$Name property" + example: "$ItemName" 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..29820efcedc2 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,53 @@ paths: description: Invalid username supplied '404': description: User not found - + /items/{item$Id}: + get: + summary: "Retrieve item by $Id" + description: "Get an item using the $symbol in parameter and property names." + parameters: + - name: "item$Id" + in: path + required: true + description: "The $prefixed ID of the item." + schema: + type: string + example: "item$123" + - name: "filter$Type" + in: query + required: false + description: "Optional $filter for item type." + schema: + type: string + example: "type$A" + responses: + '200': + description: "Successful $response" + content: + application/json: + schema: + type: object + properties: + item$Id: + type: string + description: "The $ID of the item." + example: "item$123" + name$Value: + type: string + description: "The $name of the item." + example: "Item$Name" + details$Info: + type: object + description: "Nested object with $keys." + properties: + detail$One: + type: string + description: "First $detail" + example: "Detail$1" + detail$Two: + type: integer + description: "Second $detail" + example: 42 components: securitySchemes: petstore_auth: @@ -644,3 +690,15 @@ components: type: string message: type: string + ItemWithDollarAttributesAndExamples: + type: object + description: "A schema demonstrating $usage in properties." + properties: + $id: + type: string + description: "$ID property" + example: "$item123" + $name: + type: string + description: "$Name property" + example: "$ItemName" \ No newline at end of file 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..6e78c29b924d 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/ItemsItemIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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..34019f84183f --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApi.kt @@ -0,0 +1,73 @@ +/** + * 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.ItemsItemIdGet200Response +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 = "Retrieve item by $Id", + nickname = "itemsItemIdGet", + notes = "Get an item using the $symbol in parameter and property names.", + response = ItemsItemIdGet200Response::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "Successful $response", response = ItemsItemIdGet200Response::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], + produces = ["application/json"] + ) + suspend fun itemsItemIdGet( + @ApiParam(value = "The $prefixed ID of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, + @ApiParam(value = "Optional $filter for item type.") @Valid @RequestParam(value = "filter$Type", required = false) filterDollarType: kotlin.String?, + @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange + ): ResponseEntity { + return getDelegate().itemsItemIdGet(itemDollarId, filterDollarType, exchange) + } + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_GET: String = "/items/{item$Id}" + } +} 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..abe059ef7aac --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt @@ -0,0 +1,28 @@ +package org.openapitools.api + +import org.openapitools.model.ItemsItemIdGet200Response +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#itemsItemIdGet + */ + suspend fun itemsItemIdGet(itemDollarId: kotlin.String, + filterDollarType: 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..6d5007f695f7 --- /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 + +/** + * A schema demonstrating $usage in properties. + * @param dollarId $ID property + * @param dollarName $Name property + */ +data class ItemWithDollarAttributesAndExamples( + + @ApiModelProperty(example = "\$item123", value = "\$ID property") + @get:JsonProperty("$id") val dollarId: kotlin.String? = null, + + @ApiModelProperty(example = "\$ItemName", value = "\$Name property") + @get:JsonProperty("$name") val dollarName: kotlin.String? = 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/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt new file mode 100644 index 000000000000..9519c951ec61 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.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.ItemsItemIdGet200ResponseDetailsInfo +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 The $ID of the item. + * @param nameDollarValue The $name of the item. + * @param detailsDollarInfo + */ +data class ItemsItemIdGet200Response( + + @ApiModelProperty(example = "item\$123", value = "The \$ID of the item.") + @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = null, + + @ApiModelProperty(example = "Item\$Name", value = "The \$name of the item.") + @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = null, + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("details$Info") val detailsDollarInfo: ItemsItemIdGet200ResponseDetailsInfo? = 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/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..49f918607272 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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 + +/** + * Nested object with $keys. + * @param detailDollarOne First $detail + * @param detailDollarTwo Second $detail + */ +data class ItemsItemIdGet200ResponseDetailsInfo( + + @ApiModelProperty(example = "Detail\$1", value = "First \$detail") + @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = null, + + @ApiModelProperty(example = "42", value = "Second \$detail") + @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/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES index 59aed4399e9f..3963f9d13b02 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 @@ -8,6 +8,7 @@ pom.xml settings.gradle 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 @@ -16,6 +17,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/ItemsItemIdGet200Response.kt +src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt new file mode 100644 index 000000000000..930e8e64ded3 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt @@ -0,0 +1,68 @@ +/** + * 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.ItemsItemIdGet200Response +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 kotlin.collections.List +import kotlin.collections.Map + +@RestController +@Validated +@Api(value = "items", description = "The items API") +interface ItemsApi { + + + @ApiOperation( + value = "Retrieve item by $Id", + nickname = "itemsItemIdGet", + notes = "Get an item using the $symbol in parameter and property names.", + response = ItemsItemIdGet200Response::class + ) + @ApiResponses( + value = [ApiResponse(code = 200, message = "Successful $response", response = ItemsItemIdGet200Response::class)] + ) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], + produces = ["application/json"] + ) + fun itemsItemIdGet( + @ApiParam(value = "The $prefixed ID of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, + @ApiParam(value = "Optional $filter for item type.") @Valid @RequestParam(value = "filter$Type", required = false) filterDollarType: kotlin.String?, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity + + companion object { + //for your own safety never directly reuse these path definitions in tests + const val PATH_ITEMS_ITEM_ID_GET: String = "/items/{item$Id}" + } +} 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..6d5007f695f7 --- /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 + +/** + * A schema demonstrating $usage in properties. + * @param dollarId $ID property + * @param dollarName $Name property + */ +data class ItemWithDollarAttributesAndExamples( + + @ApiModelProperty(example = "\$item123", value = "\$ID property") + @get:JsonProperty("$id") val dollarId: kotlin.String? = null, + + @ApiModelProperty(example = "\$ItemName", value = "\$Name property") + @get:JsonProperty("$name") val dollarName: kotlin.String? = 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/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt new file mode 100644 index 000000000000..9519c951ec61 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.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.ItemsItemIdGet200ResponseDetailsInfo +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 The $ID of the item. + * @param nameDollarValue The $name of the item. + * @param detailsDollarInfo + */ +data class ItemsItemIdGet200Response( + + @ApiModelProperty(example = "item\$123", value = "The \$ID of the item.") + @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = null, + + @ApiModelProperty(example = "Item\$Name", value = "The \$name of the item.") + @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = null, + + @field:Valid + @ApiModelProperty(example = "null", value = "") + @get:JsonProperty("details$Info") val detailsDollarInfo: ItemsItemIdGet200ResponseDetailsInfo? = 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/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt new file mode 100644 index 000000000000..49f918607272 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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 + +/** + * Nested object with $keys. + * @param detailDollarOne First $detail + * @param detailDollarTwo Second $detail + */ +data class ItemsItemIdGet200ResponseDetailsInfo( + + @ApiModelProperty(example = "Detail\$1", value = "First \$detail") + @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = null, + + @ApiModelProperty(example = "42", value = "Second \$detail") + @get:JsonProperty("detail$Two") val detailDollarTwo: kotlin.Int? = null +) : Serializable { + + companion object { + private const val serialVersionUID: kotlin.Long = 1 + } +} + From b25bb651ff6f72e11c87c10a06bc68ef266ead8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 12:20:58 +0100 Subject: [PATCH 02/29] break everything by more defaults and dollars and double quotes --- ...otlin-spring-boot-x-kotlin-implements.yaml | 2 +- .../3_0/kotlin/petstore-with-tags.yaml | 95 ++++++-- .../petstore-with-x-kotlin-implements.yaml | 95 ++++++-- .../kotlin/org/openapitools/api/ItemsApi.kt | 41 +++- .../org/openapitools/api/ItemsApiDelegate.kt | 14 +- .../ItemWithDollarAttributesAndExamples.kt | 14 +- .../model/ItemsItemIdGet200Response.kt | 12 +- .../ItemsItemIdGet200ResponseDetailsInfo.kt | 12 +- .../.openapi-generator/FILES | 10 +- .../build.gradle.kts | 4 - .../pom.xml | 8 +- .../kotlin/org/openapitools/Application.kt | 13 + .../kotlin/org/openapitools/api/ItemsApi.kt | 10 +- .../openapitools/api/ItemsApiController.kt | 93 ++++++++ .../org/openapitools/api/PetApiController.kt | 224 ++++++++++++++++++ .../openapitools/api/StoreApiController.kt | 126 ++++++++++ .../org/openapitools/api/UserApiController.kt | 203 ++++++++++++++++ .../ItemWithDollarAttributesAndExamples.kt | 14 +- .../model/ItemsItemIdGet200Response.kt | 12 +- .../ItemsItemIdGet200ResponseDetailsInfo.kt | 12 +- .../org/openapitools/api/ItemsApiTest.kt | 46 ++++ 21 files changed, 957 insertions(+), 103 deletions(-) create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/Application.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt 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/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 cc9cef6857c9..0107e77cb897 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 @@ -656,26 +656,41 @@ paths: content: { } /items/{item$Id}: get: - summary: "Retrieve item by $Id" - description: "Get an item using the $symbol in parameter and property names." + summary: "Retrieve item \"by\" $Id" + description: "Get an item using the $symbol in \"parameter\" and property names." parameters: - name: "item$Id" in: path required: true - description: "The $prefixed ID of the item." + description: "The $prefixed \"ID\" of the item." schema: type: string - example: "item$123" + example: "i\"te\"m$123" - name: "filter$Type" in: query required: false - description: "Optional $filter for item type." + description: "Optional $filter \"for\" item type." schema: type: string - example: "type$A" + example: "\"type$A\"" + "default": "\"type\"$ADefault" + - name: "X-Custom$Header" + in: header + required: false + description: "Header param with $" + schema: + type: string + example: "hdr$val" + - name: "session$Token" + in: cookie + required: false + description: "Cookie param with $dol\"lar\"" + schema: + type: string + example: "cookie$a\"bc\"" responses: '200': - description: "Successful $response" + description: "\"Successful $response\"" content: application/json: schema: @@ -683,24 +698,62 @@ paths: properties: item$Id: type: string - description: "The $ID of the item." - example: "item$123" + description: "The $ID of \"the\" item." + example: "\"item$123\"" + default: "Item$Id\"Default\"" name$Value: type: string - description: "The $name of the item." - example: "Item$Name" + description: "The $name \"of the \"item." + example: "\"Item\"$Name" + default: "Item$\"NameDefault\"" details$Info: type: object - description: "Nested object with $keys." + description: "Nested \"object\" with $keys." properties: detail$One: type: string - description: "First $detail" - example: "Detail$1" + description: "\"First $detail\"" + example: "\"Detail$1\"" + default: "\"Detail\"$1Default" detail$Two: type: integer - description: "Second $detail" + description: "\"Second\" $detail" example: 42 + /items: + post: + summary: "Create $it\"em\"" + description: "POST using form params and $every\"where\"." + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + form$Name: + type: string + description: "Form field with $issue \"fdsfsd\"" + example: "Name$X\"fsdfsd\"" + form$Value: + type: string + description: "Another $form \"field\"" + example: "Val$Y\"fdfsdf\"" + parameters: + - name: "X-Post$Header" + in: header + required: false + description: "Header \"param\" with $" + schema: + type: string + example: "hdr$po\"st\"" + + responses: + "201": + description: "$test \"created\"" + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" components: schemas: Order: @@ -835,16 +888,18 @@ components: description: Describes the result of uploading an image resource ItemWithDollarAttributesAndExamples: type: object - description: "A schema demonstrating $usage in properties." + description: "A schema \"demonstrating\" $usage in properties." properties: $id: type: string - description: "$ID property" - example: "$item123" + description: "\"$ID property\"" + example: "$item\"123\"" + default: "$item\"123Default\"" $name: type: string - description: "$Name property" - example: "$ItemName" + description: "$Name\" property\"" + example: "$Item\"Name" + default: "$ItemNameDefault\"" 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 29820efcedc2..3565d8f0768d 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 @@ -488,26 +488,41 @@ paths: description: User not found /items/{item$Id}: get: - summary: "Retrieve item by $Id" - description: "Get an item using the $symbol in parameter and property names." + summary: "Retrieve item \"by\" $Id" + description: "Get an item using the $symbol in \"parameter\" and property names." parameters: - name: "item$Id" in: path required: true - description: "The $prefixed ID of the item." + description: "The $prefixed \"ID\" of the item." schema: type: string - example: "item$123" + example: "i\"te\"m$123" - name: "filter$Type" in: query required: false - description: "Optional $filter for item type." + description: "Optional $filter \"for\" item type." schema: type: string - example: "type$A" + example: "\"type$A\"" + "default": "\"type\"$ADefault" + - name: "X-Custom$Header" + in: header + required: false + description: "Header param with $" + schema: + type: string + example: "hdr$val" + - name: "session$Token" + in: cookie + required: false + description: "Cookie param with $dol\"lar\"" + schema: + type: string + example: "cookie$a\"bc\"" responses: '200': - description: "Successful $response" + description: "\"Successful $response\"" content: application/json: schema: @@ -515,24 +530,62 @@ paths: properties: item$Id: type: string - description: "The $ID of the item." - example: "item$123" + description: "The $ID of \"the\" item." + example: "\"item$123\"" + default: "Item$Id\"Default\"" name$Value: type: string - description: "The $name of the item." - example: "Item$Name" + description: "The $name \"of the \"item." + example: "\"Item\"$Name" + default: "Item$\"NameDefault\"" details$Info: type: object - description: "Nested object with $keys." + description: "Nested \"object\" with $keys." properties: detail$One: type: string - description: "First $detail" - example: "Detail$1" + description: "\"First $detail\"" + example: "\"Detail$1\"" + default: "\"Detail\"$1Default" detail$Two: type: integer - description: "Second $detail" + description: "\"Second\" $detail" example: 42 + /items: + post: + summary: "Create $it\"em\"" + description: "POST using form params and $every\"where\"." + requestBody: + required: true + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + form$Name: + type: string + description: "Form field with $issue \"fdsfsd\"" + example: "Name$X\"fsdfsd\"" + form$Value: + type: string + description: "Another $form \"field\"" + example: "Val$Y\"fdfsdf\"" + parameters: + - name: "X-Post$Header" + in: header + required: false + description: "Header \"param\" with $" + schema: + type: string + example: "hdr$po\"st\"" + + responses: + "201": + description: "$test \"created\"" + content: + application/json: + schema: + $ref: "#/components/schemas/ItemWithDollarAttributesAndExamples" components: securitySchemes: petstore_auth: @@ -692,13 +745,15 @@ components: type: string ItemWithDollarAttributesAndExamples: type: object - description: "A schema demonstrating $usage in properties." + description: "A schema \"demonstrating\" $usage in properties." properties: $id: type: string - description: "$ID property" - example: "$item123" + description: "\"$ID property\"" + example: "$item\"123\"" + default: "$item\"123Default\"" $name: type: string - description: "$Name property" - example: "$ItemName" \ No newline at end of file + description: "$Name\" property\"" + example: "$Item\"Name" + default: "$ItemNameDefault\"" \ No newline at end of file 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 index 34019f84183f..3320da5255ec 100644 --- 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 @@ -5,6 +5,7 @@ */ package org.openapitools.api +import org.openapitools.model.ItemWithDollarAttributesAndExamples import org.openapitools.model.ItemsItemIdGet200Response import io.swagger.annotations.Api import io.swagger.annotations.ApiOperation @@ -45,13 +46,13 @@ interface ItemsApi { @ApiOperation( - value = "Retrieve item by $Id", + value = "Retrieve item \"by\" $Id", nickname = "itemsItemIdGet", - notes = "Get an item using the $symbol in parameter and property names.", + notes = "Get an item using the $symbol in \"parameter\" and property names.", response = ItemsItemIdGet200Response::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "Successful $response", response = ItemsItemIdGet200Response::class)] + value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)] ) @RequestMapping( method = [RequestMethod.GET], @@ -59,15 +60,43 @@ interface ItemsApi { produces = ["application/json"] ) suspend fun itemsItemIdGet( - @ApiParam(value = "The $prefixed ID of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, - @ApiParam(value = "Optional $filter for item type.") @Valid @RequestParam(value = "filter$Type", required = false) filterDollarType: kotlin.String?, + @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, + @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, + @ApiParam(value = "Header param with $") @RequestHeader(value = "X-Custom$Header", required = false) xCustomDollarHeader: kotlin.String?, + @CookieValue(name = "session$Token", required = false) sessionDollarToken: kotlin.String?, @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange ): ResponseEntity { - return getDelegate().itemsItemIdGet(itemDollarId, filterDollarType, exchange) + return getDelegate().itemsItemIdGet(itemDollarId, filterDollarType, xCustomDollarHeader, sessionDollarToken, exchange) + } + + + @ApiOperation( + value = "Create $it\"em\"", + nickname = "itemsPost", + notes = "POST using form params and $every\"where\".", + response = ItemWithDollarAttributesAndExamples::class + ) + @ApiResponses( + value = [ApiResponse(code = 201, message = "$test \"created\"", 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 = "Header \"param\" with $") @RequestHeader(value = "X-Post$Header", required = false) xPostDollarHeader: kotlin.String?, + @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, + @ApiParam(value = "Another $form \\\"field\\\"") @Valid @RequestParam(value = "form$Value", required = false) formDollarValue: kotlin.String?, + @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange + ): ResponseEntity { + return getDelegate().itemsPost(xPostDollarHeader, formDollarName, formDollarValue, exchange) } companion object { //for your own safety never directly reuse these path definitions in tests const val PATH_ITEMS_ITEM_ID_GET: String = "/items/{item$Id}" + 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/ItemsApiDelegate.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt index abe059ef7aac..332684082fe5 100644 --- 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 @@ -1,5 +1,6 @@ package org.openapitools.api +import org.openapitools.model.ItemWithDollarAttributesAndExamples import org.openapitools.model.ItemsItemIdGet200Response import org.springframework.http.HttpStatus import org.springframework.http.MediaType @@ -22,7 +23,18 @@ interface ItemsApiDelegate { * @see ItemsApi#itemsItemIdGet */ suspend fun itemsItemIdGet(itemDollarId: kotlin.String, - filterDollarType: kotlin.String?, + filterDollarType: kotlin.String, + xCustomDollarHeader: kotlin.String?, + sessionDollarToken: kotlin.String?, exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity + + /** + * @see ItemsApi#itemsPost + */ + suspend fun itemsPost(xPostDollarHeader: 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 index 6d5007f695f7..f130e20d4448 100644 --- 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 @@ -16,17 +16,17 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * A schema demonstrating $usage in properties. - * @param dollarId $ID property - * @param dollarName $Name property + * A schema \"demonstrating\" $usage in properties. + * @param dollarId \"$ID property\" + * @param dollarName $Name\" property\" */ data class ItemWithDollarAttributesAndExamples( - @ApiModelProperty(example = "\$item123", value = "\$ID property") - @get:JsonProperty("$id") val dollarId: kotlin.String? = null, + @ApiModelProperty(example = "\$item\"123\"", value = "\"$ID property\"") + @get:JsonProperty("$id") val dollarId: kotlin.String? = "$item\"123Default\"", - @ApiModelProperty(example = "\$ItemName", value = "\$Name property") - @get:JsonProperty("$name") val dollarName: kotlin.String? = null + @ApiModelProperty(example = "\$Item\"Name", value = "$Name\" property\"") + @get:JsonProperty("$name") val dollarName: kotlin.String? = "$ItemNameDefault\"" ) : Serializable { companion object { diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt index 9519c951ec61..d6cc8540cd38 100644 --- a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt @@ -18,17 +18,17 @@ import io.swagger.annotations.ApiModelProperty /** * - * @param itemDollarId The $ID of the item. - * @param nameDollarValue The $name of the item. + * @param itemDollarId The $ID of \"the\" item. + * @param nameDollarValue The $name \"of the \"item. * @param detailsDollarInfo */ data class ItemsItemIdGet200Response( - @ApiModelProperty(example = "item\$123", value = "The \$ID of the item.") - @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = null, + @ApiModelProperty(example = "\"item\$123\"", value = "The $ID of \"the\" item.") + @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = "Item$Id\"Default\"", - @ApiModelProperty(example = "Item\$Name", value = "The \$name of the item.") - @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = null, + @ApiModelProperty(example = "\"Item\"\$Name", value = "The $name \"of the \"item.") + @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = "Item$\"NameDefault\"", @field:Valid @ApiModelProperty(example = "null", value = "") diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt index 49f918607272..83e4cc53b514 100644 --- a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt +++ b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt @@ -16,16 +16,16 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * Nested object with $keys. - * @param detailDollarOne First $detail - * @param detailDollarTwo Second $detail + * Nested \"object\" with $keys. + * @param detailDollarOne \"First $detail\" + * @param detailDollarTwo \"Second\" $detail */ data class ItemsItemIdGet200ResponseDetailsInfo( - @ApiModelProperty(example = "Detail\$1", value = "First \$detail") - @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = null, + @ApiModelProperty(example = "\"Detail\$1\"", value = "\"First $detail\"") + @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = "\"Detail\"$1Default", - @ApiModelProperty(example = "42", value = "Second \$detail") + @ApiModelProperty(example = "42", value = "\"Second\" $detail") @get:JsonProperty("detail$Two") val detailDollarTwo: kotlin.Int? = null ) : Serializable { 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 3963f9d13b02..edfc8025b478 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,12 +6,13 @@ 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/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/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 @@ -25,3 +26,4 @@ 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/ItemsApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt index 930e8e64ded3..b5a8e5e5e14d 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt @@ -42,13 +42,13 @@ interface ItemsApi { @ApiOperation( - value = "Retrieve item by $Id", + value = "Retrieve item \"by\" $Id", nickname = "itemsItemIdGet", - notes = "Get an item using the $symbol in parameter and property names.", + notes = "Get an item using the $symbol in \"parameter\" and property names.", response = ItemsItemIdGet200Response::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "Successful $response", response = ItemsItemIdGet200Response::class)] + value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)] ) @RequestMapping( method = [RequestMethod.GET], @@ -56,8 +56,8 @@ interface ItemsApi { produces = ["application/json"] ) fun itemsItemIdGet( - @ApiParam(value = "The $prefixed ID of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, - @ApiParam(value = "Optional $filter for item type.") @Valid @RequestParam(value = "filter$Type", required = false) filterDollarType: kotlin.String?, + @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, + @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest ): ResponseEntity 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..453ad81392cd --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,93 @@ +package org.openapitools.api + +import org.openapitools.model.ItemWithDollarAttributesAndExamples +import org.openapitools.model.ItemsItemIdGet200Response +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 = "Retrieve item \"by\" $Id", + nickname = "itemsItemIdGet", + notes = "Get an item using the $symbol in \"parameter\" and property names.", + response = ItemsItemIdGet200Response::class) + @ApiResponses( + value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)]) + @RequestMapping( + method = [RequestMethod.GET], + value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], + produces = ["application/json"] + ) + fun itemsItemIdGet( + @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, + @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, + @ApiParam(value = "Header param with $") @RequestHeader(value = "X-Custom$Header", required = false) xCustomDollarHeader: kotlin.String?, + @CookieValue(name = "session$Token", required = false) sessionDollarToken: kotlin.String?, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "Create $it\"em\"", + nickname = "itemsPost", + notes = "POST using form params and $every\"where\".", + response = ItemWithDollarAttributesAndExamples::class) + @ApiResponses( + value = [ApiResponse(code = 201, message = "$test \"created\"", 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 = "Header \"param\" with $") @RequestHeader(value = "X-Post$Header", required = false) xPostDollarHeader: kotlin.String?, + @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, + @ApiParam(value = "Another $form \\\"field\\\"") @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_GET: String = "/items/{item$Id}" + const val PATH_ITEMS_POST: String = "/items" + } +} diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt new file mode 100644 index 000000000000..8eab3c69bcc6 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -0,0 +1,224 @@ +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 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 +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") +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class PetApiController() { + + + @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"] + ) + fun addPet( + @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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?, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/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, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/json"] + ) + 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> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/json"] + ) + 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 { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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"] + ) + fun updatePet( + @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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?, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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 = "") @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 { + 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-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt new file mode 100644 index 000000000000..944a8f92c6ed --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -0,0 +1,126 @@ +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 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 +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") +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class StoreApiController() { + + + @ApiOperation( + value = "Delete purchase order by ID", + nickname = "deleteOrder", + notes = "") + @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 = "", required = true) @PathVariable("orderId") orderId: kotlin.String, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "Returns pet inventories by status", + nickname = "getInventory", + notes = "", + 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(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity> { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "Find purchase order by ID", + nickname = "getOrderById", + notes = "", + 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/json"] + ) + 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 { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/json"], + consumes = ["application/json"] + ) + fun placeOrder( + @ApiParam(value = "", required = true) @Valid @RequestBody order: Order, + @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_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-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt new file mode 100644 index 000000000000..429bcf6a2682 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -0,0 +1,203 @@ +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 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 +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") +@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}") +class UserApiController() { + + + @ApiOperation( + value = "Create user", + nickname = "createUser", + notes = "") + @ApiResponses( + value = [ApiResponse(code = 200, message = "successful operation")]) + @RequestMapping( + method = [RequestMethod.POST], + value = [PATH_CREATE_USER /* "/user" */], + consumes = ["application/json"] + ) + fun createUser( + @ApiParam(value = "", required = true) @Valid @RequestBody user: User, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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" */], + consumes = ["application/json"] + ) + fun createUsersWithArrayInput( + @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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" */], + consumes = ["application/json"] + ) + fun createUsersWithListInput( + @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "Delete user", + nickname = "deleteUser", + notes = "") + @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 = "", required = true) @PathVariable("username") username: kotlin.String, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/json"] + ) + fun getUserByName( + @ApiParam(value = "", required = true) @PathVariable("username") username: kotlin.String, + @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest + ): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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/json"] + ) + fun loginUser( + @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 { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @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(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity { + return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) + } + + + @ApiOperation( + value = "Updated user", + nickname = "updateUser", + notes = "") + @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}" */], + consumes = ["application/json"] + ) + fun updateUser( + @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 { + 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-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 index 6d5007f695f7..f130e20d4448 100644 --- 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 @@ -16,17 +16,17 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * A schema demonstrating $usage in properties. - * @param dollarId $ID property - * @param dollarName $Name property + * A schema \"demonstrating\" $usage in properties. + * @param dollarId \"$ID property\" + * @param dollarName $Name\" property\" */ data class ItemWithDollarAttributesAndExamples( - @ApiModelProperty(example = "\$item123", value = "\$ID property") - @get:JsonProperty("$id") val dollarId: kotlin.String? = null, + @ApiModelProperty(example = "\$item\"123\"", value = "\"$ID property\"") + @get:JsonProperty("$id") val dollarId: kotlin.String? = "$item\"123Default\"", - @ApiModelProperty(example = "\$ItemName", value = "\$Name property") - @get:JsonProperty("$name") val dollarName: kotlin.String? = null + @ApiModelProperty(example = "\$Item\"Name", value = "$Name\" property\"") + @get:JsonProperty("$name") val dollarName: kotlin.String? = "$ItemNameDefault\"" ) : Serializable { companion object { diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt index 9519c951ec61..d6cc8540cd38 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt @@ -18,17 +18,17 @@ import io.swagger.annotations.ApiModelProperty /** * - * @param itemDollarId The $ID of the item. - * @param nameDollarValue The $name of the item. + * @param itemDollarId The $ID of \"the\" item. + * @param nameDollarValue The $name \"of the \"item. * @param detailsDollarInfo */ data class ItemsItemIdGet200Response( - @ApiModelProperty(example = "item\$123", value = "The \$ID of the item.") - @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = null, + @ApiModelProperty(example = "\"item\$123\"", value = "The $ID of \"the\" item.") + @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = "Item$Id\"Default\"", - @ApiModelProperty(example = "Item\$Name", value = "The \$name of the item.") - @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = null, + @ApiModelProperty(example = "\"Item\"\$Name", value = "The $name \"of the \"item.") + @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = "Item$\"NameDefault\"", @field:Valid @ApiModelProperty(example = "null", value = "") diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt index 49f918607272..83e4cc53b514 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt @@ -16,16 +16,16 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * Nested object with $keys. - * @param detailDollarOne First $detail - * @param detailDollarTwo Second $detail + * Nested \"object\" with $keys. + * @param detailDollarOne \"First $detail\" + * @param detailDollarTwo \"Second\" $detail */ data class ItemsItemIdGet200ResponseDetailsInfo( - @ApiModelProperty(example = "Detail\$1", value = "First \$detail") - @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = null, + @ApiModelProperty(example = "\"Detail\$1\"", value = "\"First $detail\"") + @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = "\"Detail\"$1Default", - @ApiModelProperty(example = "42", value = "Second \$detail") + @ApiModelProperty(example = "42", value = "\"Second\" $detail") @get:JsonProperty("detail$Two") val detailDollarTwo: kotlin.Int? = null ) : Serializable { 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 + } +} From 4c6e1869ede7da5f145e72663a3257d60b101921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 12:33:42 +0100 Subject: [PATCH 03/29] break everything even more --- .../src/test/resources/3_0/kotlin/petstore-with-tags.yaml | 8 ++++---- .../3_0/kotlin/petstore-with-x-kotlin-implements.yaml | 8 ++++---- .../src/main/kotlin/org/openapitools/api/ItemsApi.kt | 8 ++++---- .../main/kotlin/org/openapitools/api/ItemsApiDelegate.kt | 4 ++-- .../kotlin/org/openapitools/api/ItemsApiController.kt | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) 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 0107e77cb897..0cfee7a78bc9 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 @@ -674,13 +674,13 @@ paths: type: string example: "\"type$A\"" "default": "\"type\"$ADefault" - - name: "X-Custom$Header" + - name: "X-Custom_Header" in: header required: false - description: "Header param with $" + description: "Header \"param\" with $" schema: type: string - example: "hdr$val" + example: "hdr$su\"val\"" - name: "session$Token" in: cookie required: false @@ -739,7 +739,7 @@ paths: description: "Another $form \"field\"" example: "Val$Y\"fdfsdf\"" parameters: - - name: "X-Post$Header" + - name: "X-Post_Header" in: header required: false description: "Header \"param\" with $" 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 3565d8f0768d..e45412d6ab6b 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 @@ -506,13 +506,13 @@ paths: type: string example: "\"type$A\"" "default": "\"type\"$ADefault" - - name: "X-Custom$Header" + - name: "X-Custom_Header" in: header required: false - description: "Header param with $" + description: "Header \"param\" with $" schema: type: string - example: "hdr$val" + example: "hdr$su\"val\"" - name: "session$Token" in: cookie required: false @@ -571,7 +571,7 @@ paths: description: "Another $form \"field\"" example: "Val$Y\"fdfsdf\"" parameters: - - name: "X-Post$Header" + - name: "X-Post_Header" in: header required: false description: "Header \"param\" with $" 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 index 3320da5255ec..b4bbdd607166 100644 --- 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 @@ -62,11 +62,11 @@ interface ItemsApi { suspend fun itemsItemIdGet( @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, - @ApiParam(value = "Header param with $") @RequestHeader(value = "X-Custom$Header", required = false) xCustomDollarHeader: kotlin.String?, + @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, @CookieValue(name = "session$Token", required = false) sessionDollarToken: kotlin.String?, @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange ): ResponseEntity { - return getDelegate().itemsItemIdGet(itemDollarId, filterDollarType, xCustomDollarHeader, sessionDollarToken, exchange) + return getDelegate().itemsItemIdGet(itemDollarId, filterDollarType, xCustomHeader, sessionDollarToken, exchange) } @@ -86,12 +86,12 @@ interface ItemsApi { consumes = ["application/x-www-form-urlencoded"] ) suspend fun itemsPost( - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post$Header", required = false) xPostDollarHeader: kotlin.String?, + @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, @ApiParam(value = "Another $form \\\"field\\\"") @Valid @RequestParam(value = "form$Value", required = false) formDollarValue: kotlin.String?, @ApiParam(hidden = true) exchange: org.springframework.web.server.ServerWebExchange ): ResponseEntity { - return getDelegate().itemsPost(xPostDollarHeader, formDollarName, formDollarValue, exchange) + return getDelegate().itemsPost(xPostHeader, formDollarName, formDollarValue, exchange) } companion object { 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 index 332684082fe5..0f52c33b1e0e 100644 --- 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 @@ -24,7 +24,7 @@ interface ItemsApiDelegate { */ suspend fun itemsItemIdGet(itemDollarId: kotlin.String, filterDollarType: kotlin.String, - xCustomDollarHeader: kotlin.String?, + xCustomHeader: kotlin.String?, sessionDollarToken: kotlin.String?, exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity @@ -32,7 +32,7 @@ interface ItemsApiDelegate { /** * @see ItemsApi#itemsPost */ - suspend fun itemsPost(xPostDollarHeader: kotlin.String?, + 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-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 index 453ad81392cd..6e9595ea6327 100644 --- 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 @@ -54,7 +54,7 @@ class ItemsApiController() { fun itemsItemIdGet( @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, - @ApiParam(value = "Header param with $") @RequestHeader(value = "X-Custom$Header", required = false) xCustomDollarHeader: kotlin.String?, + @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, @CookieValue(name = "session$Token", required = false) sessionDollarToken: kotlin.String?, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest ): ResponseEntity { @@ -76,7 +76,7 @@ class ItemsApiController() { consumes = ["application/x-www-form-urlencoded"] ) fun itemsPost( - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post$Header", required = false) xPostDollarHeader: kotlin.String?, + @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, @ApiParam(value = "Another $form \\\"field\\\"") @Valid @RequestParam(value = "form$Value", required = false) formDollarValue: kotlin.String?, @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest From b4f370d31f30ca93af4d6aa6d6fa5ef3ead3b019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 13:08:51 +0100 Subject: [PATCH 04/29] break everything consistently to make CR easier --- .../3_0/kotlin/petstore-with-tags.yaml | 110 +++++++++++------- .../petstore-with-x-kotlin-implements.yaml | 110 +++++++++++------- .../.openapi-generator/FILES | 4 +- .../kotlin/org/openapitools/api/ItemsApi.kt | 44 +++---- .../org/openapitools/api/ItemsApiDelegate.kt | 14 ++- .../ItemWithDollarAttributesAndExamples.kt | 14 +-- ...sItemIdSomethingItemSubIdGet200Response.kt | 42 +++++++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 ++++++ .../.openapi-generator/FILES | 4 +- .../openapitools/api/ItemsApiController.kt | 42 ++++--- .../ItemWithDollarAttributesAndExamples.kt | 14 +-- ...sItemIdSomethingItemSubIdGet200Response.kt | 42 +++++++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 ++++++ 13 files changed, 370 insertions(+), 142 deletions(-) create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt 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 0cfee7a78bc9..4463a410df2a 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 @@ -654,43 +654,72 @@ paths: 404: description: User not found content: { } - /items/{item$Id}: + /items/{item$Id}/something/{item$SubId}: get: - summary: "Retrieve item \"by\" $Id" - description: "Get an item using the $symbol in \"parameter\" and property names." + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" parameters: - name: "item$Id" in: path required: true - description: "The $prefixed \"ID\" of the item." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "i\"te\"m$123" + 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: "Optional $filter \"for\" item type." + 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: "\"type$A\"" - "default": "\"type\"$ADefault" + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + "default": 'SQ = "; SBS = \; DBS = \\; SD = $some' - name: "X-Custom_Header" in: header required: false - description: "Header \"param\" with $" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "hdr$su\"val\"" + 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: "Cookie param with $dol\"lar\"" + 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: "cookie$a\"bc\"" + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' responses: '200': - description: "\"Successful $response\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" content: application/json: schema: @@ -698,31 +727,31 @@ paths: properties: item$Id: type: string - description: "The $ID of \"the\" item." - example: "\"item$123\"" - default: "Item$Id\"Default\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" name$Value: type: string - description: "The $name \"of the \"item." - example: "\"Item\"$Name" - default: "Item$\"NameDefault\"" + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' details$Info: type: object - description: "Nested \"object\" with $keys." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" properties: detail$One: type: string - description: "\"First $detail\"" - example: "\"Detail$1\"" - default: "\"Detail\"$1Default" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" detail$Two: type: integer - description: "\"Second\" $detail" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" example: 42 /items: post: - summary: "Create $it\"em\"" - description: "POST using form params and $every\"where\"." + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" requestBody: required: true content: @@ -732,24 +761,25 @@ paths: properties: form$Name: type: string - description: "Form field with $issue \"fdsfsd\"" - example: "Name$X\"fsdfsd\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" form$Value: type: string - description: "Another $form \"field\"" - example: "Val$Y\"fdfsdf\"" + 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: "Header \"param\" with $" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "hdr$po\"st\"" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" responses: "201": - description: "$test \"created\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" content: application/json: schema: @@ -888,18 +918,18 @@ components: description: Describes the result of uploading an image resource ItemWithDollarAttributesAndExamples: type: object - description: "A schema \"demonstrating\" $usage in properties." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" properties: $id: type: string - description: "\"$ID property\"" - example: "$item\"123\"" - default: "$item\"123Default\"" + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" $name: type: string - description: "$Name\" property\"" - example: "$Item\"Name" - default: "$ItemNameDefault\"" + 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 e45412d6ab6b..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,43 +486,72 @@ paths: description: Invalid username supplied '404': description: User not found - /items/{item$Id}: + /items/{item$Id}/something/{item$SubId}: get: - summary: "Retrieve item \"by\" $Id" - description: "Get an item using the $symbol in \"parameter\" and property names." + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" parameters: - name: "item$Id" in: path required: true - description: "The $prefixed \"ID\" of the item." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "i\"te\"m$123" + 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: "Optional $filter \"for\" item type." + 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: "\"type$A\"" - "default": "\"type\"$ADefault" + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + "default": 'SQ = "; SBS = \; DBS = \\; SD = $some' - name: "X-Custom_Header" in: header required: false - description: "Header \"param\" with $" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "hdr$su\"val\"" + 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: "Cookie param with $dol\"lar\"" + 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: "cookie$a\"bc\"" + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' responses: '200': - description: "\"Successful $response\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" content: application/json: schema: @@ -530,31 +559,31 @@ paths: properties: item$Id: type: string - description: "The $ID of \"the\" item." - example: "\"item$123\"" - default: "Item$Id\"Default\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" name$Value: type: string - description: "The $name \"of the \"item." - example: "\"Item\"$Name" - default: "Item$\"NameDefault\"" + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: 'SQ = "; SBS = \; DBS = \\; SD = $some' + default: 'SQ = "; SBS = \; DBS = \\; SD = $some' details$Info: type: object - description: "Nested \"object\" with $keys." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" properties: detail$One: type: string - description: "\"First $detail\"" - example: "\"Detail$1\"" - default: "\"Detail\"$1Default" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" detail$Two: type: integer - description: "\"Second\" $detail" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" example: 42 /items: post: - summary: "Create $it\"em\"" - description: "POST using form params and $every\"where\"." + summary: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" requestBody: required: true content: @@ -564,24 +593,25 @@ paths: properties: form$Name: type: string - description: "Form field with $issue \"fdsfsd\"" - example: "Name$X\"fsdfsd\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" form$Value: type: string - description: "Another $form \"field\"" - example: "Val$Y\"fdfsdf\"" + 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: "Header \"param\" with $" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" schema: type: string - example: "hdr$po\"st\"" + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" responses: "201": - description: "$test \"created\"" + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" content: application/json: schema: @@ -745,15 +775,15 @@ components: type: string ItemWithDollarAttributesAndExamples: type: object - description: "A schema \"demonstrating\" $usage in properties." + description: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" properties: $id: type: string - description: "\"$ID property\"" - example: "$item\"123\"" - default: "$item\"123Default\"" + description: 'SQ = "; SBS = \; DBS = \\; SD = $some' + example: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" + default: "SQ = \"; SBS = \\; DBS = \\\\; SD = $some" $name: type: string - description: "$Name\" property\"" - example: "$Item\"Name" - default: "$ItemNameDefault\"" \ No newline at end of file + 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/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 6e78c29b924d..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 @@ -26,8 +26,8 @@ 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/ItemsItemIdGet200Response.kt -src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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 index b4bbdd607166..9153cf0b0a70 100644 --- 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 @@ -6,7 +6,7 @@ package org.openapitools.api import org.openapitools.model.ItemWithDollarAttributesAndExamples -import org.openapitools.model.ItemsItemIdGet200Response +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response import io.swagger.annotations.Api import io.swagger.annotations.ApiOperation import io.swagger.annotations.ApiParam @@ -46,38 +46,42 @@ interface ItemsApi { @ApiOperation( - value = "Retrieve item \"by\" $Id", - nickname = "itemsItemIdGet", - notes = "Get an item using the $symbol in \"parameter\" and property names.", - response = ItemsItemIdGet200Response::class + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + nickname = "itemsItemIdSomethingItemSubIdGet", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + response = ItemsItemIdSomethingItemSubIdGet200Response::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)] + value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)] ) @RequestMapping( method = [RequestMethod.GET], - value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */], produces = ["application/json"] ) - suspend fun itemsItemIdGet( - @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, - @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + 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().itemsItemIdGet(itemDollarId, filterDollarType, xCustomHeader, sessionDollarToken, exchange) + ): ResponseEntity { + return getDelegate().itemsItemIdSomethingItemSubIdGet(itemDollarId, itemDollarSubId, filterDollarType, filterDollarSubType, xCustomHeader, xCustomHeaderTwo, sessionDollarToken, sessionDollarTokenTwo, exchange) } @ApiOperation( - value = "Create $it\"em\"", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", nickname = "itemsPost", - notes = "POST using form params and $every\"where\".", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class ) @ApiResponses( - value = [ApiResponse(code = 201, message = "$test \"created\"", response = ItemWithDollarAttributesAndExamples::class)] + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class)] ) @RequestMapping( method = [RequestMethod.POST], @@ -86,9 +90,9 @@ interface ItemsApi { consumes = ["application/x-www-form-urlencoded"] ) suspend fun itemsPost( - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, - @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, - @ApiParam(value = "Another $form \\\"field\\\"") @Valid @RequestParam(value = "form$Value", required = false) formDollarValue: kotlin.String?, + @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) @@ -96,7 +100,7 @@ interface ItemsApi { companion object { //for your own safety never directly reuse these path definitions in tests - const val PATH_ITEMS_ITEM_ID_GET: String = "/items/{item$Id}" + 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/ItemsApiDelegate.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/api/ItemsApiDelegate.kt index 0f52c33b1e0e..507e56259ee4 100644 --- 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 @@ -1,7 +1,7 @@ package org.openapitools.api import org.openapitools.model.ItemWithDollarAttributesAndExamples -import org.openapitools.model.ItemsItemIdGet200Response +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response import org.springframework.http.HttpStatus import org.springframework.http.MediaType import org.springframework.http.ResponseEntity @@ -20,13 +20,17 @@ interface ItemsApiDelegate { fun getRequest(): Optional = Optional.empty() /** - * @see ItemsApi#itemsItemIdGet + * @see ItemsApi#itemsItemIdSomethingItemSubIdGet */ - suspend fun itemsItemIdGet(itemDollarId: kotlin.String, + suspend fun itemsItemIdSomethingItemSubIdGet(itemDollarId: kotlin.String, + itemDollarSubId: kotlin.String, filterDollarType: kotlin.String, + filterDollarSubType: kotlin.String, xCustomHeader: kotlin.String?, + xCustomHeaderTwo: kotlin.String?, sessionDollarToken: kotlin.String?, - exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity + sessionDollarTokenTwo: kotlin.String?, + exchange: org.springframework.web.server.ServerWebExchange): ResponseEntity /** @@ -34,7 +38,7 @@ interface ItemsApiDelegate { */ suspend fun itemsPost(xPostHeader: kotlin.String?, formDollarName: kotlin.String?, - formDollarValue: 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 index f130e20d4448..364dd1544134 100644 --- 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 @@ -16,17 +16,17 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * A schema \"demonstrating\" $usage in properties. - * @param dollarId \"$ID property\" - * @param dollarName $Name\" property\" + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ data class ItemWithDollarAttributesAndExamples( - @ApiModelProperty(example = "\$item\"123\"", value = "\"$ID property\"") - @get:JsonProperty("$id") val dollarId: kotlin.String? = "$item\"123Default\"", + @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 = "\$Item\"Name", value = "$Name\" property\"") - @get:JsonProperty("$name") val dollarName: kotlin.String? = "$ItemNameDefault\"" + @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 { 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..060ddced2851 --- /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..a1d5bcc0c16e --- /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-x-kotlin-implements/.openapi-generator/FILES b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/.openapi-generator/FILES index edfc8025b478..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 @@ -19,8 +19,8 @@ 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/ItemsItemIdGet200Response.kt -src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.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-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 index 6e9595ea6327..56790b478326 100644 --- 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 @@ -1,7 +1,7 @@ package org.openapitools.api import org.openapitools.model.ItemWithDollarAttributesAndExamples -import org.openapitools.model.ItemsItemIdGet200Response +import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response import io.swagger.annotations.Api import io.swagger.annotations.ApiOperation import io.swagger.annotations.ApiParam @@ -40,35 +40,39 @@ class ItemsApiController() { @ApiOperation( - value = "Retrieve item \"by\" $Id", - nickname = "itemsItemIdGet", - notes = "Get an item using the $symbol in \"parameter\" and property names.", - response = ItemsItemIdGet200Response::class) + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + nickname = "itemsItemIdSomethingItemSubIdGet", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + response = ItemsItemIdSomethingItemSubIdGet200Response::class) @ApiResponses( - value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)]) + value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)]) @RequestMapping( method = [RequestMethod.GET], - value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], + value = [PATH_ITEMS_ITEM_ID_SOMETHING_ITEM_SUB_ID_GET /* "/items/{item\$Id}/something/{item\$SubId}" */], produces = ["application/json"] ) - fun itemsItemIdGet( - @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, - @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Custom_Header", required = false) xCustomHeader: kotlin.String?, + 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 { + ): ResponseEntity { return ResponseEntity(HttpStatus.NOT_IMPLEMENTED) } @ApiOperation( - value = "Create $it\"em\"", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", nickname = "itemsPost", - notes = "POST using form params and $every\"where\".", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class) @ApiResponses( - value = [ApiResponse(code = 201, message = "$test \"created\"", response = ItemWithDollarAttributesAndExamples::class)]) + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class)]) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ITEMS_POST /* "/items" */], @@ -76,9 +80,9 @@ class ItemsApiController() { consumes = ["application/x-www-form-urlencoded"] ) fun itemsPost( - @ApiParam(value = "Header \"param\" with $") @RequestHeader(value = "X-Post_Header", required = false) xPostHeader: kotlin.String?, - @ApiParam(value = "Form field with $issue \\\"fdsfsd\\\"") @Valid @RequestParam(value = "form$Name", required = false) formDollarName: kotlin.String?, - @ApiParam(value = "Another $form \\\"field\\\"") @Valid @RequestParam(value = "form$Value", required = false) formDollarValue: kotlin.String?, + @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) @@ -87,7 +91,7 @@ class ItemsApiController() { 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_GET: String = "/items/{item$Id}" + 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/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt index f130e20d4448..364dd1544134 100644 --- 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 @@ -16,17 +16,17 @@ import javax.validation.Valid import io.swagger.annotations.ApiModelProperty /** - * A schema \"demonstrating\" $usage in properties. - * @param dollarId \"$ID property\" - * @param dollarName $Name\" property\" + * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @param dollarName SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ data class ItemWithDollarAttributesAndExamples( - @ApiModelProperty(example = "\$item\"123\"", value = "\"$ID property\"") - @get:JsonProperty("$id") val dollarId: kotlin.String? = "$item\"123Default\"", + @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 = "\$Item\"Name", value = "$Name\" property\"") - @get:JsonProperty("$name") val dollarName: kotlin.String? = "$ItemNameDefault\"" + @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 { 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..060ddced2851 --- /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..a1d5bcc0c16e --- /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 + } +} + From 884975aa83c75345d7d8cc9bdc2eaa12809ceb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 13:23:18 +0100 Subject: [PATCH 05/29] fix as much as possible --- .../main/resources/kotlin-spring/api.mustache | 14 ++++----- .../kotlin-spring/apiInterface.mustache | 14 ++++----- .../kotlin-spring/bodyParams.mustache | 2 +- .../kotlin-spring/cookieParams.mustache | 2 +- .../kotlin-spring/dataClass.mustache | 4 +-- .../kotlin-spring/dataClassOptVar.mustache | 6 ++-- .../kotlin-spring/dataClassReqVar.mustache | 6 ++-- .../kotlin-spring/headerParams.mustache | 2 +- .../kotlin-spring/interfaceOptVar.mustache | 6 ++-- .../kotlin-spring/interfaceReqVar.mustache | 4 +-- .../apiInterface.mustache | 2 +- .../httpInterfaceBodyParams.mustache | 2 +- .../kotlin-spring/pathParams.mustache | 2 +- .../kotlin-spring/queryParams.mustache | 2 +- .../kotlin/org/openapitools/api/ItemsApi.kt | 30 +++++++++---------- .../ItemWithDollarAttributesAndExamples.kt | 14 ++++----- ...sItemIdSomethingItemSubIdGet200Response.kt | 14 ++++----- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 14 ++++----- .../openapitools/api/ItemsApiController.kt | 30 +++++++++---------- .../ItemWithDollarAttributesAndExamples.kt | 14 ++++----- ...sItemIdSomethingItemSubIdGet200Response.kt | 14 ++++----- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 14 ++++----- 22 files changed, 106 insertions(+), 106 deletions(-) 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..6b1e24406649 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,25 @@ class {{classname}}Controller({{#serviceInterface}}@Autowired(required = true) v }}{{/useResponseEntity}}{{! }}{{#swagger2AnnotationLibrary}}{{! }} @Operation( - summary = "{{{summary}}}", + summary = "{{#lambda.escapeDollar}}{{{summary}}}{{/lambda.escapeDollar}}", operationId = "{{{operationId}}}", description = """{{{unescapedNotes}}}""", 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}}) @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 +111,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..e16282bf6964 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}}}""", 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..decfa98ac79c 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 = "{{baseName}}"{{^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/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/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 index 9153cf0b0a70..2d8f7b740b42 100644 --- 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 @@ -46,26 +46,26 @@ interface ItemsApi { @ApiOperation( - value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsItemIdSomethingItemSubIdGet", - notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class ) @ApiResponses( - value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)] + 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}" */], + 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?, + @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 @@ -75,13 +75,13 @@ interface ItemsApi { @ApiOperation( - value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsPost", - notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class ) @ApiResponses( - value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class)] + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] ) @RequestMapping( method = [RequestMethod.POST], @@ -90,7 +90,7 @@ interface ItemsApi { 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") @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 @@ -100,7 +100,7 @@ interface ItemsApi { 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_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/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt index 364dd1544134..f09c9e4036f2 100644 --- 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 @@ -16,17 +16,17 @@ 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 + * 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("\$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" + @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 { 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 index 060ddced2851..ce959d5caa44 100644 --- 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 @@ -18,21 +18,21 @@ import io.swagger.annotations.ApiModelProperty /** * - * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some - * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @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("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", + @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 + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null ) : Serializable { companion object { 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 index a1d5bcc0c16e..f1572d669057 100644 --- 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 @@ -16,17 +16,17 @@ 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 + * 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 = "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 + @ApiModelProperty(example = "42", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null ) : Serializable { companion object { 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 index 56790b478326..bf6b7420613b 100644 --- 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 @@ -40,24 +40,24 @@ class ItemsApiController() { @ApiOperation( - value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsItemIdSomethingItemSubIdGet", - notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class) @ApiResponses( - value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)]) + 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}" */], + 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?, + @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 @@ -67,12 +67,12 @@ class ItemsApiController() { @ApiOperation( - value = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsPost", - notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class) @ApiResponses( - value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", response = ItemWithDollarAttributesAndExamples::class)]) + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)]) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ITEMS_POST /* "/items" */], @@ -80,7 +80,7 @@ class ItemsApiController() { 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") @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 @@ -91,7 +91,7 @@ class ItemsApiController() { 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_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/model/ItemWithDollarAttributesAndExamples.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt index 364dd1544134..f09c9e4036f2 100644 --- 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 @@ -16,17 +16,17 @@ 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 + * 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("\$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" + @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 { 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 index 060ddced2851..ce959d5caa44 100644 --- 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 @@ -18,21 +18,21 @@ import io.swagger.annotations.ApiModelProperty /** * - * @param itemDollarId SQ = \"; SBS = \\; DBS = \\\\; SD = $some - * @param nameDollarValue SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * @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("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", + @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 + @get:JsonProperty("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null ) : Serializable { companion object { 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 index a1d5bcc0c16e..f1572d669057 100644 --- 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 @@ -16,17 +16,17 @@ 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 + * 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 = "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 + @ApiModelProperty(example = "42", value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some") + @get:JsonProperty("detail\$Two") val detailDollarTwo: kotlin.Int? = null ) : Serializable { companion object { From 8f207b5b2f26e9982d1f35c13e5db4fab38b1dc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 13:50:24 +0100 Subject: [PATCH 06/29] fix more places --- .../src/main/resources/kotlin-spring/formParams.mustache | 2 +- .../src/main/kotlin/org/openapitools/api/ItemsApi.kt | 4 ++-- .../main/kotlin/org/openapitools/api/ItemsApiController.kt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) 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..5ff9f9ef436f 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}}KOKO{{{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}}BUBU{{{defaultValue}}}{{^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/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 index 2d8f7b740b42..18981ef12085 100644 --- 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 @@ -91,8 +91,8 @@ interface ItemsApi { ) 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(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) 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 index bf6b7420613b..0be438899627 100644 --- 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 @@ -81,8 +81,8 @@ class ItemsApiController() { ) 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(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) From 319c55d319d4de9c672b8e105b14a3df3d773cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 14:08:02 +0100 Subject: [PATCH 07/29] remove files --- .../model/ItemsItemIdGet200Response.kt | 42 ---- .../ItemsItemIdGet200ResponseDetailsInfo.kt | 36 --- .../kotlin/org/openapitools/api/ItemsApi.kt | 68 ------ .../kotlin/org/openapitools/api/PetApi.kt | 226 ------------------ .../model/ItemsItemIdGet200Response.kt | 42 ---- .../ItemsItemIdGet200ResponseDetailsInfo.kt | 36 --- 6 files changed, 450 deletions(-) delete mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt delete mode 100644 samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApi.kt delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt diff --git a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt deleted file mode 100644 index d6cc8540cd38..000000000000 --- a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt +++ /dev/null @@ -1,42 +0,0 @@ -package org.openapitools.model - -import java.util.Locale -import java.util.Objects -import com.fasterxml.jackson.annotation.JsonProperty -import org.openapitools.model.ItemsItemIdGet200ResponseDetailsInfo -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 The $ID of \"the\" item. - * @param nameDollarValue The $name \"of the \"item. - * @param detailsDollarInfo - */ -data class ItemsItemIdGet200Response( - - @ApiModelProperty(example = "\"item\$123\"", value = "The $ID of \"the\" item.") - @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = "Item$Id\"Default\"", - - @ApiModelProperty(example = "\"Item\"\$Name", value = "The $name \"of the \"item.") - @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = "Item$\"NameDefault\"", - - @field:Valid - @ApiModelProperty(example = "null", value = "") - @get:JsonProperty("details$Info") val detailsDollarInfo: ItemsItemIdGet200ResponseDetailsInfo? = 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/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt deleted file mode 100644 index 83e4cc53b514..000000000000 --- a/samples/server/petstore/kotlin-springboot-include-http-request-context-delegate/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt +++ /dev/null @@ -1,36 +0,0 @@ -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 - -/** - * Nested \"object\" with $keys. - * @param detailDollarOne \"First $detail\" - * @param detailDollarTwo \"Second\" $detail - */ -data class ItemsItemIdGet200ResponseDetailsInfo( - - @ApiModelProperty(example = "\"Detail\$1\"", value = "\"First $detail\"") - @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = "\"Detail\"$1Default", - - @ApiModelProperty(example = "42", value = "\"Second\" $detail") - @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/main/kotlin/org/openapitools/api/ItemsApi.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt deleted file mode 100644 index b5a8e5e5e14d..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/ItemsApi.kt +++ /dev/null @@ -1,68 +0,0 @@ -/** - * 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.ItemsItemIdGet200Response -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 kotlin.collections.List -import kotlin.collections.Map - -@RestController -@Validated -@Api(value = "items", description = "The items API") -interface ItemsApi { - - - @ApiOperation( - value = "Retrieve item \"by\" $Id", - nickname = "itemsItemIdGet", - notes = "Get an item using the $symbol in \"parameter\" and property names.", - response = ItemsItemIdGet200Response::class - ) - @ApiResponses( - value = [ApiResponse(code = 200, message = "\"Successful $response\"", response = ItemsItemIdGet200Response::class)] - ) - @RequestMapping( - method = [RequestMethod.GET], - value = [PATH_ITEMS_ITEM_ID_GET /* "/items/{item\$Id}" */], - produces = ["application/json"] - ) - fun itemsItemIdGet( - @ApiParam(value = "The $prefixed \"ID\" of the item.", required = true) @PathVariable("item$Id") itemDollarId: kotlin.String, - @ApiParam(value = "Optional $filter \"for\" item type.", defaultValue = "\"type\"$ADefault") @Valid @RequestParam(value = "filter$Type", required = false, defaultValue = "\"type\"$ADefault") filterDollarType: kotlin.String, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - companion object { - //for your own safety never directly reuse these path definitions in tests - const val PATH_ITEMS_ITEM_ID_GET: String = "/items/{item$Id}" - } -} 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/PetApi.kt deleted file mode 100644 index 74927d98aeb4..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApi.kt +++ /dev/null @@ -1,226 +0,0 @@ -/** - * 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.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 kotlin.collections.List -import kotlin.collections.Map - -@RestController -@Validated -@Api(value = "pet", description = "The pet API") -interface PetApi { - - - @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"] - ) - fun addPet( - @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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?, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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/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, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity> - - - @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/json"] - ) - 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> - - - @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/json"] - ) - 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 - - - @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"] - ) - fun updatePet( - @ApiParam(value = "", required = true) @Valid @RequestBody pet: Pet, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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?, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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 = "") @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 - - 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_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-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt deleted file mode 100644 index d6cc8540cd38..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200Response.kt +++ /dev/null @@ -1,42 +0,0 @@ -package org.openapitools.model - -import java.util.Locale -import java.util.Objects -import com.fasterxml.jackson.annotation.JsonProperty -import org.openapitools.model.ItemsItemIdGet200ResponseDetailsInfo -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 The $ID of \"the\" item. - * @param nameDollarValue The $name \"of the \"item. - * @param detailsDollarInfo - */ -data class ItemsItemIdGet200Response( - - @ApiModelProperty(example = "\"item\$123\"", value = "The $ID of \"the\" item.") - @get:JsonProperty("item$Id") val itemDollarId: kotlin.String? = "Item$Id\"Default\"", - - @ApiModelProperty(example = "\"Item\"\$Name", value = "The $name \"of the \"item.") - @get:JsonProperty("name$Value") val nameDollarValue: kotlin.String? = "Item$\"NameDefault\"", - - @field:Valid - @ApiModelProperty(example = "null", value = "") - @get:JsonProperty("details$Info") val detailsDollarInfo: ItemsItemIdGet200ResponseDetailsInfo? = 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/ItemsItemIdGet200ResponseDetailsInfo.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt deleted file mode 100644 index 83e4cc53b514..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/model/ItemsItemIdGet200ResponseDetailsInfo.kt +++ /dev/null @@ -1,36 +0,0 @@ -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 - -/** - * Nested \"object\" with $keys. - * @param detailDollarOne \"First $detail\" - * @param detailDollarTwo \"Second\" $detail - */ -data class ItemsItemIdGet200ResponseDetailsInfo( - - @ApiModelProperty(example = "\"Detail\$1\"", value = "\"First $detail\"") - @get:JsonProperty("detail$One") val detailDollarOne: kotlin.String? = "\"Detail\"$1Default", - - @ApiModelProperty(example = "42", value = "\"Second\" $detail") - @get:JsonProperty("detail$Two") val detailDollarTwo: kotlin.Int? = null -) : Serializable { - - companion object { - private const val serialVersionUID: kotlin.Long = 1 - } -} - From b41dc7079f05b3bad8f3aa65fb0af36762e55e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 14:18:02 +0100 Subject: [PATCH 08/29] removed some files --- .../kotlin/org/openapitools/api/StoreApi.kt | 128 ----------- .../kotlin/org/openapitools/api/UserApi.kt | 205 ------------------ 2 files changed, 333 deletions(-) delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApi.kt delete mode 100644 samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApi.kt 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/StoreApi.kt deleted file mode 100644 index 40c176b58ce1..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApi.kt +++ /dev/null @@ -1,128 +0,0 @@ -/** - * 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.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 kotlin.collections.List -import kotlin.collections.Map - -@RestController -@Validated -@Api(value = "store", description = "The store API") -interface StoreApi { - - - @ApiOperation( - value = "Delete purchase order by ID", - nickname = "deleteOrder", - notes = "" - ) - @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 = "", required = true) @PathVariable("orderId") orderId: kotlin.String, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @ApiOperation( - value = "Returns pet inventories by status", - nickname = "getInventory", - notes = "", - 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(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity> - - - @ApiOperation( - value = "Find purchase order by ID", - nickname = "getOrderById", - notes = "", - 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/json"] - ) - 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 - - - @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/json"], - consumes = ["application/json"] - ) - fun placeOrder( - @ApiParam(value = "", required = true) @Valid @RequestBody order: Order, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - 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-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/UserApi.kt deleted file mode 100644 index db017f3558b1..000000000000 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApi.kt +++ /dev/null @@ -1,205 +0,0 @@ -/** - * 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.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 kotlin.collections.List -import kotlin.collections.Map - -@RestController -@Validated -@Api(value = "user", description = "The user API") -interface UserApi { - - - @ApiOperation( - value = "Create user", - nickname = "createUser", - notes = "" - ) - @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")] - ) - @RequestMapping( - method = [RequestMethod.POST], - value = [PATH_CREATE_USER /* "/user" */], - consumes = ["application/json"] - ) - fun createUser( - @ApiParam(value = "", required = true) @Valid @RequestBody user: User, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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" */], - consumes = ["application/json"] - ) - fun createUsersWithArrayInput( - @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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" */], - consumes = ["application/json"] - ) - fun createUsersWithListInput( - @ApiParam(value = "", required = true) @Valid @RequestBody user: kotlin.collections.List, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @ApiOperation( - value = "Delete user", - nickname = "deleteUser", - notes = "" - ) - @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 = "", required = true) @PathVariable("username") username: kotlin.String, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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/json"] - ) - fun getUserByName( - @ApiParam(value = "", required = true) @PathVariable("username") username: kotlin.String, - @ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest - ): ResponseEntity - - - @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/json"] - ) - fun loginUser( - @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 - - - @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(@ApiParam(hidden = true) request: javax.servlet.http.HttpServletRequest): ResponseEntity - - - @ApiOperation( - value = "Updated user", - nickname = "updateUser", - notes = "" - ) - @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}" */], - consumes = ["application/json"] - ) - fun updateUser( - @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 - - 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_UPDATE_USER: String = "/user/{username}" - } -} From 907f8788b8de7604555db35dca990ea523187667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 14:21:46 +0100 Subject: [PATCH 09/29] fix one more place --- .../src/main/resources/kotlin-spring/cookieParams.mustache | 2 +- .../src/main/kotlin/org/openapitools/api/ItemsApi.kt | 4 ++-- .../main/kotlin/org/openapitools/api/ItemsApiController.kt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) 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 decfa98ac79c..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 = "{{#lambda.escapeDollar}}{{{.}}}{{/lambda.escapeDollar}}"{{/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/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 index 18981ef12085..a302ce3cea83 100644 --- 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 @@ -66,8 +66,8 @@ interface ItemsApi { @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?, + @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) 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 index 0be438899627..1afe5147feaf 100644 --- 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 @@ -58,8 +58,8 @@ class ItemsApiController() { @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?, + @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) From c9ce225243f77d0a158a2f4eee4258ee3ff92436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 14:41:15 +0100 Subject: [PATCH 10/29] DRY tests --- .../spring/KotlinSpringServerCodegenTest.java | 2620 +++++++---------- 1 file changed, 1085 insertions(+), 1535 deletions(-) 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..c3895a6acde3 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"); - } - - @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 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 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 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 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 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 = false) image: org.springframework.web.multipart.MultipartFile") + ) ); } @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 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 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 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 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 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 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 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 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 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 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 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 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 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") + ) ); } - 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); + @Test + 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 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,261 @@ 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(); - - 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") ); - - 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)"); + 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)" + ) + )); } @Test - public void testValidationsInQueryParams_issue21238_Api_Delegate() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + 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]+$\")" + ) + )); + } + + 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 From a86a9f19f3c083dfc47281670468c5a1e9e96dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 14:56:30 +0100 Subject: [PATCH 11/29] add unit test --- .../org/openapitools/codegen/TestUtils.java | 2 +- .../spring/KotlinSpringServerCodegenTest.java | 54 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) 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 c3895a6acde3..115465eb653a 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 @@ -2585,6 +2585,60 @@ public void testValidationsInQueryParams_issue21238_Api_Delegate() { )); } + + @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}\" */" + ) + )); + 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}\" */" + ) + )); + } + private Path generateApiSources( String specFilePath, Map additionalProperties, From 5485eabeac87bec9fd44165f7de2798ff8a1acbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 15:13:48 +0100 Subject: [PATCH 12/29] improve unit test --- .../spring/KotlinSpringServerCodegenTest.java | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) 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 115465eb653a..60eb44e42600 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 @@ -2616,7 +2616,25 @@ public void testDollarsAndQuotesSwagger1() { "@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"), @@ -2635,7 +2653,26 @@ public void testDollarsAndQuotesSwagger1() { "@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\"" + ) )); } From b89a2f1097f06f44bf770210fc571181bfa8d8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 15:47:16 +0100 Subject: [PATCH 13/29] add dollar escaping for multiline strings --- .../languages/AbstractKotlinCodegen.java | 3 +- .../main/resources/kotlin-spring/api.mustache | 2 +- .../kotlin-spring/apiInterface.mustache | 2 +- .../spring/KotlinSpringServerCodegenTest.java | 89 +++++++++++++++++++ 4 files changed, 93 insertions(+), 3 deletions(-) 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("(? additionalProperties, From d2e3ba1bfe91809ba5f6cbff0668abd9e50bc173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 15:52:51 +0100 Subject: [PATCH 14/29] add dollar escaping for multiline strings and test --- .../spring/KotlinSpringServerCodegenTest.java | 69 +++++++++---------- 1 file changed, 31 insertions(+), 38 deletions(-) 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 3f8c120cdff2..d28873bb0148 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 @@ -2725,44 +2725,37 @@ public void testDollarsAndQuotesSwagger2() { "@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\")", -// "@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\"" -// ) -// )); + 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( From 9622dddeaa89c29e60e11519f93378e9002026fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 16:19:10 +0100 Subject: [PATCH 15/29] add more compilation tests and extend some current compilations to also test for the dollar issue --- .../samples-kotlin-server-jdk17.yaml | 2 + ...n-spring-boot-3-dollar-issue-swagger2.yaml | 14 + ...lin-spring-boot-dollar-issue-swagger1.yaml | 13 + ...arative-interface-reactive-coroutines.yaml | 2 +- ...ve-interface-reactive-reactor-wrapped.yaml | 2 +- ...-spring-declarative-interface-wrapped.yaml | 2 +- .../kotlin-spring-declarative-interface.yaml | 2 +- .../3_0/kotlin/petstore-with-tags.yaml | 6 +- .../resources/3_0/petstore-with-dollars.yaml | 885 ++++++++++++++ .../.openapi-generator/FILES | 4 + .../org/openapitools/api/DefaultApiClient.kt | 63 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../.openapi-generator/FILES | 4 + .../org/openapitools/api/DefaultApiClient.kt | 65 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../.openapi-generator/FILES | 4 + .../org/openapitools/api/DefaultApiClient.kt | 63 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../.openapi-generator/FILES | 4 + .../org/openapitools/api/DefaultApiClient.kt | 63 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../.openapi-generator-ignore | 23 + .../.openapi-generator/FILES | 40 + .../.openapi-generator/VERSION | 1 + .../README.md | 21 + .../build.gradle.kts | 43 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../gradlew | 249 ++++ .../gradlew.bat | 92 ++ .../pom.xml | 149 +++ .../settings.gradle | 15 + .../kotlin/org/openapitools/Application.kt | 13 + .../kotlin/org/openapitools/HomeController.kt | 12 + .../openapitools/SpringDocConfiguration.kt | 42 + .../kotlin/org/openapitools/api/ApiUtil.kt | 19 + .../kotlin/org/openapitools/api/Exceptions.kt | 30 + .../openapitools/api/ItemsApiController.kt | 87 ++ .../org/openapitools/api/ItemsApiService.kt | 36 + .../openapitools/api/ItemsApiServiceImpl.kt | 16 + .../org/openapitools/api/PetApiController.kt | 253 ++++ .../org/openapitools/api/PetApiService.kt | 114 ++ .../org/openapitools/api/PetApiServiceImpl.kt | 48 + .../openapitools/api/StoreApiController.kt | 116 ++ .../org/openapitools/api/StoreApiService.kt | 48 + .../openapitools/api/StoreApiServiceImpl.kt | 23 + .../org/openapitools/api/UserApiController.kt | 205 ++++ .../org/openapitools/api/UserApiService.kt | 95 ++ .../openapitools/api/UserApiServiceImpl.kt | 43 + .../kotlin/org/openapitools/model/Category.kt | 36 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../openapitools/model/ModelApiResponse.kt | 40 + .../kotlin/org/openapitools/model/Order.kt | 74 ++ .../main/kotlin/org/openapitools/model/Pet.kt | 78 ++ .../main/kotlin/org/openapitools/model/Tag.kt | 36 + .../kotlin/org/openapitools/model/User.kt | 60 + .../src/main/resources/application.yaml | 10 + .../src/main/resources/openapi.yaml | 1060 +++++++++++++++++ .../org/openapitools/api/ItemsApiTest.kt | 51 + .../kotlin/org/openapitools/api/PetApiTest.kt | 169 +++ .../org/openapitools/api/StoreApiTest.kt | 70 ++ .../org/openapitools/api/UserApiTest.kt | 146 +++ .../.openapi-generator-ignore | 23 + .../.openapi-generator/FILES | 36 + .../.openapi-generator/VERSION | 1 + .../README.md | 21 + .../build.gradle.kts | 49 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../gradlew | 249 ++++ .../gradlew.bat | 92 ++ .../pom.xml | 138 +++ .../settings.gradle | 15 + .../kotlin/org/openapitools/Application.kt | 13 + .../kotlin/org/openapitools/HomeController.kt | 12 + .../openapitools/SpringFoxConfiguration.kt | 64 + .../kotlin/org/openapitools/api/ApiUtil.kt | 19 + .../kotlin/org/openapitools/api/Exceptions.kt | 30 + .../openapitools/api/ItemsApiController.kt | 92 ++ .../org/openapitools/api/ItemsApiService.kt | 36 + .../openapitools/api/ItemsApiServiceImpl.kt | 16 + .../org/openapitools/api/PetApiController.kt | 258 ++++ .../org/openapitools/api/PetApiService.kt | 114 ++ .../org/openapitools/api/PetApiServiceImpl.kt | 48 + .../openapitools/api/StoreApiController.kt | 119 ++ .../org/openapitools/api/StoreApiService.kt | 48 + .../openapitools/api/StoreApiServiceImpl.kt | 23 + .../org/openapitools/api/UserApiController.kt | 205 ++++ .../org/openapitools/api/UserApiService.kt | 95 ++ .../openapitools/api/UserApiServiceImpl.kt | 43 + .../kotlin/org/openapitools/model/Category.kt | 36 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../openapitools/model/ModelApiResponse.kt | 40 + .../kotlin/org/openapitools/model/Order.kt | 74 ++ .../main/kotlin/org/openapitools/model/Pet.kt | 78 ++ .../main/kotlin/org/openapitools/model/Tag.kt | 36 + .../kotlin/org/openapitools/model/User.kt | 60 + .../src/main/resources/application.yaml | 10 + .../src/main/resources/openapi.yaml | 1060 +++++++++++++++++ .../org/openapitools/api/ItemsApiTest.kt | 51 + .../kotlin/org/openapitools/api/PetApiTest.kt | 169 +++ .../org/openapitools/api/StoreApiTest.kt | 70 ++ .../org/openapitools/api/UserApiTest.kt | 146 +++ 115 files changed, 9240 insertions(+), 8 deletions(-) create mode 100644 bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2.yaml create mode 100644 bin/configs/kotlin-spring-boot-dollar-issue-swagger1.yaml create mode 100644 modules/openapi-generator/src/test/resources/3_0/petstore-with-dollars.yaml create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-coroutines/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-reactive-reactor-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface-wrapped/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/api/DefaultApiClient.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-spring-declarative-interface/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator-ignore create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/FILES create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/VERSION create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/README.md create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/build.gradle.kts create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.jar create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradle/wrapper/gradle-wrapper.properties create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/gradlew.bat create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/pom.xml create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/settings.gradle create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/Application.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/HomeController.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ApiUtil.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/Exceptions.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Category.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Order.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Pet.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/Tag.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/model/User.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/application.yaml create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/resources/openapi.yaml create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/PetApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/StoreApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/test/kotlin/org/openapitools/api/UserApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator-ignore create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/FILES create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/.openapi-generator/VERSION create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/README.md create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/build.gradle.kts create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.jar create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradle/wrapper/gradle-wrapper.properties create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/gradlew.bat create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/pom.xml create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/settings.gradle create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/Application.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/HomeController.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/SpringFoxConfiguration.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ApiUtil.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/Exceptions.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiService.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Category.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Order.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Pet.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/Tag.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/model/User.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/application.yaml create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/resources/openapi.yaml create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/ItemsApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/PetApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/StoreApiTest.kt create mode 100644 samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/test/kotlin/org/openapitools/api/UserApiTest.kt diff --git a/.github/workflows/samples-kotlin-server-jdk17.yaml b/.github/workflows/samples-kotlin-server-jdk17.yaml index 999e2f4d817b..589afe3abb27 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-dollar-issue-swagger1 + - samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2 - samples/server/petstore/kotlin-springboot-additionalproperties - samples/server/petstore/kotlin-springboot-delegate-nodefaults - samples/server/petstore/kotlin-springboot-request-cookie 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-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/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 4463a410df2a..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 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/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..037f95a5511f --- /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 = BUBU"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..eb5faf53717d --- /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 = BUBU"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..bc4cd324d67b --- /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 = BUBU"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..bc4cd324d67b --- /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 = BUBU"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/.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..15ef52ad8fe7 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/.openapi-generator/FILES @@ -0,0 +1,40 @@ +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 +src/test/kotlin/org/openapitools/api/ItemsApiTest.kt +src/test/kotlin/org/openapitools/api/PetApiTest.kt +src/test/kotlin/org/openapitools/api/StoreApiTest.kt +src/test/kotlin/org/openapitools/api/UserApiTest.kt 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 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 zcma&N1CXTcmMvW9vTb(Rwr$&4wr$(C?dmSu>@vG-+vuvg^_??!{yS%8zW-#zn-LkA z5&1^$^{lnmUON?}LBF8_K|(?T0Ra(xUH{($5eN!MR#ZihR#HxkUPe+_R8Cn`RRs(P z_^*#_XlXmGv7!4;*Y%p4nw?{bNp@UZHv1?Um8r6)Fei3p@ClJn0ECfg1hkeuUU@Or zDaPa;U3fE=3L}DooL;8f;P0ipPt0Z~9P0)lbStMS)ag54=uL9ia-Lm3nh|@(Y?B`; zx_#arJIpXH!U{fbCbI^17}6Ri*H<>OLR%c|^mh8+)*h~K8Z!9)DPf zR2h?lbDZQ`p9P;&DQ4F0sur@TMa!Y}S8irn(%d-gi0*WxxCSk*A?3lGh=gcYN?FGl z7D=Js!i~0=u3rox^eO3i@$0=n{K1lPNU zwmfjRVmLOCRfe=seV&P*1Iq=^i`502keY8Uy-WNPwVNNtJFx?IwAyRPZo2Wo1+S(xF37LJZ~%i)kpFQ3Fw=mXfd@>%+)RpYQLnr}B~~zoof(JVm^^&f zxKV^+3D3$A1G;qh4gPVjhrC8e(VYUHv#dy^)(RoUFM?o%W-EHxufuWf(l*@-l+7vt z=l`qmR56K~F|v<^Pd*p~1_y^P0P^aPC##d8+HqX4IR1gu+7w#~TBFphJxF)T$2WEa zxa?H&6=Qe7d(#tha?_1uQys2KtHQ{)Qco)qwGjrdNL7thd^G5i8Os)CHqc>iOidS} z%nFEDdm=GXBw=yXe1W-ShHHFb?Cc70+$W~z_+}nAoHFYI1MV1wZegw*0y^tC*s%3h zhD3tN8b=Gv&rj}!SUM6|ajSPp*58KR7MPpI{oAJCtY~JECm)*m_x>AZEu>DFgUcby z1Qaw8lU4jZpQ_$;*7RME+gq1KySGG#Wql>aL~k9tLrSO()LWn*q&YxHEuzmwd1?aAtI zBJ>P=&$=l1efe1CDU;`Fd+_;&wI07?V0aAIgc(!{a z0Jg6Y=inXc3^n!U0Atk`iCFIQooHqcWhO(qrieUOW8X(x?(RD}iYDLMjSwffH2~tB z)oDgNBLB^AJBM1M^c5HdRx6fBfka`(LD-qrlh5jqH~);#nw|iyp)()xVYak3;Ybik z0j`(+69aK*B>)e_p%=wu8XC&9e{AO4c~O1U`5X9}?0mrd*m$_EUek{R?DNSh(=br# z#Q61gBzEpmy`$pA*6!87 zSDD+=@fTY7<4A?GLqpA?Pb2z$pbCc4B4zL{BeZ?F-8`s$?>*lXXtn*NC61>|*w7J* z$?!iB{6R-0=KFmyp1nnEmLsA-H0a6l+1uaH^g%c(p{iT&YFrbQ$&PRb8Up#X3@Zsk zD^^&LK~111%cqlP%!_gFNa^dTYT?rhkGl}5=fL{a`UViaXWI$k-UcHJwmaH1s=S$4 z%4)PdWJX;hh5UoK?6aWoyLxX&NhNRqKam7tcOkLh{%j3K^4Mgx1@i|Pi&}<^5>hs5 zm8?uOS>%)NzT(%PjVPGa?X%`N2TQCKbeH2l;cTnHiHppPSJ<7y-yEIiC!P*ikl&!B z%+?>VttCOQM@ShFguHVjxX^?mHX^hSaO_;pnyh^v9EumqSZTi+#f&_Vaija0Q-e*| z7ulQj6Fs*bbmsWp{`auM04gGwsYYdNNZcg|ph0OgD>7O}Asn7^Z=eI>`$2*v78;sj-}oMoEj&@)9+ycEOo92xSyY344^ z11Hb8^kdOvbf^GNAK++bYioknrpdN>+u8R?JxG=!2Kd9r=YWCOJYXYuM0cOq^FhEd zBg2puKy__7VT3-r*dG4c62Wgxi52EMCQ`bKgf*#*ou(D4-ZN$+mg&7$u!! z-^+Z%;-3IDwqZ|K=ah85OLwkO zKxNBh+4QHh)u9D?MFtpbl)us}9+V!D%w9jfAMYEb>%$A;u)rrI zuBudh;5PN}_6J_}l55P3l_)&RMlH{m!)ai-i$g)&*M`eN$XQMw{v^r@-125^RRCF0 z^2>|DxhQw(mtNEI2Kj(;KblC7x=JlK$@78`O~>V!`|1Lm-^JR$-5pUANAnb(5}B}JGjBsliK4& zk6y(;$e&h)lh2)L=bvZKbvh@>vLlreBdH8No2>$#%_Wp1U0N7Ank!6$dFSi#xzh|( zRi{Uw%-4W!{IXZ)fWx@XX6;&(m_F%c6~X8hx=BN1&q}*( zoaNjWabE{oUPb!Bt$eyd#$5j9rItB-h*5JiNi(v^e|XKAj*8(k<5-2$&ZBR5fF|JA z9&m4fbzNQnAU}r8ab>fFV%J0z5awe#UZ|bz?Ur)U9bCIKWEzi2%A+5CLqh?}K4JHi z4vtM;+uPsVz{Lfr;78W78gC;z*yTch~4YkLr&m-7%-xc ztw6Mh2d>_iO*$Rd8(-Cr1_V8EO1f*^@wRoSozS) zy1UoC@pruAaC8Z_7~_w4Q6n*&B0AjOmMWa;sIav&gu z|J5&|{=a@vR!~k-OjKEgPFCzcJ>#A1uL&7xTDn;{XBdeM}V=l3B8fE1--DHjSaxoSjNKEM9|U9#m2<3>n{Iuo`r3UZp;>GkT2YBNAh|b z^jTq-hJp(ebZh#Lk8hVBP%qXwv-@vbvoREX$TqRGTgEi$%_F9tZES@z8Bx}$#5eeG zk^UsLBH{bc2VBW)*EdS({yw=?qmevwi?BL6*=12k9zM5gJv1>y#ML4!)iiPzVaH9% zgSImetD@dam~e>{LvVh!phhzpW+iFvWpGT#CVE5TQ40n%F|p(sP5mXxna+Ev7PDwA zamaV4m*^~*xV+&p;W749xhb_X=$|LD;FHuB&JL5?*Y2-oIT(wYY2;73<^#46S~Gx| z^cez%V7x$81}UWqS13Gz80379Rj;6~WdiXWOSsdmzY39L;Hg3MH43o*y8ibNBBH`(av4|u;YPq%{R;IuYow<+GEsf@R?=@tT@!}?#>zIIn0CoyV!hq3mw zHj>OOjfJM3F{RG#6ujzo?y32m^tgSXf@v=J$ELdJ+=5j|=F-~hP$G&}tDZsZE?5rX ztGj`!S>)CFmdkccxM9eGIcGnS2AfK#gXwj%esuIBNJQP1WV~b~+D7PJTmWGTSDrR` zEAu4B8l>NPuhsk5a`rReSya2nfV1EK01+G!x8aBdTs3Io$u5!6n6KX%uv@DxAp3F@{4UYg4SWJtQ-W~0MDb|j-$lwVn znAm*Pl!?Ps&3wO=R115RWKb*JKoexo*)uhhHBncEDMSVa_PyA>k{Zm2(wMQ(5NM3# z)jkza|GoWEQo4^s*wE(gHz?Xsg4`}HUAcs42cM1-qq_=+=!Gk^y710j=66(cSWqUe zklbm8+zB_syQv5A2rj!Vbw8;|$@C!vfNmNV!yJIWDQ>{+2x zKjuFX`~~HKG~^6h5FntRpnnHt=D&rq0>IJ9#F0eM)Y-)GpRjiN7gkA8wvnG#K=q{q z9dBn8_~wm4J<3J_vl|9H{7q6u2A!cW{bp#r*-f{gOV^e=8S{nc1DxMHFwuM$;aVI^ zz6A*}m8N-&x8;aunp1w7_vtB*pa+OYBw=TMc6QK=mbA-|Cf* zvyh8D4LRJImooUaSb7t*fVfih<97Gf@VE0|z>NcBwBQze);Rh!k3K_sfunToZY;f2 z^HmC4KjHRVg+eKYj;PRN^|E0>Gj_zagfRbrki68I^#~6-HaHg3BUW%+clM1xQEdPYt_g<2K+z!$>*$9nQ>; zf9Bei{?zY^-e{q_*|W#2rJG`2fy@{%6u0i_VEWTq$*(ZN37|8lFFFt)nCG({r!q#9 z5VK_kkSJ3?zOH)OezMT{!YkCuSSn!K#-Rhl$uUM(bq*jY? zi1xbMVthJ`E>d>(f3)~fozjg^@eheMF6<)I`oeJYx4*+M&%c9VArn(OM-wp%M<-`x z7sLP1&3^%Nld9Dhm@$3f2}87!quhI@nwd@3~fZl_3LYW-B?Ia>ui`ELg z&Qfe!7m6ze=mZ`Ia9$z|ARSw|IdMpooY4YiPN8K z4B(ts3p%2i(Td=tgEHX z0UQ_>URBtG+-?0E;E7Ld^dyZ;jjw0}XZ(}-QzC6+NN=40oDb2^v!L1g9xRvE#@IBR zO!b-2N7wVfLV;mhEaXQ9XAU+>=XVA6f&T4Z-@AX!leJ8obP^P^wP0aICND?~w&NykJ#54x3_@r7IDMdRNy4Hh;h*!u(Ol(#0bJdwEo$5437-UBjQ+j=Ic>Q2z` zJNDf0yO6@mr6y1#n3)s(W|$iE_i8r@Gd@!DWDqZ7J&~gAm1#~maIGJ1sls^gxL9LLG_NhU!pTGty!TbhzQnu)I*S^54U6Yu%ZeCg`R>Q zhBv$n5j0v%O_j{QYWG!R9W?5_b&67KB$t}&e2LdMvd(PxN6Ir!H4>PNlerpBL>Zvyy!yw z-SOo8caEpDt(}|gKPBd$qND5#a5nju^O>V&;f890?yEOfkSG^HQVmEbM3Ugzu+UtH zC(INPDdraBN?P%kE;*Ae%Wto&sgw(crfZ#Qy(<4nk;S|hD3j{IQRI6Yq|f^basLY; z-HB&Je%Gg}Jt@={_C{L$!RM;$$|iD6vu#3w?v?*;&()uB|I-XqEKqZPS!reW9JkLewLb!70T7n`i!gNtb1%vN- zySZj{8-1>6E%H&=V}LM#xmt`J3XQoaD|@XygXjdZ1+P77-=;=eYpoEQ01B@L*a(uW zrZeZz?HJsw_4g0vhUgkg@VF8<-X$B8pOqCuWAl28uB|@r`19DTUQQsb^pfqB6QtiT z*`_UZ`fT}vtUY#%sq2{rchyfu*pCg;uec2$-$N_xgjZcoumE5vSI{+s@iLWoz^Mf; zuI8kDP{!XY6OP~q5}%1&L}CtfH^N<3o4L@J@zg1-mt{9L`s^z$Vgb|mr{@WiwAqKg zp#t-lhrU>F8o0s1q_9y`gQNf~Vb!F%70f}$>i7o4ho$`uciNf=xgJ>&!gSt0g;M>*x4-`U)ysFW&Vs^Vk6m%?iuWU+o&m(2Jm26Y(3%TL; zA7T)BP{WS!&xmxNw%J=$MPfn(9*^*TV;$JwRy8Zl*yUZi8jWYF>==j~&S|Xinsb%c z2?B+kpet*muEW7@AzjBA^wAJBY8i|#C{WtO_or&Nj2{=6JTTX05}|H>N2B|Wf!*3_ z7hW*j6p3TvpghEc6-wufFiY!%-GvOx*bZrhZu+7?iSrZL5q9}igiF^*R3%DE4aCHZ zqu>xS8LkW+Auv%z-<1Xs92u23R$nk@Pk}MU5!gT|c7vGlEA%G^2th&Q*zfg%-D^=f z&J_}jskj|Q;73NP4<4k*Y%pXPU2Thoqr+5uH1yEYM|VtBPW6lXaetokD0u z9qVek6Q&wk)tFbQ8(^HGf3Wp16gKmr>G;#G(HRBx?F`9AIRboK+;OfHaLJ(P>IP0w zyTbTkx_THEOs%Q&aPrxbZrJlio+hCC_HK<4%f3ZoSAyG7Dn`=X=&h@m*|UYO-4Hq0 z-Bq&+Ie!S##4A6OGoC~>ZW`Y5J)*ouaFl_e9GA*VSL!O_@xGiBw!AF}1{tB)z(w%c zS1Hmrb9OC8>0a_$BzeiN?rkPLc9%&;1CZW*4}CDDNr2gcl_3z+WC15&H1Zc2{o~i) z)LLW=WQ{?ricmC`G1GfJ0Yp4Dy~Ba;j6ZV4r{8xRs`13{dD!xXmr^Aga|C=iSmor% z8hi|pTXH)5Yf&v~exp3o+sY4B^^b*eYkkCYl*T{*=-0HniSA_1F53eCb{x~1k3*`W zr~};p1A`k{1DV9=UPnLDgz{aJH=-LQo<5%+Em!DNN252xwIf*wF_zS^!(XSm(9eoj z=*dXG&n0>)_)N5oc6v!>-bd(2ragD8O=M|wGW z!xJQS<)u70m&6OmrF0WSsr@I%T*c#Qo#Ha4d3COcX+9}hM5!7JIGF>7<~C(Ear^Sn zm^ZFkV6~Ula6+8S?oOROOA6$C&q&dp`>oR-2Ym3(HT@O7Sd5c~+kjrmM)YmgPH*tL zX+znN>`tv;5eOfX?h{AuX^LK~V#gPCu=)Tigtq9&?7Xh$qN|%A$?V*v=&-2F$zTUv z`C#WyIrChS5|Kgm_GeudCFf;)!WH7FI60j^0o#65o6`w*S7R@)88n$1nrgU(oU0M9 zx+EuMkC>(4j1;m6NoGqEkpJYJ?vc|B zOlwT3t&UgL!pX_P*6g36`ZXQ; z9~Cv}ANFnJGp(;ZhS(@FT;3e)0)Kp;h^x;$*xZn*k0U6-&FwI=uOGaODdrsp-!K$Ac32^c{+FhI-HkYd5v=`PGsg%6I`4d9Jy)uW0y%) zm&j^9WBAp*P8#kGJUhB!L?a%h$hJgQrx!6KCB_TRo%9{t0J7KW8!o1B!NC)VGLM5! zpZy5Jc{`r{1e(jd%jsG7k%I+m#CGS*BPA65ZVW~fLYw0dA-H_}O zrkGFL&P1PG9p2(%QiEWm6x;U-U&I#;Em$nx-_I^wtgw3xUPVVu zqSuKnx&dIT-XT+T10p;yjo1Y)z(x1fb8Dzfn8e yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} +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..0932ddeaeeee --- /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 = BUBU"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..2e8d2a7b6637 --- /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..60e754529448 --- /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-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 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 zcma&N1CXTcmMvW9vTb(Rwr$&4wr$(C?dmSu>@vG-+vuvg^_??!{yS%8zW-#zn-LkA z5&1^$^{lnmUON?}LBF8_K|(?T0Ra(xUH{($5eN!MR#ZihR#HxkUPe+_R8Cn`RRs(P z_^*#_XlXmGv7!4;*Y%p4nw?{bNp@UZHv1?Um8r6)Fei3p@ClJn0ECfg1hkeuUU@Or zDaPa;U3fE=3L}DooL;8f;P0ipPt0Z~9P0)lbStMS)ag54=uL9ia-Lm3nh|@(Y?B`; zx_#arJIpXH!U{fbCbI^17}6Ri*H<>OLR%c|^mh8+)*h~K8Z!9)DPf zR2h?lbDZQ`p9P;&DQ4F0sur@TMa!Y}S8irn(%d-gi0*WxxCSk*A?3lGh=gcYN?FGl z7D=Js!i~0=u3rox^eO3i@$0=n{K1lPNU zwmfjRVmLOCRfe=seV&P*1Iq=^i`502keY8Uy-WNPwVNNtJFx?IwAyRPZo2Wo1+S(xF37LJZ~%i)kpFQ3Fw=mXfd@>%+)RpYQLnr}B~~zoof(JVm^^&f zxKV^+3D3$A1G;qh4gPVjhrC8e(VYUHv#dy^)(RoUFM?o%W-EHxufuWf(l*@-l+7vt z=l`qmR56K~F|v<^Pd*p~1_y^P0P^aPC##d8+HqX4IR1gu+7w#~TBFphJxF)T$2WEa zxa?H&6=Qe7d(#tha?_1uQys2KtHQ{)Qco)qwGjrdNL7thd^G5i8Os)CHqc>iOidS} z%nFEDdm=GXBw=yXe1W-ShHHFb?Cc70+$W~z_+}nAoHFYI1MV1wZegw*0y^tC*s%3h zhD3tN8b=Gv&rj}!SUM6|ajSPp*58KR7MPpI{oAJCtY~JECm)*m_x>AZEu>DFgUcby z1Qaw8lU4jZpQ_$;*7RME+gq1KySGG#Wql>aL~k9tLrSO()LWn*q&YxHEuzmwd1?aAtI zBJ>P=&$=l1efe1CDU;`Fd+_;&wI07?V0aAIgc(!{a z0Jg6Y=inXc3^n!U0Atk`iCFIQooHqcWhO(qrieUOW8X(x?(RD}iYDLMjSwffH2~tB z)oDgNBLB^AJBM1M^c5HdRx6fBfka`(LD-qrlh5jqH~);#nw|iyp)()xVYak3;Ybik z0j`(+69aK*B>)e_p%=wu8XC&9e{AO4c~O1U`5X9}?0mrd*m$_EUek{R?DNSh(=br# z#Q61gBzEpmy`$pA*6!87 zSDD+=@fTY7<4A?GLqpA?Pb2z$pbCc4B4zL{BeZ?F-8`s$?>*lXXtn*NC61>|*w7J* z$?!iB{6R-0=KFmyp1nnEmLsA-H0a6l+1uaH^g%c(p{iT&YFrbQ$&PRb8Up#X3@Zsk zD^^&LK~111%cqlP%!_gFNa^dTYT?rhkGl}5=fL{a`UViaXWI$k-UcHJwmaH1s=S$4 z%4)PdWJX;hh5UoK?6aWoyLxX&NhNRqKam7tcOkLh{%j3K^4Mgx1@i|Pi&}<^5>hs5 zm8?uOS>%)NzT(%PjVPGa?X%`N2TQCKbeH2l;cTnHiHppPSJ<7y-yEIiC!P*ikl&!B z%+?>VttCOQM@ShFguHVjxX^?mHX^hSaO_;pnyh^v9EumqSZTi+#f&_Vaija0Q-e*| z7ulQj6Fs*bbmsWp{`auM04gGwsYYdNNZcg|ph0OgD>7O}Asn7^Z=eI>`$2*v78;sj-}oMoEj&@)9+ycEOo92xSyY344^ z11Hb8^kdOvbf^GNAK++bYioknrpdN>+u8R?JxG=!2Kd9r=YWCOJYXYuM0cOq^FhEd zBg2puKy__7VT3-r*dG4c62Wgxi52EMCQ`bKgf*#*ou(D4-ZN$+mg&7$u!! z-^+Z%;-3IDwqZ|K=ah85OLwkO zKxNBh+4QHh)u9D?MFtpbl)us}9+V!D%w9jfAMYEb>%$A;u)rrI zuBudh;5PN}_6J_}l55P3l_)&RMlH{m!)ai-i$g)&*M`eN$XQMw{v^r@-125^RRCF0 z^2>|DxhQw(mtNEI2Kj(;KblC7x=JlK$@78`O~>V!`|1Lm-^JR$-5pUANAnb(5}B}JGjBsliK4& zk6y(;$e&h)lh2)L=bvZKbvh@>vLlreBdH8No2>$#%_Wp1U0N7Ank!6$dFSi#xzh|( zRi{Uw%-4W!{IXZ)fWx@XX6;&(m_F%c6~X8hx=BN1&q}*( zoaNjWabE{oUPb!Bt$eyd#$5j9rItB-h*5JiNi(v^e|XKAj*8(k<5-2$&ZBR5fF|JA z9&m4fbzNQnAU}r8ab>fFV%J0z5awe#UZ|bz?Ur)U9bCIKWEzi2%A+5CLqh?}K4JHi z4vtM;+uPsVz{Lfr;78W78gC;z*yTch~4YkLr&m-7%-xc ztw6Mh2d>_iO*$Rd8(-Cr1_V8EO1f*^@wRoSozS) zy1UoC@pruAaC8Z_7~_w4Q6n*&B0AjOmMWa;sIav&gu z|J5&|{=a@vR!~k-OjKEgPFCzcJ>#A1uL&7xTDn;{XBdeM}V=l3B8fE1--DHjSaxoSjNKEM9|U9#m2<3>n{Iuo`r3UZp;>GkT2YBNAh|b z^jTq-hJp(ebZh#Lk8hVBP%qXwv-@vbvoREX$TqRGTgEi$%_F9tZES@z8Bx}$#5eeG zk^UsLBH{bc2VBW)*EdS({yw=?qmevwi?BL6*=12k9zM5gJv1>y#ML4!)iiPzVaH9% zgSImetD@dam~e>{LvVh!phhzpW+iFvWpGT#CVE5TQ40n%F|p(sP5mXxna+Ev7PDwA zamaV4m*^~*xV+&p;W749xhb_X=$|LD;FHuB&JL5?*Y2-oIT(wYY2;73<^#46S~Gx| z^cez%V7x$81}UWqS13Gz80379Rj;6~WdiXWOSsdmzY39L;Hg3MH43o*y8ibNBBH`(av4|u;YPq%{R;IuYow<+GEsf@R?=@tT@!}?#>zIIn0CoyV!hq3mw zHj>OOjfJM3F{RG#6ujzo?y32m^tgSXf@v=J$ELdJ+=5j|=F-~hP$G&}tDZsZE?5rX ztGj`!S>)CFmdkccxM9eGIcGnS2AfK#gXwj%esuIBNJQP1WV~b~+D7PJTmWGTSDrR` zEAu4B8l>NPuhsk5a`rReSya2nfV1EK01+G!x8aBdTs3Io$u5!6n6KX%uv@DxAp3F@{4UYg4SWJtQ-W~0MDb|j-$lwVn znAm*Pl!?Ps&3wO=R115RWKb*JKoexo*)uhhHBncEDMSVa_PyA>k{Zm2(wMQ(5NM3# z)jkza|GoWEQo4^s*wE(gHz?Xsg4`}HUAcs42cM1-qq_=+=!Gk^y710j=66(cSWqUe zklbm8+zB_syQv5A2rj!Vbw8;|$@C!vfNmNV!yJIWDQ>{+2x zKjuFX`~~HKG~^6h5FntRpnnHt=D&rq0>IJ9#F0eM)Y-)GpRjiN7gkA8wvnG#K=q{q z9dBn8_~wm4J<3J_vl|9H{7q6u2A!cW{bp#r*-f{gOV^e=8S{nc1DxMHFwuM$;aVI^ zz6A*}m8N-&x8;aunp1w7_vtB*pa+OYBw=TMc6QK=mbA-|Cf* zvyh8D4LRJImooUaSb7t*fVfih<97Gf@VE0|z>NcBwBQze);Rh!k3K_sfunToZY;f2 z^HmC4KjHRVg+eKYj;PRN^|E0>Gj_zagfRbrki68I^#~6-HaHg3BUW%+clM1xQEdPYt_g<2K+z!$>*$9nQ>; zf9Bei{?zY^-e{q_*|W#2rJG`2fy@{%6u0i_VEWTq$*(ZN37|8lFFFt)nCG({r!q#9 z5VK_kkSJ3?zOH)OezMT{!YkCuSSn!K#-Rhl$uUM(bq*jY? zi1xbMVthJ`E>d>(f3)~fozjg^@eheMF6<)I`oeJYx4*+M&%c9VArn(OM-wp%M<-`x z7sLP1&3^%Nld9Dhm@$3f2}87!quhI@nwd@3~fZl_3LYW-B?Ia>ui`ELg z&Qfe!7m6ze=mZ`Ia9$z|ARSw|IdMpooY4YiPN8K z4B(ts3p%2i(Td=tgEHX z0UQ_>URBtG+-?0E;E7Ld^dyZ;jjw0}XZ(}-QzC6+NN=40oDb2^v!L1g9xRvE#@IBR zO!b-2N7wVfLV;mhEaXQ9XAU+>=XVA6f&T4Z-@AX!leJ8obP^P^wP0aICND?~w&NykJ#54x3_@r7IDMdRNy4Hh;h*!u(Ol(#0bJdwEo$5437-UBjQ+j=Ic>Q2z` zJNDf0yO6@mr6y1#n3)s(W|$iE_i8r@Gd@!DWDqZ7J&~gAm1#~maIGJ1sls^gxL9LLG_NhU!pTGty!TbhzQnu)I*S^54U6Yu%ZeCg`R>Q zhBv$n5j0v%O_j{QYWG!R9W?5_b&67KB$t}&e2LdMvd(PxN6Ir!H4>PNlerpBL>Zvyy!yw z-SOo8caEpDt(}|gKPBd$qND5#a5nju^O>V&;f890?yEOfkSG^HQVmEbM3Ugzu+UtH zC(INPDdraBN?P%kE;*Ae%Wto&sgw(crfZ#Qy(<4nk;S|hD3j{IQRI6Yq|f^basLY; z-HB&Je%Gg}Jt@={_C{L$!RM;$$|iD6vu#3w?v?*;&()uB|I-XqEKqZPS!reW9JkLewLb!70T7n`i!gNtb1%vN- zySZj{8-1>6E%H&=V}LM#xmt`J3XQoaD|@XygXjdZ1+P77-=;=eYpoEQ01B@L*a(uW zrZeZz?HJsw_4g0vhUgkg@VF8<-X$B8pOqCuWAl28uB|@r`19DTUQQsb^pfqB6QtiT z*`_UZ`fT}vtUY#%sq2{rchyfu*pCg;uec2$-$N_xgjZcoumE5vSI{+s@iLWoz^Mf; zuI8kDP{!XY6OP~q5}%1&L}CtfH^N<3o4L@J@zg1-mt{9L`s^z$Vgb|mr{@WiwAqKg zp#t-lhrU>F8o0s1q_9y`gQNf~Vb!F%70f}$>i7o4ho$`uciNf=xgJ>&!gSt0g;M>*x4-`U)ysFW&Vs^Vk6m%?iuWU+o&m(2Jm26Y(3%TL; zA7T)BP{WS!&xmxNw%J=$MPfn(9*^*TV;$JwRy8Zl*yUZi8jWYF>==j~&S|Xinsb%c z2?B+kpet*muEW7@AzjBA^wAJBY8i|#C{WtO_or&Nj2{=6JTTX05}|H>N2B|Wf!*3_ z7hW*j6p3TvpghEc6-wufFiY!%-GvOx*bZrhZu+7?iSrZL5q9}igiF^*R3%DE4aCHZ zqu>xS8LkW+Auv%z-<1Xs92u23R$nk@Pk}MU5!gT|c7vGlEA%G^2th&Q*zfg%-D^=f z&J_}jskj|Q;73NP4<4k*Y%pXPU2Thoqr+5uH1yEYM|VtBPW6lXaetokD0u z9qVek6Q&wk)tFbQ8(^HGf3Wp16gKmr>G;#G(HRBx?F`9AIRboK+;OfHaLJ(P>IP0w zyTbTkx_THEOs%Q&aPrxbZrJlio+hCC_HK<4%f3ZoSAyG7Dn`=X=&h@m*|UYO-4Hq0 z-Bq&+Ie!S##4A6OGoC~>ZW`Y5J)*ouaFl_e9GA*VSL!O_@xGiBw!AF}1{tB)z(w%c zS1Hmrb9OC8>0a_$BzeiN?rkPLc9%&;1CZW*4}CDDNr2gcl_3z+WC15&H1Zc2{o~i) z)LLW=WQ{?ricmC`G1GfJ0Yp4Dy~Ba;j6ZV4r{8xRs`13{dD!xXmr^Aga|C=iSmor% z8hi|pTXH)5Yf&v~exp3o+sY4B^^b*eYkkCYl*T{*=-0HniSA_1F53eCb{x~1k3*`W zr~};p1A`k{1DV9=UPnLDgz{aJH=-LQo<5%+Em!DNN252xwIf*wF_zS^!(XSm(9eoj z=*dXG&n0>)_)N5oc6v!>-bd(2ragD8O=M|wGW z!xJQS<)u70m&6OmrF0WSsr@I%T*c#Qo#Ha4d3COcX+9}hM5!7JIGF>7<~C(Ear^Sn zm^ZFkV6~Ula6+8S?oOROOA6$C&q&dp`>oR-2Ym3(HT@O7Sd5c~+kjrmM)YmgPH*tL zX+znN>`tv;5eOfX?h{AuX^LK~V#gPCu=)Tigtq9&?7Xh$qN|%A$?V*v=&-2F$zTUv z`C#WyIrChS5|Kgm_GeudCFf;)!WH7FI60j^0o#65o6`w*S7R@)88n$1nrgU(oU0M9 zx+EuMkC>(4j1;m6NoGqEkpJYJ?vc|B zOlwT3t&UgL!pX_P*6g36`ZXQ; z9~Cv}ANFnJGp(;ZhS(@FT;3e)0)Kp;h^x;$*xZn*k0U6-&FwI=uOGaODdrsp-!K$Ac32^c{+FhI-HkYd5v=`PGsg%6I`4d9Jy)uW0y%) zm&j^9WBAp*P8#kGJUhB!L?a%h$hJgQrx!6KCB_TRo%9{t0J7KW8!o1B!NC)VGLM5! zpZy5Jc{`r{1e(jd%jsG7k%I+m#CGS*BPA65ZVW~fLYw0dA-H_}O zrkGFL&P1PG9p2(%QiEWm6x;U-U&I#;Em$nx-_I^wtgw3xUPVVu zqSuKnx&dIT-XT+T10p;yjo1Y)z(x1fb8Dzfn8e yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} +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..0b5ed4395af5 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/ItemsApiController.kt @@ -0,0 +1,92 @@ +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..2e8d2a7b6637 --- /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..3da2dce66840 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -0,0 +1,258 @@ +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..c3e35118b567 --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -0,0 +1,119 @@ +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..60e754529448 --- /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..44a68f6ebf3f --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -0,0 +1,205 @@ +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 + } +} From 8b838c667755f914ac1953307ebc832239311ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 16:23:06 +0100 Subject: [PATCH 16/29] fix compilation error --- .github/workflows/samples-kotlin-server-jdk17.yaml | 1 - .github/workflows/samples-kotlin-server.yaml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/samples-kotlin-server-jdk17.yaml b/.github/workflows/samples-kotlin-server-jdk17.yaml index 589afe3abb27..cd63ee80cd00 100644 --- a/.github/workflows/samples-kotlin-server-jdk17.yaml +++ b/.github/workflows/samples-kotlin-server-jdk17.yaml @@ -37,7 +37,6 @@ 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-dollar-issue-swagger1 - samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2 - samples/server/petstore/kotlin-springboot-additionalproperties - samples/server/petstore/kotlin-springboot-delegate-nodefaults 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 From baefe50fc99f70b634e4af3f73fb08937fd1e1f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 16:33:22 +0100 Subject: [PATCH 17/29] fix one more place --- .../src/main/resources/kotlin-spring/formParams.mustache | 2 +- .../src/main/kotlin/org/openapitools/api/DefaultApiClient.kt | 2 +- .../src/main/kotlin/org/openapitools/api/DefaultApiClient.kt | 2 +- .../src/main/kotlin/org/openapitools/api/DefaultApiClient.kt | 2 +- .../src/main/kotlin/org/openapitools/api/DefaultApiClient.kt | 2 +- .../.openapi-generator/FILES | 4 ---- .../main/kotlin/org/openapitools/api/ItemsApiController.kt | 2 +- 7 files changed, 6 insertions(+), 10 deletions(-) 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 5ff9f9ef436f..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 = "{{#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}}KOKO{{{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}}BUBU{{{defaultValue}}}{{^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 +{{#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/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 index 037f95a5511f..6fe0db391743 100644 --- 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 @@ -52,7 +52,7 @@ interface DefaultApi { 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 = BUBU"SQ = \"; SBS = \\; DBS = \\\\; SD = $some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: 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 { 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 index eb5faf53717d..c6c37b77d436 100644 --- 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 @@ -53,7 +53,7 @@ interface DefaultApi { 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 = BUBU"SQ = \"; SBS = \\; DBS = \\\\; SD = $some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: 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> 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 index bc4cd324d67b..0497c8fd65e7 100644 --- 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 @@ -51,7 +51,7 @@ interface DefaultApi { 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 = BUBU"SQ = \"; SBS = \\; DBS = \\\\; SD = $some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: 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 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 index bc4cd324d67b..0497c8fd65e7 100644 --- 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 @@ -51,7 +51,7 @@ interface DefaultApi { 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 = BUBU"SQ = \"; SBS = \\; DBS = \\\\; SD = $some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: 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 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 index 15ef52ad8fe7..8ba65087e770 100644 --- 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 @@ -34,7 +34,3 @@ 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 -src/test/kotlin/org/openapitools/api/ItemsApiTest.kt -src/test/kotlin/org/openapitools/api/PetApiTest.kt -src/test/kotlin/org/openapitools/api/StoreApiTest.kt -src/test/kotlin/org/openapitools/api/UserApiTest.kt 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 index 0932ddeaeeee..2d2f6caffc94 100644 --- 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 @@ -74,7 +74,7 @@ class ItemsApiController(@Autowired(required = true) val service: ItemsApiServic 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 = BUBU"SQ = \"; SBS = \\; DBS = \\\\; SD = $some")) @Valid @RequestParam(value = "form\$Value", required = false) formDollarValue: 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)) } From acce9f3e9e88f8c927f8c8c29dc1368c20a6edcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 16:47:27 +0100 Subject: [PATCH 18/29] fix incorrect test assert after fixing api spec "required" attribute --- .../codegen/kotlin/spring/KotlinSpringServerCodegenTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d28873bb0148..60df1a1861a2 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 @@ -660,7 +660,7 @@ public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreate 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 = false) image: org.springframework.web.multipart.MultipartFile") + "@Parameter(description = \"image to upload\") @Valid @RequestPart(\"image\", required = true) image: org.springframework.web.multipart.MultipartFile") ) ); } From 6def29079546c0e57fb3c9a5cf5e25a9f93a91cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 17:00:07 +0100 Subject: [PATCH 19/29] try disabling tests --- .../codegen/kotlin/spring/KotlinSpringServerCodegenTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 60df1a1861a2..fa10bfb256ec 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 @@ -6,6 +6,7 @@ import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.io.FileUtils; import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; @@ -2585,7 +2586,7 @@ public void testValidationsInQueryParams_issue21238_Api_Delegate() { )); } - + @Disabled @Test public void testDollarsAndQuotesSwagger1() { Path apiSources = generateApiSources( @@ -2676,6 +2677,7 @@ public void testDollarsAndQuotesSwagger1() { )); } + @Disabled @Test public void testDollarsAndQuotesSwagger2() { Path apiSources = generateApiSources( From 378250c9767118cf82a6a6725524edf7112ff086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 17:11:20 +0100 Subject: [PATCH 20/29] comment out the tests to disable them --- .../spring/KotlinSpringServerCodegenTest.java | 347 +++++++++--------- 1 file changed, 174 insertions(+), 173 deletions(-) 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 fa10bfb256ec..7e49213e9b24 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 @@ -2586,179 +2586,180 @@ public void testValidationsInQueryParams_issue21238_Api_Delegate() { )); } - @Disabled - @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\"" - ) - )); - } - - @Disabled - @Test - 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" - ) - )); - } +// @Disabled +// @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\"" +// ) +// )); +// } +// +// @org.junit.Test +// @Disabled +// @Test +// 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, From f4a1cc52ac05a22ccb2a59a604cb91fc034f11c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 17:24:23 +0100 Subject: [PATCH 21/29] fix tests on linux --- .../spring/KotlinSpringServerCodegenTest.java | 346 +++++++++--------- 1 file changed, 171 insertions(+), 175 deletions(-) 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 7e49213e9b24..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 @@ -6,7 +6,6 @@ import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.io.FileUtils; import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; @@ -2586,180 +2585,177 @@ public void testValidationsInQueryParams_issue21238_Api_Delegate() { )); } -// @Disabled -// @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\"" -// ) -// )); -// } -// -// @org.junit.Test -// @Disabled -// @Test -// 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" -// ) -// )); -// } + @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 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, From c350638c9c61a505c2eee693568b5b8c988d2d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Thu, 27 Nov 2025 17:32:00 +0100 Subject: [PATCH 22/29] also add compile tests for interface_only to show multiline dollar escaping --- .../samples-kotlin-server-jdk17.yaml | 1 + ...-dollar-issue-swagger2-interface-only.yaml | 14 + .../.openapi-generator-ignore | 23 ++ .../.openapi-generator/FILES | 25 ++ .../.openapi-generator/VERSION | 1 + .../README.md | 21 ++ .../build.gradle.kts | 47 ++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../gradlew | 249 ++++++++++++++++++ .../gradlew.bat | 92 +++++++ .../pom.xml | 149 +++++++++++ .../settings.gradle | 15 ++ .../openapitools/SpringDocConfiguration.kt | 42 +++ .../kotlin/org/openapitools/api/ApiUtil.kt | 19 ++ .../kotlin/org/openapitools/api/Exceptions.kt | 30 +++ .../kotlin/org/openapitools/api/ItemsApi.kt | 99 +++++++ .../kotlin/org/openapitools/api/PetApi.kt | 238 +++++++++++++++++ .../kotlin/org/openapitools/api/StoreApi.kt | 133 ++++++++++ .../kotlin/org/openapitools/api/UserApi.kt | 223 ++++++++++++++++ .../kotlin/org/openapitools/model/Category.kt | 37 +++ .../ItemWithDollarAttributesAndExamples.kt | 36 +++ ...sItemIdSomethingItemSubIdGet200Response.kt | 42 +++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 +++ .../openapitools/model/ModelApiResponse.kt | 40 +++ .../kotlin/org/openapitools/model/Order.kt | 74 ++++++ .../main/kotlin/org/openapitools/model/Pet.kt | 79 ++++++ .../main/kotlin/org/openapitools/model/Tag.kt | 36 +++ .../kotlin/org/openapitools/model/User.kt | 60 +++++ 29 files changed, 1868 insertions(+) create mode 100644 bin/configs/kotlin-spring-boot-3-dollar-issue-swagger2-interface-only.yaml create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator-ignore create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/FILES create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/VERSION create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/README.md create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/build.gradle.kts create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.jar create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradle/wrapper/gradle-wrapper.properties create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/gradlew.bat create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/pom.xml create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/settings.gradle create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/SpringDocConfiguration.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ApiUtil.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/Exceptions.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/ItemsApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/PetApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/StoreApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/api/UserApi.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Category.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Order.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Pet.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/Tag.kt create mode 100644 samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/src/main/kotlin/org/openapitools/model/User.kt diff --git a/.github/workflows/samples-kotlin-server-jdk17.yaml b/.github/workflows/samples-kotlin-server-jdk17.yaml index cd63ee80cd00..a95a26de17de 100644 --- a/.github/workflows/samples-kotlin-server-jdk17.yaml +++ b/.github/workflows/samples-kotlin-server-jdk17.yaml @@ -38,6 +38,7 @@ jobs: - 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/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/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..fae00c58b99b --- /dev/null +++ b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2-interface-only/.openapi-generator/FILES @@ -0,0 +1,25 @@ +.openapi-generator-ignore +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 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} +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 + } +} + From bd6c1ef5a7c653b1fae9b140d70a2b6f023de563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 28 Nov 2025 12:59:07 +0100 Subject: [PATCH 23/29] fix samples up to date --- .../.openapi-generator/FILES | 1 - 1 file changed, 1 deletion(-) 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 index fae00c58b99b..65587b352876 100644 --- 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 @@ -1,4 +1,3 @@ -.openapi-generator-ignore README.md build.gradle.kts gradle/wrapper/gradle-wrapper.jar From da86be49a0f7cec490fc09ed935fca07beb8e01d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 28 Nov 2025 14:07:27 +0100 Subject: [PATCH 24/29] fix samples up to date --- .../main/resources/kotlin-spring/api.mustache | 6 +- .../openapitools/api/ItemsApiController.kt | 12 ++-- .../org/openapitools/api/PetApiController.kt | 60 ++++++++++++------- .../openapitools/api/StoreApiController.kt | 24 +++++--- .../org/openapitools/api/UserApiController.kt | 54 +++++++++++------ .../org/openapitools/api/PetApiController.kt | 48 ++++++++++----- .../openapitools/api/StoreApiController.kt | 24 +++++--- .../org/openapitools/api/UserApiController.kt | 48 ++++++++++----- .../org/openapitools/api/PetApiController.kt | 48 ++++++++++----- .../openapitools/api/StoreApiController.kt | 24 +++++--- .../org/openapitools/api/UserApiController.kt | 48 ++++++++++----- .../openapitools/api/ItemsApiController.kt | 12 ++-- .../org/openapitools/api/PetApiController.kt | 48 ++++++++++----- .../openapitools/api/StoreApiController.kt | 24 +++++--- .../org/openapitools/api/UserApiController.kt | 48 ++++++++++----- 15 files changed, 352 insertions(+), 176 deletions(-) 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 914fffbc9c40..cecfbde092e7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/api.mustache @@ -86,9 +86,11 @@ class {{classname}}Controller({{#serviceInterface}}@Autowired(required = true) v 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 = "{{#lambda.escapeDollar}}{{{message}}}{{/lambda.escapeDollar}}"{{#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}} /* "{{{path}}}" */]{{#singleContentTypes}}{{#hasProduces}}, 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 index 0b5ed4395af5..d1a61211e519 100644 --- 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 @@ -41,9 +41,11 @@ class ItemsApiController(@Autowired(required = true) val service: ItemsApiServic value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsItemIdSomethingItemSubIdGet", notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", - response = ItemsItemIdSomethingItemSubIdGet200Response::class) + response = ItemsItemIdSomethingItemSubIdGet200Response::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)]) + 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}" */], @@ -67,9 +69,11 @@ class ItemsApiController(@Autowired(required = true) val service: ItemsApiServic value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsPost", notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", - response = ItemWithDollarAttributesAndExamples::class) + response = ItemWithDollarAttributesAndExamples::class + ) @ApiResponses( - value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)]) + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ITEMS_POST /* "/items" */], 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 index 3da2dce66840..acce2c6aef97 100644 --- 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 @@ -41,9 +41,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" */], @@ -60,9 +62,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}" */] @@ -81,9 +85,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" */], @@ -102,9 +108,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" */], @@ -122,9 +130,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { 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")])]) + 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)]) + 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" */], @@ -142,9 +152,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}" */], @@ -161,9 +173,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" */], @@ -180,9 +194,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}" */], @@ -202,9 +218,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" */], @@ -225,9 +243,11 @@ class PetApiController(@Autowired(required = true) val service: PetApiService) { 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")])]) + 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_MULTIPLE_FILE /* "/pet/{petId}/uploadMultipleImage" */], 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 index c3e35118b567..755eb01d364d 100644 --- 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 @@ -39,9 +39,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}" */] @@ -59,9 +61,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" */], @@ -76,9 +80,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}" */], @@ -95,9 +101,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-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 index 44a68f6ebf3f..34a1ec737fb2 100644 --- 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 @@ -39,9 +39,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" */] @@ -56,9 +58,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" */] @@ -73,9 +77,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" */] @@ -90,9 +96,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}" */] @@ -108,9 +116,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}" */], @@ -127,9 +137,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" */], @@ -146,9 +158,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" */] @@ -161,9 +175,11 @@ class UserApiController(@Autowired(required = true) val service: UserApiService) @ApiOperation( value = "logoutUserOptions", nickname = "logoutUserOptions", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "endpoint configuration response")]) + value = [ApiResponse(code = 200, message = "endpoint configuration response")] + ) @RequestMapping( method = [RequestMethod.OPTIONS], value = [PATH_LOGOUT_USER_OPTIONS /* "/user/logout" */] @@ -176,9 +192,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-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/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-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/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/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 index 1afe5147feaf..457d0e7251ed 100644 --- 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 @@ -43,9 +43,11 @@ class ItemsApiController() { value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsItemIdSomethingItemSubIdGet", notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", - response = ItemsItemIdSomethingItemSubIdGet200Response::class) + response = ItemsItemIdSomethingItemSubIdGet200Response::class + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemsItemIdSomethingItemSubIdGet200Response::class)]) + 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}" */], @@ -70,9 +72,11 @@ class ItemsApiController() { value = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", nickname = "itemsPost", notes = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", - response = ItemWithDollarAttributesAndExamples::class) + response = ItemWithDollarAttributesAndExamples::class + ) @ApiResponses( - value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)]) + value = [ApiResponse(code = 201, message = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", response = ItemWithDollarAttributesAndExamples::class)] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_ITEMS_POST /* "/items" */], diff --git a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt index 8eab3c69bcc6..d2bd3af5781f 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/PetApiController.kt @@ -43,9 +43,11 @@ class PetApiController() { 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" */], @@ -63,9 +65,11 @@ class PetApiController() { 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}" */] @@ -85,9 +89,11 @@ class PetApiController() { 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" */], @@ -107,9 +113,11 @@ class PetApiController() { 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" */], @@ -128,9 +136,11 @@ class PetApiController() { 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}" */], @@ -148,9 +158,11 @@ class PetApiController() { 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" */], @@ -168,9 +180,11 @@ class PetApiController() { 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}" */], @@ -191,9 +205,11 @@ class PetApiController() { 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-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt index 944a8f92c6ed..685b3f1a68aa 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/StoreApiController.kt @@ -41,9 +41,11 @@ class StoreApiController() { @ApiOperation( value = "Delete purchase order by ID", nickname = "deleteOrder", - notes = "") + 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], value = [PATH_DELETE_ORDER /* "/store/order/{orderId}" */] @@ -62,9 +64,11 @@ class StoreApiController() { notes = "", 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" */], @@ -79,9 +83,11 @@ class StoreApiController() { value = "Find purchase order by ID", nickname = "getOrderById", notes = "", - 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}" */], @@ -99,9 +105,11 @@ class StoreApiController() { 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-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt index 429bcf6a2682..f257f0533cc5 100644 --- a/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt +++ b/samples/server/petstore/kotlin-springboot-x-kotlin-implements/src/main/kotlin/org/openapitools/api/UserApiController.kt @@ -41,9 +41,11 @@ class UserApiController() { @ApiOperation( value = "Create user", nickname = "createUser", - notes = "") + notes = "" + ) @ApiResponses( - value = [ApiResponse(code = 200, message = "successful operation")]) + value = [ApiResponse(code = 200, message = "successful operation")] + ) @RequestMapping( method = [RequestMethod.POST], value = [PATH_CREATE_USER /* "/user" */], @@ -60,9 +62,11 @@ class UserApiController() { @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" */], @@ -79,9 +83,11 @@ class UserApiController() { @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" */], @@ -98,9 +104,11 @@ class UserApiController() { @ApiOperation( value = "Delete user", nickname = "deleteUser", - notes = "") + 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], value = [PATH_DELETE_USER /* "/user/{username}" */] @@ -117,9 +125,11 @@ class UserApiController() { 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}" */], @@ -137,9 +147,11 @@ class UserApiController() { 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" */], @@ -157,9 +169,11 @@ class UserApiController() { @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" */] @@ -172,9 +186,11 @@ class UserApiController() { @ApiOperation( value = "Updated user", nickname = "updateUser", - notes = "") + 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], value = [PATH_UPDATE_USER /* "/user/{username}" */], From 7a6509447b3ecac8c494fbf980c1a31aae0180e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 28 Nov 2025 15:34:00 +0100 Subject: [PATCH 25/29] fix javadoc --- .../codegen/CodegenOperation.java | 6 ++-- .../openapitools/codegen/CodegenResponse.java | 5 ++- .../openapitools/codegen/DefaultCodegen.java | 5 +++ .../generatedCodeWarning.mustache | 5 +++ .../resources/kotlin-spring/service.mustache | 14 ++++---- .../org/openapitools/api/ItemsApiService.kt | 34 +++++++++---------- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/ItemsApiService.kt | 34 +++++++++---------- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- .../org/openapitools/api/StoreApiService.kt | 4 +-- 21 files changed, 87 insertions(+), 72 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/kotlin-spring/generatedCodeWarning.mustache 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/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/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/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 index 2e8d2a7b6637..918cb1610b33 100644 --- 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 @@ -6,30 +6,30 @@ import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response interface ItemsApiService { /** - * GET /items/{item$Id}/something/{item$SubId} : SQ = \"; SBS = \\; DBS = \\\\; SD = $some - * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * 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) + * @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 + * 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) + * @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/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-3-dollar-issue-swagger2/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- 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 @@ -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-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/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 index 2e8d2a7b6637..918cb1610b33 100644 --- 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 @@ -6,30 +6,30 @@ import org.openapitools.model.ItemsItemIdSomethingItemSubIdGet200Response interface ItemsApiService { /** - * GET /items/{item$Id}/something/{item$SubId} : SQ = \"; SBS = \\; DBS = \\\\; SD = $some - * SQ = \"; SBS = \\; DBS = \\\\; SD = $some + * 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) + * @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 + * 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) + * @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/StoreApiService.kt b/samples/server/petstore/kotlin-springboot-dollar-issue-swagger1/src/main/kotlin/org/openapitools/api/StoreApiService.kt index 60e754529448..c65ddf31c90a 100644 --- 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 @@ -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-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/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-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/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/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) From f6692f42cca6354858d0f25e186c549f6bb200f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Fri, 28 Nov 2025 15:45:13 +0100 Subject: [PATCH 26/29] update samples --- samples/documentation/html2/index.html | 126 ++++++++++++------------- 1 file changed, 63 insertions(+), 63 deletions(-) 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 From b313da5a5aae0538da14512f543066febac74657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Sat, 29 Nov 2025 00:52:03 +0100 Subject: [PATCH 27/29] break everything by evil (valid) petstore with dollars swagger spec --- bin/configs/kotlin-explicit.yaml | 2 +- bin/configs/kotlin-gson.yaml | 2 +- bin/configs/kotlin-jackson.yaml | 2 +- bin/configs/kotlin-jvm-ktor-jackson.yaml | 2 +- .../kotlin-jvm-okhttp4-coroutines.yaml | 2 +- ...n-jvm-retrofit2-kotlinx_serialization.yaml | 2 +- .../kotlin-jvm-retrofit2-retrofit2.yaml | 2 +- bin/configs/kotlin-jvm-retrofit2-rx3.yaml | 2 +- bin/configs/kotlin-jvm-volley.yaml | 2 +- bin/configs/kotlin-kotlinx-datetime.yaml | 2 +- bin/configs/kotlin-modelMutable.yaml | 2 +- bin/configs/kotlin-moshi-codegen.yaml | 2 +- ...kotlin-multiplatform-kotlinx-datetime.yaml | 2 +- bin/configs/kotlin-multiplatform.yaml | 2 +- bin/configs/kotlin-nonpublic.yaml | 2 +- bin/configs/kotlin-nullable.yaml | 2 +- .../kotlin-server-jaxrs-spec-mutiny.yaml | 2 +- bin/configs/kotlin-server-jaxrs-spec.yaml | 2 +- bin/configs/kotlin-server-ktor.yaml | 2 +- bin/configs/kotlin-server-modelMutable.yaml | 2 +- bin/configs/kotlin.yaml | 2 +- .../resources/2_0/petstore-with-dollars.yaml | 808 ++++++++++++++++++ .../kotlin-explicit/.openapi-generator/FILES | 8 + .../client/petstore/kotlin-explicit/README.md | 5 + .../kotlin-explicit/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../kotlin-gson/.openapi-generator/FILES | 8 + samples/client/petstore/kotlin-gson/README.md | 5 + .../petstore/kotlin-gson/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 43 + ...sItemIdSomethingItemSubIdGet200Response.kt | 48 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 43 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../kotlin-jackson/.openapi-generator/FILES | 8 + .../client/petstore/kotlin-jackson/README.md | 5 + .../kotlin-jackson/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../kotlin-jvm-ktor-jackson/README.md | 5 + .../docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 123 +++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../kotlin-jvm-okhttp4-coroutines/README.md | 5 + .../docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 234 +++++ .../ItemWithDollarAttributesAndExamples.kt | 47 + ...sItemIdSomethingItemSubIdGet200Response.kt | 52 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 47 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 11 + .../petstore/kotlin-jvm-volley/README.md | 5 + .../kotlin-jvm-volley/docs/DefaultApi.md | 100 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 179 ++++ .../ItemWithDollarAttributesAndExamples.kt | 51 ++ ...sItemIdSomethingItemSubIdGet200Response.kt | 57 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 51 ++ ...ithDollarAttributesAndExamplesRoomModel.kt | 44 + ...SubIdGet200ResponseDetailsInfoRoomModel.kt | 44 + ...methingItemSubIdGet200ResponseRoomModel.kt | 47 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../kotlin-kotlinx-datetime/README.md | 5 + .../docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../petstore/kotlin-modelMutable/README.md | 5 + .../kotlin-modelMutable/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../petstore/kotlin-moshi-codegen/README.md | 5 + .../kotlin-moshi-codegen/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../README.md | 5 + .../docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 127 +++ .../ItemWithDollarAttributesAndExamples.kt | 43 + ...sItemIdSomethingItemSubIdGet200Response.kt | 47 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 43 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../petstore/kotlin-multiplatform/README.md | 5 + .../kotlin-multiplatform/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 127 +++ .../ItemWithDollarAttributesAndExamples.kt | 43 + ...sItemIdSomethingItemSubIdGet200Response.kt | 47 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 43 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../kotlin-nonpublic/.openapi-generator/FILES | 8 + .../petstore/kotlin-nonpublic/README.md | 5 + .../kotlin-nonpublic/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../kotlin-nullable/.openapi-generator/FILES | 8 + .../client/petstore/kotlin-nullable/README.md | 5 + .../kotlin-nullable/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 48 ++ ...sItemIdSomethingItemSubIdGet200Response.kt | 53 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 48 ++ .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../README.md | 5 + .../docs/DefaultApi.md | 98 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 48 ++ .../ItemWithDollarAttributesAndExamples.kt | 49 ++ ...sItemIdSomethingItemSubIdGet200Response.kt | 54 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 49 ++ .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 8 + .../petstore/kotlin-retrofit2-rx3/README.md | 5 + .../kotlin-retrofit2-rx3/docs/DefaultApi.md | 98 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 48 ++ .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../kotlin-retrofit2/.openapi-generator/FILES | 8 + .../petstore/kotlin-retrofit2/README.md | 5 + .../kotlin-retrofit2/docs/DefaultApi.md | 98 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 47 + .../ItemWithDollarAttributesAndExamples.kt | 44 + ...sItemIdSomethingItemSubIdGet200Response.kt | 49 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 44 + .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../petstore/kotlin/.openapi-generator/FILES | 8 + samples/client/petstore/kotlin/README.md | 5 + .../client/petstore/kotlin/docs/DefaultApi.md | 116 +++ .../ItemWithDollarAttributesAndExamples.md | 11 + ...sItemIdSomethingItemSubIdGet200Response.md | 12 + ...thingItemSubIdGet200ResponseDetailsInfo.md | 11 + .../openapitools/client/apis/DefaultApi.kt | 232 +++++ .../ItemWithDollarAttributesAndExamples.kt | 48 ++ ...sItemIdSomethingItemSubIdGet200Response.kt | 53 ++ ...thingItemSubIdGet200ResponseDetailsInfo.kt | 48 ++ .../client/apis/DefaultApiTest.kt | 54 ++ ...ItemWithDollarAttributesAndExamplesTest.kt | 41 + ...gItemSubIdGet200ResponseDetailsInfoTest.kt | 41 + ...mIdSomethingItemSubIdGet200ResponseTest.kt | 48 ++ .../.openapi-generator/FILES | 4 + .../kotlin-server-modelMutable/README.md | 5 + .../kotlin/org/openapitools/server/AppMain.kt | 2 + .../kotlin/org/openapitools/server/Paths.kt | 21 + .../openapitools/server/apis/DefaultApi.kt | 68 ++ .../ItemWithDollarAttributesAndExamples.kt | 28 + ...sItemIdSomethingItemSubIdGet200Response.kt | 31 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 28 + .../.openapi-generator/FILES | 4 + .../kotlin-server/jaxrs-spec-mutiny/README.md | 5 + .../openapitools/server/apis/DefaultApi.kt | 28 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../jaxrs-spec/.openapi-generator/FILES | 4 + .../kotlin-server/jaxrs-spec/README.md | 5 + .../openapitools/server/apis/DefaultApi.kt | 30 + .../ItemWithDollarAttributesAndExamples.kt | 36 + ...sItemIdSomethingItemSubIdGet200Response.kt | 42 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 36 + .../ktor/.openapi-generator/FILES | 4 + .../petstore/kotlin-server/ktor/README.md | 5 + .../kotlin/org/openapitools/server/AppMain.kt | 2 + .../kotlin/org/openapitools/server/Paths.kt | 21 + .../openapitools/server/apis/DefaultApi.kt | 68 ++ .../ItemWithDollarAttributesAndExamples.kt | 30 + ...sItemIdSomethingItemSubIdGet200Response.kt | 33 + ...thingItemSubIdGet200ResponseDetailsInfo.kt | 30 + 291 files changed, 12889 insertions(+), 21 deletions(-) create mode 100644 modules/openapi-generator/src/test/resources/2_0/petstore-with-dollars.yaml create mode 100644 samples/client/petstore/kotlin-explicit/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-explicit/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-explicit/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-explicit/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-gson/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-gson/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-gson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-gson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-gson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-jackson/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-jackson/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-ktor-jackson/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-okhttp4-coroutines/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-jvm-volley/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-jvm-volley/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemWithDollarAttributesAndExamplesRoomModel.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoRoomModel.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/main/java/org/openapitools/client/models/room/ItemsItemIdSomethingItemSubIdGet200ResponseRoomModel.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-jvm-volley/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-modelMutable/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-modelMutable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-modelMutable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-moshi-codegen/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-moshi-codegen/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-moshi-codegen/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform-kotlinx-datetime/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-multiplatform/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-multiplatform/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-multiplatform/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-nonpublic/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-nonpublic/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-nonpublic/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-nullable/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-nullable/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-nullable/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-nullable/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-kotlinx_serialization/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2-rx3/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin-retrofit2/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin-retrofit2/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin-retrofit2/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/client/petstore/kotlin/docs/DefaultApi.md create mode 100644 samples/client/petstore/kotlin/docs/ItemWithDollarAttributesAndExamples.md create mode 100644 samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200Response.md create mode 100644 samples/client/petstore/kotlin/docs/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.md create mode 100644 samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt create mode 100644 samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/apis/DefaultApiTest.kt create mode 100644 samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemWithDollarAttributesAndExamplesTest.kt create mode 100644 samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfoTest.kt create mode 100644 samples/client/petstore/kotlin/src/test/kotlin/org/openapitools/client/models/ItemsItemIdSomethingItemSubIdGet200ResponseTest.kt create mode 100644 samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt create mode 100644 samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-server-modelMutable/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec-mutiny/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-server/jaxrs-spec/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt create mode 100644 samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/apis/DefaultApi.kt create mode 100644 samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemWithDollarAttributesAndExamples.kt create mode 100644 samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200Response.kt create mode 100644 samples/server/petstore/kotlin-server/ktor/src/main/kotlin/org/openapitools/server/models/ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo.kt 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.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/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/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..537d1f3bbbcc --- /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..288d77ba50ad --- /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..0faea8c5b2e8 --- /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..2d4db6241a7d --- /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..54b27804dc9f --- /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..78038d1b64e9 --- /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..8fcba3c8b312 --- /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..11458d4b8b2a --- /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..8f130ab46ed7 --- /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..c7287a048ee8 --- /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..40759067d8cc --- /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..5fa1542b0af2 --- /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..92b5d6c68855 --- /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..c7287a048ee8 --- /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..40759067d8cc --- /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..5fa1542b0af2 --- /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..08f4ff47497b --- /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..f650e90ff022 --- /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..38e9c0e8fc78 --- /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..eb6c9f295785 --- /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..0f606aa97635 --- /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..27829b1fa242 --- /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..d5d6ef7cdff3 --- /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..e71b9f3b4ff3 --- /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..4c36a15d13d6 --- /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..65d31e8c10b2 --- /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..2d75bf744f36 --- /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..eb3a9e4c02ea --- /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..4c36a15d13d6 --- /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..ecacabbcc7cf --- /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..f27f1367c55e --- /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..1bdb71dcbdf1 --- /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..4c36a15d13d6 --- /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..0a9f992f8bef --- /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..9cbfce208d12 --- /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..f423fdff408f --- /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..4b54133bc392 --- /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..94da91dfd4ea --- /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..c4b1e0e0a045 --- /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..735487ee33e2 --- /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..4b54133bc392 --- /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..94da91dfd4ea --- /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..c4b1e0e0a045 --- /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..735487ee33e2 --- /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..00551ab6402f --- /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..09cbc7fa3079 --- /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..cdc1687e9cc4 --- /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..4cb8c8427c6d --- /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..c7bf41fad01e --- /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..740f6f2c36ce --- /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..7ca2e7393fd6 --- /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..e26579b199ad --- /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..9f3b69150ee2 --- /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..9b0c908575e9 --- /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..2f74ccee495d --- /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..b0dd394b86bd --- /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..37075c27519b --- /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..65d31e8c10b2 --- /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..2d75bf744f36 --- /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..eb3a9e4c02ea --- /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..451c00482577 --- /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..65d31e8c10b2 --- /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..2d75bf744f36 --- /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..eb3a9e4c02ea --- /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..4c36a15d13d6 --- /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..740f6f2c36ce --- /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..7ca2e7393fd6 --- /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..e26579b199ad --- /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/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..bc15ccc98744 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..3fbda184f5bd --- /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..b224fa349533 --- /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..0e7ef2924eff --- /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..21052c2e1165 --- /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..2152c4610fe9 --- /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..779202aa4e16 --- /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..5de89858868e --- /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..aa1396b570aa --- /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..2152c4610fe9 --- /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..779202aa4e16 --- /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..5de89858868e --- /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..9dedb0f9050a 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..22c39004d0d3 --- /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..bd3d5ae6b192 --- /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..43d8fa26d01c --- /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 +) +{ +} + From f0cb2a4ce6f2c03a53600baeb04ce53ec976dd8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Sat, 29 Nov 2025 01:20:33 +0100 Subject: [PATCH 28/29] try to fix everything --- .../kotlin-client/data_class_opt_var.mustache | 2 +- .../kotlin-client/data_class_req_var.mustache | 2 +- .../libraries/jvm-ktor/api.mustache | 24 +++++++++---------- .../libraries/jvm-okhttp/api.mustache | 4 ++-- .../libraries/jvm-retrofit2/api.mustache | 2 +- .../jvm-retrofit2/explodedQueryParam.mustache | 2 +- .../jvm-retrofit2/formParams.mustache | 2 +- .../jvm-retrofit2/headerParams.mustache | 2 +- .../jvm-retrofit2/pathParams.mustache | 2 +- .../jvm-retrofit2/queryParam.mustache | 2 +- .../jvm-spring-restclient/api.mustache | 14 +++++------ .../jvm-spring-webclient/api.mustache | 14 +++++------ .../libraries/jvm-vertx/api.mustache | 10 ++++---- .../libraries/jvm-volley/api.mustache | 8 +++---- .../libraries/jvm-volley/formParams.mustache | 2 +- .../jvm-volley/headerParams.mustache | 2 +- .../libraries/jvm-volley/pathParams.mustache | 2 +- .../libraries/jvm-volley/queryParams.mustache | 2 +- .../libraries/multiplatform/api.mustache | 14 +++++------ .../model_room_init_var.mustache | 2 +- .../param_default_value.mustache | 2 +- .../resources/kotlin-misk/apiAction.mustache | 2 +- .../kotlin-misk/cookieParams.mustache | 2 +- .../main/resources/kotlin-misk/model.mustache | 2 +- .../kotlin-server/data_class_opt_var.mustache | 2 +- .../kotlin-server/data_class_req_var.mustache | 2 +- .../libraries/javalin5/Main.kt.mustache | 2 +- .../javalin5/data_class_opt_var.mustache | 2 +- .../javalin5/data_class_req_var.mustache | 2 +- .../libraries/javalin5/paramDefault.mustache | 2 +- .../libraries/javalin6/Main.kt.mustache | 2 +- .../javalin6/data_class_opt_var.mustache | 2 +- .../javalin6/data_class_req_var.mustache | 2 +- .../libraries/javalin6/paramDefault.mustache | 2 +- .../libraries/jaxrs-spec/api.mustache | 2 +- .../jaxrs-spec/apiInterface.mustache | 6 ++--- .../libraries/jaxrs-spec/apiMethod.mustache | 6 ++--- .../jaxrs-spec/cookieParams.mustache | 2 +- .../jaxrs-spec/data_class_opt_var.mustache | 2 +- .../jaxrs-spec/headerParams.mustache | 2 +- .../libraries/jaxrs-spec/queryParams.mustache | 2 +- .../libraries/ktor/Paths.kt.mustache | 4 ++-- .../kotlin-server/libraries/ktor/api.mustache | 2 +- .../libraries/ktor2/Paths.kt.mustache | 4 ++-- .../libraries/ktor2/api.mustache | 2 +- .../ktor2/data_class_opt_var.mustache | 2 +- .../ktor2/data_class_req_var.mustache | 2 +- .../kotlin-vertx-server/apiProxy.mustache | 2 +- .../data_class_opt_var.mustache | 2 +- .../kotlin-wiremock/api-stub.mustache | 2 +- .../resources/kotlin-wiremock/model.mustache | 4 ++-- .../data_class_bind_field_opt.mustache | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 10 ++++---- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 12 +++++----- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 14 +++++------ .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 14 +++++------ .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/client/apis/DefaultApi.kt | 6 ++--- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../kotlin/org/openapitools/server/Paths.kt | 2 +- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/server/apis/DefaultApi.kt | 4 ++-- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../openapitools/server/apis/DefaultApi.kt | 2 +- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- .../kotlin/org/openapitools/server/Paths.kt | 2 +- .../ItemWithDollarAttributesAndExamples.kt | 4 ++-- ...sItemIdSomethingItemSubIdGet200Response.kt | 4 ++-- ...thingItemSubIdGet200ResponseDetailsInfo.kt | 2 +- 136 files changed, 270 insertions(+), 270 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache index 486ad7bd7443..de864674a0d5 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache @@ -21,4 +21,4 @@ {{#deprecated}} @Deprecated(message = "This property is deprecated.") {{/deprecated}} - {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}{{#uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}Set{{/uniqueItems}}{{^uniqueItems}}kotlin.collections.{{#modelMutable}}Mutable{{/modelMutable}}List{{/uniqueItems}}{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInPascalCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInPascalCase}}}{{/isArray}}{{/isEnum}}? = {{^defaultValue}}null{{/defaultValue}}{{#defaultValue}}{{^isNumber}}{{{defaultValue}}}{{/isNumber}}{{#isNumber}}{{^multiplatform}}{{{dataType}}}("{{{defaultValue}}}"){{/multiplatform}}{{#multiplatform}}({{{defaultValue}}}).toDouble(){{/multiplatform}}{{/isNumber}}{{/defaultValue}} \ No newline at end of file + {{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}{{#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..573cc5c0785f 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}}{{{defaultValue}}}{{/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-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/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 index 537d1f3bbbcc..db8519c430e9 100644 --- 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 @@ -65,7 +65,7 @@ public class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call. */ @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 { + 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) { @@ -136,7 +136,7 @@ public class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call. return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ public class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call. */ @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 { + 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) { 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 index 288d77ba50ad..1a631e029da7 100644 --- 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 @@ -31,11 +31,11 @@ public data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 0faea8c5b2e8..f9cde21103c0 100644 --- 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 @@ -33,11 +33,11 @@ public data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 2d4db6241a7d..f6baefe9ce20 100644 --- 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 @@ -31,7 +31,7 @@ public data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 54b27804dc9f..03eb7f4ebf0c 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index 78038d1b64e9..92b0a55d1b0a 100644 --- 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 @@ -30,11 +30,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 8fcba3c8b312..0349fa964ada 100644 --- 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 @@ -32,11 +32,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 11458d4b8b2a..acb691611e13 100644 --- 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 @@ -30,7 +30,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$Two") 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 index 8f130ab46ed7..e334ffb99011 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index c7287a048ee8..ad22c1447adf 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 40759067d8cc..b084079973eb 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 5fa1542b0af2..0fca6ff74dad 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("detail\$Two") 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 index 92b5d6c68855..288361ea7e52 100644 --- 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 @@ -58,8 +58,8 @@ import com.fasterxml.jackson.databind.ObjectMapper io.ktor.client.utils.EmptyContent val localVariableQuery = mutableMapOf>() - filterDollarType?.apply { localVariableQuery["filter$Type"] = listOf("$filterDollarType") } - filterDollarSubType?.apply { localVariableQuery["filter$SubType"] = listOf("$filterDollarSubType") } + 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() } @@ -67,7 +67,7 @@ import com.fasterxml.jackson.databind.ObjectMapper val localVariableConfig = RequestConfig( RequestMethod.GET, - "/items/{item$Id}/something/{item$SubId}".replace("{" + "item$Id" + "}", "$itemDollarId").replace("{" + "item$SubId" + "}", "$itemDollarSubId"), + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = false, @@ -96,8 +96,8 @@ import com.fasterxml.jackson.databind.ObjectMapper val localVariableBody = ParametersBuilder().also { - formDollarName?.apply { it.append("form$Name", formDollarName) } - formDollarValue?.apply { it.append("form$Value", formDollarValue) } + formDollarName?.apply { it.append("form\$Name", formDollarName) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue) } }.build() val localVariableQuery = mutableMapOf>() 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 index c7287a048ee8..ad22c1447adf 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 40759067d8cc..b084079973eb 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 5fa1542b0af2..0fca6ff74dad 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @get:JsonProperty("detail\$Two") 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 index 08f4ff47497b..92d5144da1c4 100644 --- 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 @@ -67,7 +67,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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) { + 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) { @@ -138,7 +138,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -162,7 +162,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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) { + 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) { 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 index f650e90ff022..4afb27b6861e 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" ) : Serializable { companion object { 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 index 38e9c0e8fc78..607018968226 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @SerializedName("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null 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 index eb6c9f295785..dff9c95a256b 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$Two") 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 index 0f606aa97635..c50af00b1f18 100644 --- 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 @@ -46,7 +46,7 @@ class DefaultApi ( * @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? { + 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() @@ -58,7 +58,7 @@ class DefaultApi ( // 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 path = "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", IRequestFactory.escapeString(itemDollarId.toString())).replace("{" + "item\$SubId" + "}", IRequestFactory.escapeString(itemDollarSubId.toString())) val formParams = mapOf() @@ -67,8 +67,8 @@ class DefaultApi ( // 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\$Type" to IRequestFactory.parameterToString(filterDollarType), + "filter\$SubType" to IRequestFactory.parameterToString(filterDollarSubType) ) .filter { it.value.isNotEmpty() } @@ -131,8 +131,8 @@ class DefaultApi ( val path = "/items" val formParams = mapOf( - "form$Name" to IRequestFactory.parameterToString(formDollarName), - "form$Value" to IRequestFactory.parameterToString(formDollarValue) + "form\$Name" to IRequestFactory.parameterToString(formDollarName), + "form\$Value" to IRequestFactory.parameterToString(formDollarValue) ) 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 index 27829b1fa242..e54ba65bb3d5 100644 --- 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 @@ -32,11 +32,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" ): ITransformForStorage { companion object { } 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 index d5d6ef7cdff3..813a5cb0e1ef 100644 --- 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 @@ -34,11 +34,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @SerializedName("details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null 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 index e71b9f3b4ff3..64d0fe97bcd4 100644 --- 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 @@ -32,7 +32,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerializedName("detail\$Two") 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 index 4c36a15d13d6..7148a21f106d 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index 65d31e8c10b2..6097520ba6a5 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 2d75bf744f36..0e4f0c7bf01e 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index eb3a9e4c02ea..ad40da03ec55 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 4c36a15d13d6..7148a21f106d 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index ecacabbcc7cf..a8f0a8920c45 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - var dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index f27f1367c55e..11e80e855cb2 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - var itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 1bdb71dcbdf1..45158132062a 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - var detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + var detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 4c36a15d13d6..7148a21f106d 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index 0a9f992f8bef..1da8f0fb8b65 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 9cbfce208d12..7c2606dcc6db 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index f423fdff408f..b567070c0372 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 4b54133bc392..c53134dea418 100644 --- 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 @@ -55,7 +55,7 @@ open class DefaultApi : ApiClient { * @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 { + 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() @@ -63,15 +63,15 @@ open class DefaultApi : ApiClient { io.ktor.client.utils.EmptyContent val localVariableQuery = mutableMapOf>() - filterDollarType?.apply { localVariableQuery["filter$Type"] = listOf("$filterDollarType") } - filterDollarSubType?.apply { localVariableQuery["filter$SubType"] = listOf("$filterDollarSubType") } + 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"), + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = false, @@ -94,14 +94,14 @@ open class DefaultApi : ApiClient { * @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 { + 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()) } + formDollarName?.apply { it.append("form\$Name", formDollarName.toString()) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue.toString()) } }.build() val localVariableQuery = mutableMapOf>() 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 index 94da91dfd4ea..1378e4abeb68 100644 --- 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 @@ -31,10 +31,10 @@ import kotlinx.serialization.encoding.* data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "\$id") val dollarId: kotlin.String? = "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" + @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 index c4b1e0e0a045..478ea41ae1f9 100644 --- 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 @@ -33,10 +33,10 @@ import kotlinx.serialization.encoding.* data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "item\$Id") val itemDollarId: kotlin.String? = "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 = "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 index 735487ee33e2..9161709b5578 100644 --- 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 @@ -31,7 +31,7 @@ import kotlinx.serialization.encoding.* data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "detail\$One") val detailDollarOne: kotlin.String? = "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/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt b/samples/client/petstore/kotlin-multiplatform/src/commonMain/kotlin/org/openapitools/client/apis/DefaultApi.kt index 4b54133bc392..c53134dea418 100644 --- 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 @@ -55,7 +55,7 @@ open class DefaultApi : ApiClient { * @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 { + 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() @@ -63,15 +63,15 @@ open class DefaultApi : ApiClient { io.ktor.client.utils.EmptyContent val localVariableQuery = mutableMapOf>() - filterDollarType?.apply { localVariableQuery["filter$Type"] = listOf("$filterDollarType") } - filterDollarSubType?.apply { localVariableQuery["filter$SubType"] = listOf("$filterDollarSubType") } + 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"), + "/items/{item\$Id}/something/{item\$SubId}".replace("{" + "item\$Id" + "}", "$itemDollarId").replace("{" + "item\$SubId" + "}", "$itemDollarSubId"), query = localVariableQuery, headers = localVariableHeaders, requiresAuthentication = false, @@ -94,14 +94,14 @@ open class DefaultApi : ApiClient { * @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 { + 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()) } + formDollarName?.apply { it.append("form\$Name", formDollarName.toString()) } + formDollarValue?.apply { it.append("form\$Value", formDollarValue.toString()) } }.build() val localVariableQuery = mutableMapOf>() 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 index 94da91dfd4ea..1378e4abeb68 100644 --- 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 @@ -31,10 +31,10 @@ import kotlinx.serialization.encoding.* data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "\$id") val dollarId: kotlin.String? = "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" + @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 index c4b1e0e0a045..478ea41ae1f9 100644 --- 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 @@ -33,10 +33,10 @@ import kotlinx.serialization.encoding.* data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "item\$Id") val itemDollarId: kotlin.String? = "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 = "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 index 735487ee33e2..9161709b5578 100644 --- 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 @@ -31,7 +31,7 @@ import kotlinx.serialization.encoding.* data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - @SerialName(value = "detail\$One") val detailDollarOne: kotlin.String? = "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-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 index 00551ab6402f..853c19ba32ee 100644 --- 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 @@ -65,7 +65,7 @@ internal class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Cal */ @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 { + 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) { @@ -136,7 +136,7 @@ internal class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Cal return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ internal class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Cal */ @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 { + 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) { 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 index 09cbc7fa3079..a901eab844c8 100644 --- 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 @@ -31,11 +31,11 @@ internal data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index cdc1687e9cc4..6e68c0f5c327 100644 --- 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 @@ -33,11 +33,11 @@ internal data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index 4cb8c8427c6d..1275909dac23 100644 --- 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 @@ -31,7 +31,7 @@ internal data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index c7bf41fad01e..d4c8633df5d6 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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? { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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? { + 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) { 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 index 740f6f2c36ce..eaf2f7c60e93 100644 --- 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 @@ -32,11 +32,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" ) : Serializable { companion object { 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 index 7ca2e7393fd6..d7816d3c32ac 100644 --- 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 @@ -34,11 +34,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Json(name = "details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null 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 index e26579b199ad..6d8498f303e5 100644 --- 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 @@ -32,7 +32,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 9f3b69150ee2..1c9fb16f2bd1 100644 --- 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 @@ -26,8 +26,8 @@ interface DefaultApi { * @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 + @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 @@ -43,6 +43,6 @@ interface DefaultApi { */ @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 + 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 index 9b0c908575e9..df6b5b311aca 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerialName(value = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" ) : Serializable { companion object { 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 index 2f74ccee495d..ddaf67833f4f 100644 --- 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 @@ -35,11 +35,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerialName(value = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @SerialName(value = "details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null 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 index b0dd394b86bd..aac1ee9db190 100644 --- 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 @@ -33,7 +33,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerialName(value = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @SerialName(value = "detail\$Two") 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 index 37075c27519b..99913c73a3d0 100644 --- 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 @@ -26,8 +26,8 @@ interface DefaultApi { * @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 + @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 @@ -43,6 +43,6 @@ interface DefaultApi { */ @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 + 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 index 65d31e8c10b2..6097520ba6a5 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 2d75bf744f36..0e4f0c7bf01e 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index eb3a9e4c02ea..ad40da03ec55 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 451c00482577..53a7cf48e432 100644 --- 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 @@ -25,8 +25,8 @@ interface DefaultApi { * @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 + @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 @@ -42,6 +42,6 @@ interface DefaultApi { */ @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 + 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 index 65d31e8c10b2..6097520ba6a5 100644 --- 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 @@ -31,11 +31,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 2d75bf744f36..0e4f0c7bf01e 100644 --- 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 @@ -33,11 +33,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + 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 index eb3a9e4c02ea..ad40da03ec55 100644 --- 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 @@ -31,7 +31,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 index 4c36a15d13d6..7148a21f106d 100644 --- 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 @@ -65,7 +65,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { @@ -136,7 +136,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory return RequestConfig( method = RequestMethod.GET, - path = "/items/{item$Id}/something/{item$SubId}".replace("{"+"item\$Id"+"}", encodeURIComponent(itemDollarId.toString())).replace("{"+"item\$SubId"+"}", encodeURIComponent(itemDollarSubId.toString())), + 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, @@ -160,7 +160,7 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory */ @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 { + 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) { 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 index 740f6f2c36ce..eaf2f7c60e93 100644 --- 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 @@ -32,11 +32,11 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + val dollarName: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some" ) : Serializable { companion object { 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 index 7ca2e7393fd6..d7816d3c32ac 100644 --- 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 @@ -34,11 +34,11 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @Json(name = "details\$Info") val detailsDollarInfo: ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo? = null 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 index e26579b199ad..6d8498f303e5 100644 --- 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 @@ -32,7 +32,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @Json(name = "detail\$Two") 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 bc15ccc98744..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 @@ -26,7 +26,7 @@ object Paths { * @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) + @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 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 index 3fbda184f5bd..ed51f557b88d 100644 --- 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 @@ -21,8 +21,8 @@ import kotlinx.serialization.Serializable @Serializable data class ItemWithDollarAttributesAndExamples( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - var dollarId: kotlin.String? = "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" + 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 index b224fa349533..fb29c61a176a 100644 --- 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 @@ -23,9 +23,9 @@ import kotlinx.serialization.Serializable @Serializable data class ItemsItemIdSomethingItemSubIdGet200Response( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - var itemDollarId: kotlin.String? = "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 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 index 0e7ef2924eff..aabfaae6ef25 100644 --- 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 @@ -21,7 +21,7 @@ import kotlinx.serialization.Serializable @Serializable data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - var detailDollarOne: kotlin.String? = "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/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 index 21052c2e1165..57d86fa748db 100644 --- 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 @@ -16,9 +16,9 @@ import java.io.InputStream interface DefaultApi { @GET - @Path("/items/{item$Id}/something/{item$SubId}") + @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 + 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") 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 index 2152c4610fe9..783a87a71f7b 100644 --- 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 @@ -25,12 +25,12 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 779202aa4e16..7238a649bf77 100644 --- 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 @@ -27,12 +27,12 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @JsonProperty("details\$Info") 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 index 5de89858868e..306dfad7ff73 100644 --- 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 @@ -25,7 +25,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ 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 index aa1396b570aa..7c88d92d8561 100644 --- 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 @@ -17,7 +17,7 @@ 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 { + 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(); } 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 index 2152c4610fe9..783a87a71f7b 100644 --- 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 @@ -25,12 +25,12 @@ data class ItemWithDollarAttributesAndExamples ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("\$id") - val dollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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" + 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 index 779202aa4e16..7238a649bf77 100644 --- 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 @@ -27,12 +27,12 @@ data class ItemsItemIdSomethingItemSubIdGet200Response ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("item\$Id") - val itemDollarId: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + 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", + val nameDollarValue: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", @JsonProperty("details\$Info") 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 index 5de89858868e..306dfad7ff73 100644 --- 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 @@ -25,7 +25,7 @@ data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo ( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ @JsonProperty("detail\$One") - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ 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 9dedb0f9050a..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 @@ -26,7 +26,7 @@ object Paths { * @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) + @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 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 index 22c39004d0d3..86024efa6bf9 100644 --- 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 @@ -21,9 +21,9 @@ import kotlinx.serialization.Serializable @Serializable data class ItemWithDollarAttributesAndExamples( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - val dollarId: kotlin.String? = "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" + 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 index bd3d5ae6b192..84a670e4fc47 100644 --- 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 @@ -23,9 +23,9 @@ import kotlinx.serialization.Serializable @Serializable data class ItemsItemIdSomethingItemSubIdGet200Response( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - val itemDollarId: kotlin.String? = "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 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 index 43d8fa26d01c..00b5c9ac762d 100644 --- 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 @@ -21,7 +21,7 @@ import kotlinx.serialization.Serializable @Serializable data class ItemsItemIdSomethingItemSubIdGet200ResponseDetailsInfo( /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ - val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = $some", + val detailDollarOne: kotlin.String? = "SQ = \"; SBS = \\; DBS = \\\\; SD = \$some", /* SQ = \"; SBS = \\; DBS = \\\\; SD = $some */ val detailDollarTwo: kotlin.Int? = null ) From 684c1102f4f1ee908e9d18b7692eebc4cbecf6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Sat, 29 Nov 2025 01:31:55 +0100 Subject: [PATCH 29/29] fix one more place --- .../kotlin-client/libraries/jvm-volley/formParams.mustache | 2 +- .../src/main/java/org/openapitools/client/apis/DefaultApi.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 573cc5c0785f..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}}{{#lambda.escapeDollar}}{{{defaultValue}}}{{/lambda.escapeDollar}}{{/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/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 index c50af00b1f18..af636451584f 100644 --- 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 @@ -116,7 +116,7 @@ class DefaultApi ( * @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? { + 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")