forked from loafle/openapi-generator-original
		
	
		
			
				
	
	
		
			293 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			293 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Documentation for the kotlin Generator
 | 
						|
---
 | 
						|
 | 
						|
## METADATA
 | 
						|
 | 
						|
| Property | Value | Notes |
 | 
						|
| -------- | ----- | ----- |
 | 
						|
| generator name | kotlin | pass this to the generate command after -g |
 | 
						|
| generator stability | STABLE | |
 | 
						|
| generator type | CLIENT | |
 | 
						|
| generator language | Kotlin | |
 | 
						|
| generator default templating engine | mustache | |
 | 
						|
| helpTxt | Generates a Kotlin client. | |
 | 
						|
 | 
						|
## CONFIG OPTIONS
 | 
						|
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
 | 
						|
 | 
						|
| Option | Description | Values | Default |
 | 
						|
| ------ | ----------- | ------ | ------- |
 | 
						|
|additionalModelTypeAnnotations|Additional annotations for model type(class level annotations). List separated by semicolon(;) or new line (Linux or Windows)| |null|
 | 
						|
|apiSuffix|suffix for api classes| |Api|
 | 
						|
|artifactId|Generated artifact id (name of jar).| |kotlin-client|
 | 
						|
|artifactVersion|Generated artifact's package version.| |1.0.0|
 | 
						|
|collectionType|Option. Collection type to use|<dl><dt>**array**</dt><dd>kotlin.Array</dd><dt>**list**</dt><dd>kotlin.collections.List</dd></dl>|list|
 | 
						|
|dateLibrary|Option. Date library to use|<dl><dt>**threetenbp-localdatetime**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, for legacy app only)</dd><dt>**string**</dt><dd>String</dd><dt>**java8-localdatetime**</dt><dd>Java 8 native JSR310 (jvm only, for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (jvm only, preferred for jdk 1.8+)</dd><dt>**threetenbp**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, preferred for jdk < 1.8)</dd></dl>|java8|
 | 
						|
|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |camelCase|
 | 
						|
|generateRoomModels|Generate Android Room database models in addition to API models (JVM Volley library only)| |false|
 | 
						|
|groupId|Generated artifact package's organization (i.e. maven groupId).| |org.openapitools|
 | 
						|
|idea|Add IntellJ Idea plugin and mark Kotlin main and test folders as source folders.| |false|
 | 
						|
|library|Library template (sub-template) to use|<dl><dt>**jvm-ktor**</dt><dd>Platform: Java Virtual Machine. HTTP client: Ktor 1.6.7. JSON processing: Gson, Jackson (default).</dd><dt>**jvm-okhttp4**</dt><dd>[DEFAULT] Platform: Java Virtual Machine. HTTP client: OkHttp 4.2.0 (Android 5.0+ and Java 8+). JSON processing: Moshi 1.8.0.</dd><dt>**jvm-okhttp3**</dt><dd>Platform: Java Virtual Machine. HTTP client: OkHttp 3.12.4 (Android 2.3+ and Java 7+). JSON processing: Moshi 1.8.0. (DEPRECATED: this option will be remove in 7.x release)</dd><dt>**jvm-spring-webclient**</dt><dd>Platform: Java Virtual Machine. HTTP: Spring 5 (or 6 with useSpringBoot3 enabled) WebClient. JSON processing: Jackson.</dd><dt>**jvm-retrofit2**</dt><dd>Platform: Java Virtual Machine. HTTP client: Retrofit 2.6.2.</dd><dt>**multiplatform**</dt><dd>Platform: Kotlin multiplatform. HTTP client: Ktor 1.6.7. JSON processing: Kotlinx Serialization: 1.2.1.</dd><dt>**jvm-volley**</dt><dd>Platform: JVM for Android. HTTP client: Volley 1.2.1. JSON processing: gson 2.8.9</dd><dt>**jvm-vertx**</dt><dd>Platform: Java Virtual Machine. HTTP client: Vert.x Web Client. JSON processing: Moshi, Gson or Jackson.</dd></dl>|jvm-okhttp4|
 | 
						|
|modelMutable|Create mutable models| |false|
 | 
						|
