# Config Options for kotlin-spring

Option | Description | Values | Default
--- | --- | --- | ---
apiPackage | api package for generated code |  | org.openapitools.api
apiSuffix | suffix for api classes |  | Api
artifactId | Generated artifact id (name of jar). |  | openapi-spring
artifactVersion | Generated artifact's package version. |  | 1.0.0
basePackage | base package (invokerPackage) for generated code |  | org.openapitools
delegatePattern | Whether to generate the server files using the delegate pattern |  | false
enumPropertyNaming | Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' |  | camelCase
exceptionHandler | generate default global exception handlers (not compatible with reactive. enabling reactive will disable exceptionHandler ) |  | true
gradleBuildFile | generate a gradle build file using the Kotlin DSL |  | true
groupId | Generated artifact package's organization (i.e. maven groupId). |  | org.openapitools
interfaceOnly | Whether to generate only API interface stubs without the server files. |  | false
library | library template (sub-template) | spring-boot Spring-boot Server application. | spring-boot
modelMutable | Create mutable models |  | false
modelPackage | model package for generated code |  | org.openapitools.model
packageName | Generated artifact package name. |  | org.openapitools
parcelizeModels | toggle "@Parcelize" for generated models |  | null
reactive | use coroutines for reactive behavior |  | false
serializableModel | boolean - toggle "implements Serializable" for generated models |  | null
serializationLibrary | What serialization library to use: 'moshi' (default), or 'gson' or 'jackson' |  | moshi
serverPort | configuration the port in which the sever is to run on |  | 8080
serviceImplementation | generate stub service implementations that extends service interfaces. If this is set to true service interfaces will also be generated |  | false
serviceInterface | generate service interfaces to go alongside controllers. In most cases this option would be used to update an existing project, so not to override implementations. Useful to help facilitate the generation gap pattern |  | false
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
swaggerAnnotations | generate swagger annotations to go alongside controllers and models |  | false
title | server title name or client service name |  | OpenAPI Kotlin Spring
useBeanValidation | Use BeanValidation API annotations to validate data types |  | true
useTags | Whether to use tags for creating interface and controller class names |  | 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.Array
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.Set

## #RESERVED WORDS

- ApiClient
- ApiException
- ApiResponse
- as
- break
- class
- continue
- do
- else
- false
- for
- fun
- if
- in
- interface
- is
- null
- object
- package
- return
- super
- this
- throw
- true
- try
- typealias
- typeof
- val
- var
- when
- while

## #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
Array | ✓ | 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

### #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

### #Wire Format Feature

Name | Supported | Defined By
--- | --- | ---
JSON | ✓ | OAS2,OAS3
XML | ✓ | OAS2,OAS3
PROTOBUF | ✗ | ToolingExtension
Custom | ✗ | OAS2,OAS3

Edit this page
Last updated on 2020-9-6 by spacether

- IMPORT MAPPING
- INSTANTIATION TYPES
- LANGUAGE PRIMITIVES
- RESERVED WORDS
- FEATURE SET
  - Client Modification Feature
  - Data Type Feature
  - Documentation Feature
  - Global Feature
  - Parameter Feature
  - Schema Support Feature
  - Security Feature
  - Wire Format Feature