# Config Options for swift4

Option | Description | Values | Default
--- | --- | --- | ---
allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false |  | false
ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). |  | true
hideGenerationTimestamp | Hides the generation timestamp when files are generated. |  | true
lenientTypeCast | Accept and cast values for simple types (string->bool, string->int, int->string) |  | false
nonPublicApi | Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers.(default: false) |  | null
objcCompatible | Add additional properties and methods for Objective-C compatibility (default: false) |  | null
podAuthors | Authors used for Podspec |  | null
podDescription | Description used for Podspec |  | null
podDocsetURL | Docset URL used for Podspec |  | null
podDocumentationURL | Documentation URL used for Podspec |  | null
podHomepage | Homepage used for Podspec |  | null
podLicense | License used for Podspec |  | null
podScreenshots | Screenshots used for Podspec |  | null
podSocialMediaURL | Social Media URL used for Podspec |  | null
podSource | Source information used for Podspec |  | null
podSummary | Summary used for Podspec |  | null
podVersion | Version used for Podspec |  | null
prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. |  | false
projectName | Project name in Xcode |  | null
responseAs | Optionally use libraries to manage response. Currently PromiseKit, RxSwift, Result are available. |  | null
sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. |  | true
sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. |  | true
swiftUseApiNamespace | Flag to make all the API classes inner-class of {{projectName}}API |  | null
unwrapRequired | Treat 'required' properties in response as non-optional (which would crash the app if api returns null as opposed to required option specified in json schema |  | null

## #IMPORT MAPPING

Type/Alias | Imports
--- | ---

## #INSTANTIATION TYPES

Type/Alias | Instantiated By
--- | ---

## #LANGUAGE PRIMITIVES

- Any
- AnyObject
- Bool
- Character
- Data
- Date
- Decimal
- Double
- Float
- Int
- Int32
- Int64
- String
- URL
- UUID
- Void

## #RESERVED WORDS

- #available
- #colorLiteral
- #column
- #else
- #elseif
- #endif
- #file
- #fileLiteral
- #function
- #if
- #imageLiteral
- #line
- #selector
- #sourceLocation
- Any
- AnyObject
- Array
- Bool
- COLUMN
- Character
- Class
- ClosedRange
- Codable
- CountableClosedRange
- CountableRange
- Data
- Decodable
- Dictionary
- Double
- Encodable
- Error
- ErrorResponse
- FILE
- FUNCTION
- Float
- Float32
- Float64
- Float80
- Int
- Int16
- Int32
- Int64
- Int8
- LINE
- OptionSet
- Optional
- Protocol
- Range
- Response
- Self
- Set
- StaticString
- String
- Type
- UInt
- UInt16
- UInt32
- UInt64
- UInt8
- URL
- Unicode
- Void
- _
- as
- associatedtype
- associativity
- break
- case
- catch
- class
- continue
- convenience
- default
- defer
- deinit
- didSet
- do
- dynamic
- dynamicType
- else
- enum
- extension
- fallthrough
- false
- fileprivate
- final
- for
- func
- get
- guard
- if
- import
- in
- indirect
- infix
- init
- inout
- internal
- is
- lazy
- left
- let
- mutating
- nil
- none
- nonmutating
- open
- operator
- optional
- override
- postfix
- precedence
- prefix
- private
- protocol
- public
- repeat
- required
- rethrows
- return
- right
- self
- set
- static
- struct
- subscript
- super
- switch
- throw
- throws
- true
- try
- typealias
- unowned
- var
- weak
- where
- while
- willSet

## #FEATURE SET

### #Client Modification Feature

Name | Supported | Defined By
--- | --- | ---
BasePath | ✗ | ToolingExtension
Authorizations | ✗ | ToolingExtension
UserAgent | ✗ | 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-4-2 by Jim Schubert

- 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