|moshiCodeGen|Whether to enable codegen with the Moshi library. Refer to the [official Moshi doc](https://github.com/square/moshi#codegen) for more info.| |false|
 | 
						|
|nullableReturnType|Nullable return type| |false|
 | 
						|
|omitGradlePluginVersions|Whether to declare Gradle plugin versions in build files.| |false|
 | 
						|
|omitGradleWrapper|Whether to omit Gradle wrapper for creating a sub project.| |false|
 | 
						|
|packageName|Generated artifact package name.| |org.openapitools.client|
 | 
						|
|parcelizeModels|toggle "@Parcelize" for generated models| |null|
 | 
						|
|requestDateConverter|JVM-Option. Defines in how to handle date-time objects that are used for a request (as query or parameter)|<dl><dt>**toJson**</dt><dd>[DEFAULT] Date formatter option using a json converter.</dd><dt>**toString**</dt><dd>Use the 'toString'-method of the date-time object to retrieve the related string representation.</dd></dl>|toJson|
 | 
						|
|serializableModel|boolean - toggle "implements Serializable" for generated models| |null|
 | 
						|
|serializationLibrary|What serialization library to use: 'moshi' (default), or 'gson' or 'jackson' or 'kotlinx_serialization'| |moshi|
 | 
						|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |null|
 | 
						|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |null|
 | 
						|
|sourceFolder|source folder for generated code| |src/main/kotlin|
 | 
						|
|supportAndroidApiLevel25AndBelow|[WARNING] This flag will generate code that has a known security vulnerability. It uses `kotlin.io.createTempFile` instead of `java.nio.file.Files.createTempFile` in order to support Android API level 25 and bellow. For more info, please check the following links https://github.com/OpenAPITools/openapi-generator/security/advisories/GHSA-23x4-m842-fmwf, https://github.com/OpenAPITools/openapi-generator/pull/9284| |false|
 | 
						|
|useCoroutines|Whether to use the Coroutines adapter with the retrofit2 library.| |false|
 | 
						|
|useRxJava3|Whether to use the RxJava3 adapter with the retrofit2 library.| |false|
 | 
						|
|useSettingsGradle|Whether the project uses settings.gradle.| |false|
 | 
						|
|useSpringBoot3|Whether to use the Spring Boot 3 with the jvm-spring-webclient library.| |false|
 | 
						|
 | 
						|
## IMPORT MAPPING
 | 
						|
 | 
						|
| Type/Alias | Imports |
 | 
						|
| ---------- | ------- |
 | 
						|
|BigDecimal|java.math.BigDecimal|
 | 
						|
|Date|java.time.LocalDate|
 | 
						|
|DateTime|java.time.OffsetDateTime|
 | 
						|
|File|java.io.File|
 | 
						|
|LocalDate|java.time.LocalDate|
 | 
						|
|LocalDateTime|java.time.LocalDateTime|
 | 
						|
|LocalTime|java.time.LocalTime|
 | 
						|
|Timestamp|java.sql.Timestamp|
 | 
						|
|URI|java.net.URI|
 | 
						|
|UUID|java.util.UUID|
 | 
						|
 | 
						|
 | 
						|
## INSTANTIATION TYPES
 | 
						|
 | 
						|
| Type/Alias | Instantiated By |
 | 
						|
| ---------- | --------------- |
 | 
						|
|array|kotlin.collections.ArrayList|
 | 
						|
|list|kotlin.collections.ArrayList|
 | 
						|
|map|kotlin.collections.HashMap|
 | 
						|
 | 
						|
 | 
						|
## LANGUAGE PRIMITIVES
 | 
						|
 | 
						|
<ul class="column-ul">
 | 
						|
<li>kotlin.Array</li>
 | 
						|
<li>kotlin.Boolean</li>
 | 
						|
<li>kotlin.Byte</li>
 | 
						|
<li>kotlin.ByteArray</li>
 | 
						|
<li>kotlin.Char</li>
 | 
						|
<li>kotlin.Double</li>
 | 
						|
<li>kotlin.Float</li>
 | 
						|
<li>kotlin.Int</li>
 | 
						|
<li>kotlin.Long</li>
 | 
						|
<li>kotlin.Short</li>
 | 
						|
<li>kotlin.String</li>
 | 
						|
<li>kotlin.collections.List</li>
 | 
						|
<li>kotlin.collections.Map</li>
 | 
						|
<li>kotlin.collections.MutableList</li>
 | 
						|
<li>kotlin.collections.MutableMap</li>
 | 
						|
<li>kotlin.collections.MutableSet</li>
 | 
						|
<li>kotlin.collections.Set</li>
 | 
						|
</ul>
 | 
						|
 | 
						|
## RESERVED WORDS
 | 
						|
 | 
						|
<ul class="column-ul">
 | 
						|
<li>ApiResponse</li>
 | 
						|
<li>abstract</li>
 | 
						|
<li>actual</li>
 | 
						|
<li>annotation</li>
 | 
						|
<li>as</li>
 | 
						|
<li>break</li>
 | 
						|
<li>class</li>
 | 
						|
<li>companion</li>
 | 
						|
<li>const</li>
 | 
						|
<li>constructor</li>
 | 
						|
<li>continue</li>
 | 
						|
<li>contract</li>
 | 
						|
<li>crossinline</li>
 | 
						|
<li>data</li>
 | 
						|
<li>delegate</li>
 | 
						|
<li>do</li>
 | 
						|
<li>dynamic</li>
 | 
						|
<li>else</li>
 | 
						|
<li>enum</li>
 | 
						|
<li>expect</li>
 | 
						|
<li>external</li>
 | 
						|
<li>false</li>
 | 
						|
<li>field</li>
 | 
						|
<li>final</li>
 | 
						|
<li>finally</li>
 | 
						|
<li>for</li>
 | 
						|
<li>fun</li>
 | 
						|
<li>if</li>
 | 
						|
<li>import</li>
 | 
						|
<li>in</li>
 | 
						|
<li>infix</li>
 | 
						|
<li>init</li>
 | 
						|
<li>inline</li>
 | 
						|
<li>inner</li>
 | 
						|
<li>interface</li>
 | 
						|
<li>internal</li>
 | 
						|
<li>is</li>
 | 
						|
<li>it</li>
 | 
						|
<li>lateinit</li>
 | 
						|
<li>noinline</li>
 | 
						|
<li>null</li>
 | 
						|
<li>object</li>
 | 
						|
<li>open</li>
 | 
						|
<li>operator</li>
 | 
						|
<li>out</li>
 | 
						|
<li>override</li>
 | 
						|
<li>package</li>
 | 
						|
<li>param</li>
 | 
						|
<li>private</li>
 | 
						|
<li>property</li>
 | 
						|
<li>protected</li>
 | 
						|
<li>public</li>
 | 
						|
<li>receiver</li>
 | 
						|
<li>reified</li>
 | 
						|
<li>return</li>
 | 
						|
<li>sealed</li>
 | 
						|
<li>setparam</li>
 | 
						|
<li>super</li>
 | 
						|
<li>suspend</li>
 | 
						|
<li>tailrec</li>
 | 
						|
<li>this</li>
 | 
						|
<li>throw</li>
 | 
						|
<li>true</li>
 | 
						|
<li>try</li>
 | 
						|
<li>typealias</li>
 | 
						|
<li>typeof</li>
 | 
						|
<li>val</li>
 | 
						|
<li>value</li>
 | 
						|
<li>var</li>
 | 
						|
<li>vararg</li>
 | 
						|
<li>when</li>
 | 
						|
<li>where</li>
 | 
						|
<li>while</li>
 | 
						|
</ul>
 | 
						|
 | 
						|
## FEATURE SET
 | 
						|
 | 
						|
 | 
						|
### Client Modification Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|BasePath|✓|ToolingExtension
 | 
						|
|Authorizations|✗|ToolingExtension
 | 
						|
|UserAgent|✗|ToolingExtension
 | 
						|
|MockServer|✗|ToolingExtension
 | 
						|
 | 
						|
### Data Type Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|Custom|✗|OAS2,OAS3
 | 
						|
|Int32|✓|OAS2,OAS3
 | 
						|
|Int64|✓|OAS2,OAS3
 | 
						|
|Float|✓|OAS2,OAS3
 | 
						|
|Double|✓|OAS2,OAS3
 | 
						|
|Decimal|✓|ToolingExtension
 | 
						|
|String|✓|OAS2,OAS3
 | 
						|
|Byte|✓|OAS2,OAS3
 | 
						|
|Binary|✓|OAS2,OAS3
 | 
						|
|Boolean|✓|OAS2,OAS3
 | 
						|
|Date|✓|OAS2,OAS3
 | 
						|
|DateTime|✓|OAS2,OAS3
 | 
						|
|Password|✓|OAS2,OAS3
 | 
						|
|File|✓|OAS2
 | 
						|
|Uuid|✗|
 | 
						|
|Array|✓|OAS2,OAS3
 | 
						|
|Null|✗|OAS3
 | 
						|
|AnyType|✗|OAS2,OAS3
 | 
						|
|Object|✓|OAS2,OAS3
 | 
						|
|Maps|✓|ToolingExtension
 | 
						|
|CollectionFormat|✓|OAS2
 | 
						|
|CollectionFormatMulti|✓|OAS2
 | 
						|
|Enum|✓|OAS2,OAS3
 | 
						|
|ArrayOfEnum|✓|ToolingExtension
 | 
						|
|ArrayOfModel|✓|ToolingExtension
 | 
						|
|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
 | 
						|
|ArrayOfCollectionOfModel|✓|ToolingExtension
 | 
						|
|ArrayOfCollectionOfEnum|✓|ToolingExtension
 | 
						|
|MapOfEnum|✓|ToolingExtension
 | 
						|
|MapOfModel|✓|ToolingExtension
 | 
						|
|MapOfCollectionOfPrimitives|✓|ToolingExtension
 | 
						|
|MapOfCollectionOfModel|✓|ToolingExtension
 | 
						|
|MapOfCollectionOfEnum|✓|ToolingExtension
 | 
						|
 | 
						|
### Documentation Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|Readme|✓|ToolingExtension
 | 
						|
|Model|✓|ToolingExtension
 | 
						|
|Api|✓|ToolingExtension
 | 
						|
 | 
						|
### Global Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|Host|✓|OAS2,OAS3
 | 
						|
|BasePath|✓|OAS2,OAS3
 | 
						|
|Info|✓|OAS2,OAS3
 | 
						|
|Schemes|✗|OAS2,OAS3
 | 
						|
|PartialSchemes|✓|OAS2,OAS3
 | 
						|
|Consumes|✓|OAS2
 | 
						|
|Produces|✓|OAS2
 | 
						|
|ExternalDocumentation|✓|OAS2,OAS3
 | 
						|
|Examples|✓|OAS2,OAS3
 | 
						|
|XMLStructureDefinitions|✗|OAS2,OAS3
 | 
						|
|MultiServer|✗|OAS3
 | 
						|
|ParameterizedServer|✗|OAS3
 | 
						|
|ParameterStyling|✗|OAS3
 | 
						|
|Callbacks|✗|OAS3
 | 
						|
|LinkObjects|✗|OAS3
 | 
						|
 | 
						|
### Parameter Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|Path|✓|OAS2,OAS3
 | 
						|
|Query|✓|OAS2,OAS3
 | 
						|
|Header|✓|OAS2,OAS3
 | 
						|
|Body|✓|OAS2
 | 
						|
|FormUnencoded|✓|OAS2
 | 
						|
|FormMultipart|✓|OAS2
 | 
						|
|Cookie|✗|OAS3
 | 
						|
 | 
						|
### Schema Support Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|Simple|✓|OAS2,OAS3
 | 
						|
|Composite|✓|OAS2,OAS3
 | 
						|
|Polymorphism|✗|OAS2,OAS3
 | 
						|
|Union|✗|OAS3
 | 
						|
|allOf|✗|OAS2,OAS3
 | 
						|
|anyOf|✗|OAS3
 | 
						|
|oneOf|✗|OAS3
 | 
						|
|not|✗|OAS3
 | 
						|
 | 
						|
### Security Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|BasicAuth|✓|OAS2,OAS3
 | 
						|
|ApiKey|✓|OAS2,OAS3
 | 
						|
|OpenIDConnect|✗|OAS3
 | 
						|
|BearerToken|✓|OAS3
 | 
						|
|OAuth2_Implicit|✓|OAS2,OAS3
 | 
						|
|OAuth2_Password|✗|OAS2,OAS3
 | 
						|
|OAuth2_ClientCredentials|✗|OAS2,OAS3
 | 
						|
|OAuth2_AuthorizationCode|✓|OAS2,OAS3
 | 
						|
|SignatureAuth|✗|OAS3
 | 
						|
 | 
						|
### Wire Format Feature
 | 
						|
| Name | Supported | Defined By |
 | 
						|
| ---- | --------- | ---------- |
 | 
						|
|JSON|✓|OAS2,OAS3
 | 
						|
|XML|✗|OAS2,OAS3
 | 
						|
|PROTOBUF|✗|ToolingExtension
 | 
						|
|Custom|✗|OAS2,OAS3
 |