Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Latest commit

 

History

History
325 lines (302 loc) · 10.8 KB

File metadata and controls

325 lines (302 loc) · 10.8 KB
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 for more details.

Option Description Values Default
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
array
kotlin.Array
list
kotlin.collections.List
list
dateLibrary Option. Date library to use
threetenbp-localdatetime
Threetenbp - Backport of JSR310 (jvm only, for legacy app only)
string
String
java8-localdatetime
Java 8 native JSR310 (jvm only, for legacy app only)
java8
Java 8 native JSR310 (jvm only, preferred for jdk 1.8+)
threetenbp
Threetenbp - Backport of JSR310 (jvm only, preferred for jdk < 1.8)
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.openapijsonschematools
idea Add IntellJ Idea plugin and mark Kotlin main and test folders as source folders. false
library Library template (sub-template) to use
jvm-ktor
Platform: Java Virtual Machine. HTTP client: Ktor 1.6.7. JSON processing: Gson, Jackson (default).
jvm-okhttp4
[DEFAULT] Platform: Java Virtual Machine. HTTP client: OkHttp 4.2.0 (Android 5.0+ and Java 8+). JSON processing: Moshi 1.8.0.
jvm-okhttp3
Platform: Java Virtual Machine. HTTP client: OkHttp 3.12.4 (Android 2.3+ and Java 7+). JSON processing: Moshi 1.8.0.
jvm-retrofit2
Platform: Java Virtual Machine. HTTP client: Retrofit 2.6.2.
multiplatform
Platform: Kotlin multiplatform. HTTP client: Ktor 1.6.7. JSON processing: Kotlinx Serialization: 1.2.1.
jvm-volley
Platform: JVM for Android. HTTP client: Volley 1.2.1. JSON processing: gson 2.8.9
jvm-okhttp4
modelMutable Create mutable models false
moshiCodeGen Whether to enable codegen with the Moshi library. Refer to the official Moshi doc for more info. 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.openapijsonschematools.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)
toJson
[DEFAULT] Date formatter option using a json converter.
toString
Use the 'toString'-method of the date-time object to retrieve the related string representation.
toJson
serializableModel boolean - toggle "implements Serializable" for generated models null
serializationLibrary What serialization library to use: 'moshi' (default), or 'gson' or 'jackson' 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, OpenAPITools/openapi-generator#9284 false
useCoroutines Whether to use the Coroutines adapter with the retrofit2 library. false
useRxJava Whether to use the RxJava adapter with the retrofit2 library. IMPORTANT: this option has been deprecated. Please use useRxJava3 instead. false
useRxJava2 Whether to use the RxJava2 adapter with the retrofit2 library. IMPORTANT: this option has been deprecated. Please use useRxJava3 instead. false
useRxJava3 Whether to use the RxJava3 adapter with the retrofit2 library. false

INSTANTIATION TYPES

Type/Alias Instantiated By
array kotlin.collections.ArrayList
list kotlin.collections.ArrayList
map kotlin.collections.HashMap

LANGUAGE PRIMITIVES

  • kotlin.Array
  • kotlin.Boolean
  • kotlin.Byte
  • kotlin.ByteArray
  • kotlin.Char
  • kotlin.Double
  • kotlin.Float
  • kotlin.Int
  • kotlin.Long
  • kotlin.Short
  • kotlin.String
  • kotlin.collections.List
  • kotlin.collections.Map
  • kotlin.collections.MutableList
  • kotlin.collections.MutableMap
  • kotlin.collections.MutableSet
  • kotlin.collections.Set

RESERVED WORDS

  • ApiResponse
  • abstract
  • actual
  • annotation
  • as
  • break
  • class
  • companion
  • const
  • constructor
  • continue
  • contract
  • crossinline
  • data
  • delegate
  • do
  • dynamic
  • else
  • enum
  • expect
  • external
  • false
  • field
  • final
  • finally
  • for
  • fun
  • if
  • import
  • in
  • infix
  • init
  • inline
  • inner
  • interface
  • internal
  • is
  • it
  • lateinit
  • noinline
  • null
  • object
  • open
  • operator
  • out
  • override
  • package
  • param
  • private
  • property
  • protected
  • public
  • receiver
  • reified
  • return
  • sealed
  • setparam
  • super
  • suspend
  • tailrec
  • this
  • throw
  • true
  • try
  • typealias
  • typeof
  • val
  • value
  • var
  • vararg
  • when
  • where
  • while

