Skip to main content

# Documentation for the ktorm-schema Generator

## METADATA​

Property | Value | Notes
--- | --- | ---
generator name | ktorm-schema | pass this to the generate command after -g
generator stability | BETA |
generator type | SCHEMA |
generator language | Ktorm |
generator default templating engine | mustache |
helpTxt | Generates a kotlin-ktorm schema (beta) |

## 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
--- | --- | --- | ---
addSurrogateKey | Adds the surrogate key for all models that don't already have a primary key (named by the above convention) |  | false
additionalModelTypeAnnotations | Additional annotations for model type(class level annotations). List separated by semicolon(;) or new line (Linux or Windows) |  | null
artifactId | Generated artifact id (name of jar). |  | ktorm
artifactVersion | Generated artifact's package version. |  | 1.0.0
defaultDatabaseName | Default database name for all queries |  | sqlite.db
enumPropertyNaming | Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' |  | camelCase
groupId | Generated artifact package's organization (i.e. maven groupId). |  | org.openapitools
identifierNamingConvention | Naming convention of Ktorm identifiers(table names and column names). This is not related to database name which is defined by defaultDatabaseName option | original Do not transform original names snake_case Use snake_case names | original
importModelPackageName | Package name of the imported models |  | org.openapitools.database.models
modelMutable | Create mutable models |  | false
packageName | Generated artifact package name. |  | org.openapitools.database
primaryKeyConvention | Primary key naming convention |  | id
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

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

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

- abort
- action
- add
- after
- all
- alter
- always
- analyze
- and
- any
- as
- asc
- attach
- autoincr
- autoincrement
- before
- begin
- between
- bitand
- bitnot
- bitor
- blob
- by
- cascade
- case
- cast
- check
- collate
- column
- comma
- commit
- concat
- conflict
- constraint
- create
- cross
- current
- current_date
- current_time
- current_timestamp
- database
- default
- deferrable
- deferred
- delete
- desc
- detach
- distinct
- do
- dot
- drop
- each
- else
- end
- eq
- escape
- except
- exclude
- exclusive
- exists
- explain
- fail
- filter
- first
- float
- following
- for
- foreign
- from
- full
- ge
- generated
- glob
- group
- groups
- gt
- having
- id
- if
- ignore
- immediate
- in
- index
- indexed
- initially
- inner
- insert
- instead
- integer
- intersect
- into
- is
- isnull
- join
- key
- last
- le
- left
- like
- limit
- lp
- lshift
- lt
- match
- minus
- natural
- ne
- no
- not
- nothing
- notnull
- null
- nulls
- of
- offset
- on
- or
- order
- others
- outer
- over
- partition
- plan
- plus
- pragma
- preceding
- primary
- query
- raise
- range
- recursive
- references
- regexp
- reindex
- release
- rem
- rename
- replace
- restrict
- right
- rollback
- row
- rows
- rp
- rshift
- savepoint
- select
- set
- slash
- star
- string
- table
- temp
- temporary
- then
- ties
- to
- transaction
- trigger
- unbounded
- union
- unique
- update
- using
- vacuum
- values
- variable
- view
- virtual
- when
- where
- window
- with
- without

## 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
AWSV4Signature | ✗ | ToolingExtension

### Wire Format Feature​

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