# Documentation for the fsharp-giraffe-server Generator

## #METADATA

Property | Value | Notes
--- | --- | ---
generator name | fsharp-giraffe-server | pass this to the generate command after -g
generator stability | BETA |
generator type | SERVER |
generator language | F# |
generator default templating engine | mustache |
helpTxt | Generates a F# Giraffe server (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
--- | --- | --- | ---
buildTarget | Target the build for a program or library. |  | program
generateBody | Generates method body. |  | true
licenseName | The name of the license |  | NoLicense
licenseUrl | The URL of the license |  | http://localhost
packageAuthors | Specifies Authors property in the .NET Core project file. |  | OpenAPI
packageCopyright | Specifies an AssemblyCopyright for the .NET Framework global assembly attributes stored in the AssemblyInfo file. |  | No Copyright
packageGuid | The GUID that will be associated with the C# project |  | null
packageName | F# module name (convention: Title.Case). |  | OpenAPI
packageTitle | Specifies an AssemblyTitle for the .NET Framework global assembly attributes stored in the AssemblyInfo file. |  | OpenAPI Library
packageVersion | F# package version. |  | 1.0.0
returnICollection | Return ICollection<T> instead of the concrete type. |  | false
sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. |  | true
sourceFolder | source folder for generated code |  | OpenAPI/src
useCollection | Deserialize array types to Collection<T> instead of List<T>. |  | false
useDateTimeOffset | Use DateTimeOffset to model date-time properties |  | false
useSwashbuckle | Uses the Swashbuckle.AspNetCore NuGet package for documentation. |  | false

## #IMPORT MAPPING

Type/Alias | Imports
--- | ---
IDictionary | System.Collections.Generic

## #INSTANTIATION TYPES

Type/Alias | Instantiated By
--- | ---
array | list
list | list
map | IDictionary

## #LANGUAGE PRIMITIVES

- Collection
- DataTimeOffset
- DateTime
- Dictionary
- Double
- ICollection
- Int32
- Int64
- List
- String
- System.IO.Stream
- bool
- byte[]
- char
- decimal
- dict
- double
- float
- float32
- int
- int16
- int64
- list
- nativeint
- obj
- seq
- single
- string
- uint16
- uint32
- uint64
- unativeint

## #RESERVED WORDS

- abstract
- and
- as
- assert
- async
- await
- base
- begin
- bool
- break
- byte
- case
- catch
- char
- checked
- class
- const
- continue
- decimal
- default
- delegate
- do
- done
- double
- downcast
- downto
- dynamic
- elif
- else
- end
- enum
- event
- exception
- explicit
- extern
- false
- finally
- fixed
- float
- for
- foreach
- fun
- function
- if
- in
- inherit
- inline
- int
- interface
- internal
- is
- lazy
- let
- let!
- localVarFileParams
- localVarFormParams
- localVarHeaderParams
- localVarHttpContentType
- localVarHttpContentTypes
- localVarHttpHeaderAccept
- localVarHttpHeaderAccepts
- localVarPath
- localVarPathParams
- localVarPostBody
- localVarQueryParams
- localVarResponse
- localVarStatusCode
- lock
- match
- match!
- member
- module
- mutable
- namespace
- new
- not
- null
- of
- open
- option
- or
- override
- params
- private
- public
- raise
- rec
- return
- return!
- sealed
- select
- static
- string
- struct
- then
- to
- true
- try
- type
- upcast
- use
- use!
- val
- void
- volatile
- when
- while
- with
- yield
- yield!

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

### #Wire Format Feature

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

Edit this page
Last updated on 2022-11-1 by William Cheng

- METADATA
- CONFIG OPTIONS
- 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