FEATURE SET

Client Modification Feature

Name Supported Defined By
BasePath ToolingExtension
Authorizations ToolingExtension
UserAgent ToolingExtension
MockServer ToolingExtension

Components Feature

Name Supported Defined By
schemas OAS3
responses OAS3
parameters OAS3
examples OAS3
requestBodies OAS3
headers OAS3
securitySchemes OAS3
links OAS3
callbacks OAS3
pathItems OAS3

Data Type Feature

Name Supported Defined By
Custom OAS2,OAS3
Int32 OAS2,OAS3
Int64 OAS2,OAS3
Integer OAS2,OAS3
Float OAS2,OAS3
Double OAS2,OAS3
Number OAS2,OAS3
String OAS2,OAS3
Byte OAS2,OAS3
Binary OAS2,OAS3
Boolean OAS2,OAS3
Date OAS2,OAS3
DateTime OAS2,OAS3
Password OAS2,OAS3
File OAS2
Uuid OAS2,OAS3
Array OAS2,OAS3
Null OAS3
AnyType OAS2,OAS3
Object OAS2,OAS3
Enum OAS2,OAS3

Documentation Feature

Name Supported Defined By
Readme ToolingExtension
Servers OAS3
Security OAS2,OAS3
ComponentSchemas OAS3
ComponentResponses OAS3
ComponentParameters OAS3
ComponentRequestBodies OAS3
ComponentHeaders OAS3
ComponentSecuritySchemes OAS3
ComponentLinks OAS3
ComponentCallbacks OAS3
ComponentPathItems OAS3
Api ToolingExtension

Global Feature

Name Supported Defined By
Info OAS2,OAS3
Servers OAS3
Paths OAS2,OAS3
Webhooks OAS3
Components OAS3
Security OAS2,OAS3
Tags OAS2,OAS3
ExternalDocs OAS2,OAS3

Operation Feature

Name Supported Defined By
Responses_HttpStatusCode OAS3
Responses_RangedResponseCodes OAS3
Responses_Default OAS3
Responses_RedirectionResponse OAS3

Parameter Feature

Name Supported Defined By
Name OAS2,OAS3
Required OAS2,OAS3
In_Path OAS2,OAS3
In_Query OAS2,OAS3
In_Header OAS2,OAS3
In_Cookie OAS3
Style_Matrix OAS3
Style_Label OAS3
Style_Form OAS3
Style_Simple OAS3
Style_SpaceDelimited OAS3
Style_PipeDelimited OAS3
Style_DeepObject OAS3
Explode OAS3
Schema OAS3
Content OAS3

Schema Feature

Name Supported Defined By
AdditionalProperties OAS2,OAS3
AllOf OAS2,OAS3
AnyOf OAS3
Const OAS3
Contains OAS3
Default OAS2,OAS3
DependentRequired OAS3
DependentSchemas OAS3
Discriminator OAS2,OAS3
Enum OAS2,OAS3
ExclusiveMinimum OAS2,OAS3
ExclusiveMaximum OAS2,OAS3
Format OAS2,OAS3
Items OAS2,OAS3
MaxContains OAS3
MaxItems OAS2,OAS3
MaxLength OAS2,OAS3
MaxProperties OAS2,OAS3
Maximum OAS2,OAS3
MinContains OAS3
MinItems OAS2,OAS3
MinLength OAS2,OAS3
MinProperties OAS2,OAS3
Minimum OAS2,OAS3
MultipleOf OAS2,OAS3
Not OAS3
Nullable OAS3
OneOf OAS3
Pattern OAS2,OAS3
PatternProperties OAS3
PrefixItems OAS3
Properties OAS2,OAS3
PropertyNames OAS3
Required OAS2,OAS3
Type OAS2,OAS3
UnevaluatedItems OAS3
UniqueItems OAS2,OAS3
Xml OAS2,OAS3

Security Feature

Name Supported Defined By
HTTP_Basic OAS2,OAS3
ApiKey OAS2,OAS3
OpenIDConnect OAS3
HTTP_Bearer OAS2,OAS3
OAuth2_Implicit OAS2,OAS3
OAuth2_Password OAS2,OAS3
OAuth2_ClientCredentials OAS2,OAS3
OAuth2_AuthorizationCode OAS2,OAS3

Wire Format Feature

Name Supported Defined By
JSON OAS2,OAS3
XML OAS2,OAS3
PROTOBUF ToolingExtension
Custom OAS2,OAS3