diff --git a/0358ea4a.20466eae.js b/0358ea4a.93c05044.js
similarity index 61%
rename from 0358ea4a.20466eae.js
rename to 0358ea4a.93c05044.js
index c44df70eadb..cf071e7e81c 100644
--- a/0358ea4a.20466eae.js
+++ b/0358ea4a.93c05044.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{131:function(t,e,a){"use strict";a.r(e),a.d(e,"frontMatter",(function(){return r})),a.d(e,"metadata",(function(){return c})),a.d(e,"rightToc",(function(){return O})),a.d(e,"default",(function(){return j}));var n=a(1),b=a(9),l=(a(0),a(308)),r={title:"Config Options for java",sidebar_label:"java"},c={id:"generators/java",title:"Config Options for java",description:"| Option | Description | Values | Default |",source:"@site/../docs/generators/java.md",permalink:"/docs/generators/java",editUrl:"https://github.com/OpenAPITools/openapi-generator/edit/master/website/../docs/generators/java.md",lastUpdatedBy:"Yuriy Belenko",lastUpdatedAt:1593982723,sidebar_label:"java"},O=[{value:"IMPORT MAPPING",id:"import-mapping",children:[]},{value:"INSTANTIATION TYPES",id:"instantiation-types",children:[]},{value:"LANGUAGE PRIMITIVES",id:"language-primitives",children:[]},{value:"RESERVED WORDS",id:"reserved-words",children:[]},{value:"FEATURE SET",id:"feature-set",children:[{value:"Client Modification Feature",id:"client-modification-feature",children:[]},{value:"Data Type Feature",id:"data-type-feature",children:[]},{value:"Documentation Feature",id:"documentation-feature",children:[]},{value:"Global Feature",id:"global-feature",children:[]},{value:"Parameter Feature",id:"parameter-feature",children:[]},{value:"Schema Support Feature",id:"schema-support-feature",children:[]},{value:"Security Feature",id:"security-feature",children:[]},{value:"Wire Format Feature",id:"wire-format-feature",children:[]}]}],i={rightToc:O};function j(t){var e=t.components,a=Object(b.a)(t,["components"]);return Object(l.b)("wrapper",Object(n.a)({},i,a,{components:e,mdxType:"MDXLayout"}),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Option"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Default"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"additionalModelTypeAnnotations"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Additional annotations for model type(class level annotations)"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"allowUnicodeIdentifiers"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"boolean, toggles whether unicode identifiers are allowed in names or not, default is false"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"apiPackage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"package for generated api classes"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.openapitools.client.api")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifactDescription"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifact description in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OpenAPI Java")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifactId"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifactId in generated pom.xml. This also becomes part of the generated library's filename"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"openapi-java-client")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifactUrl"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifact URL in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("a",Object(n.a)({parentName:"td"},{href:"https://github.com/openapitools/openapi-generator"}),"https://github.com/openapitools/openapi-generator"))),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifactVersion"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"artifact version in generated pom.xml. This also becomes part of the generated library's filename"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"1.0.0")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"asyncNative"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"If true, async handlers will be used, instead of the sync version"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"bigDecimalAsString"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Treat BigDecimal values as Strings to avoid precision loss."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"booleanGetterPrefix"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Set booleanGetterPrefix"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"get")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"caseInsensitiveResponseHeaders"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Make API response's headers case-insensitive. Available on okhttp-gson, jersey2 libraries"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"dateLibrary"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Option. Date library to use"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"joda")),Object(l.b)("dd",null,"Joda (for legacy app only)"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"legacy")),Object(l.b)("dd",null,"Legacy java.util.Date (if you really have a good reason not to use threetenbp"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"java8-localdatetime")),Object(l.b)("dd",null,"Java 8 using LocalDateTime (for legacy app only)"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"java8")),Object(l.b)("dd",null,"Java 8 native JSR310 (preferred for jdk 1.8+) - note: this also sets ",'"',"java8",'"'," to true"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"threetenbp")),Object(l.b)("dd",null,"Backport of JSR310 (preferred for jdk ","<"," 1.8)"))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"threetenbp")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developerEmail"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developer email in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"team@openapitools.org")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developerName"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developer name in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OpenAPI-Generator Contributors")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developerOrganization"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developer organization in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OpenAPITools.org")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developerOrganizationUrl"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"developer organization URL in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("a",Object(n.a)({parentName:"td"},{href:"http://openapitools.org"}),"http://openapitools.org"))),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"disableHtmlEscaping"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"disallowAdditionalPropertiesIfNotPresent"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"false")),Object(l.b)("dd",null,"The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications."),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"true")),Object(l.b)("dd",null,"when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior."))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"discriminatorCaseSensitive"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether the discriminator value lookup should be case-sensitive or not. This option only works for Java API client"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ensureUniqueParams"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to ensure parameter names are unique in an operation (rename parameters that are not)."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"fullJavaUtil"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"whether to use fully qualified name for classes under java.util. This option only works for Java API client"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"groupId"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"groupId in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.openapitools")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"hideGenerationTimestamp"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Hides the generation timestamp when files are generated."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"invokerPackage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"root package for generated code"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.openapitools.client")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java8"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Use Java8 classes instead of third party equivalents. Starting in 5.x, JDK8 is the default and the support for JDK7, JDK6 has been dropped"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"true")),Object(l.b)("dd",null,"Use Java 8 classes such as Base64"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"false")),Object(l.b)("dd",null,"Various third party libraries as needed"))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"legacyDiscriminatorBehavior"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"true")),Object(l.b)("dd",null,"The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document."),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"false")),Object(l.b)("dd",null,"The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing."))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"library"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"library template (sub-template) to use"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"jersey1")),Object(l.b)("dd",null,"HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.9.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead."),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"jersey2")),Object(l.b)("dd",null,"HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"feign")),Object(l.b)("dd",null,"HTTP client: OpenFeign 11.x. JSON processing: Jackson 2.9.x."),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"okhttp-gson")),Object(l.b)("dd",null,"[DEFAULT]"," HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'."),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"retrofit2")),Object(l.b)("dd",null,"HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava","[2/3]","=true'. (RxJava 1.x or 2.x or 3.x)"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"resttemplate")),Object(l.b)("dd",null,"HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"webclient")),Object(l.b)("dd",null,"HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"resteasy")),Object(l.b)("dd",null,"HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"vertx")),Object(l.b)("dd",null,"HTTP client: VertX client 3.x. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"google-api-client")),Object(l.b)("dd",null,"HTTP client: Google API client 1.x. JSON processing: Jackson 2.9.x"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"rest-assured")),Object(l.b)("dd",null,"HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x or Jackson 2.10.x. Only for Java 8"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"native")),Object(l.b)("dd",null,"HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"microprofile")),Object(l.b)("dd",null,"HTTP client: Microprofile client 1.x. JSON processing: Jackson 2.9.x"))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"okhttp-gson")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"licenseName"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The name of the license"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Unlicense")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"licenseUrl"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The URL of the license"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("a",Object(n.a)({parentName:"td"},{href:"http://unlicense.org"}),"http://unlicense.org"))),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"modelPackage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"package for generated models"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.openapitools.client.model")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parcelableModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to generate models for Android that implement Parcelable with the okhttp-gson library."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parentArtifactId"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parentGroupId"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parentVersion"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"performBeanValidation"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Perform BeanValidation"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"playVersion"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Version of Play! Framework (possible values ",'"',"play24",'"'," (Deprecated), ",'"',"play25",'"'," (Deprecated), ",'"',"play26",'"'," (Default))"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"prependFormOrBodyParameters"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Add form or body parameters to the beginning of the parameter list."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"scmConnection"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"SCM connection in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"scm:git:git@github.com:openapitools/openapi-generator.git")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"scmDeveloperConnection"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"SCM developer connection in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"scm:git:git@github.com:openapitools/openapi-generator.git")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"scmUrl"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"SCM URL in generated pom.xml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("a",Object(n.a)({parentName:"td"},{href:"https://github.com/openapitools/openapi-generator"}),"https://github.com/openapitools/openapi-generator"))),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"serializableModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"boolean - toggle ",'"',"implements Serializable",'"'," for generated models"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"serializationLibrary"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Serialization library, default depends from the library"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"jackson")),Object(l.b)("dd",null,"Use Jackson as serialization library"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"gson")),Object(l.b)("dd",null,"Use Gson as serialization library"))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"snapshotVersion"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Uses a SNAPSHOT version."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(l.b)("dl",null,Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"true")),Object(l.b)("dd",null,"Use a SnapShot Version"),Object(l.b)("dt",null,Object(l.b)("strong",{parentName:"td"},"false")),Object(l.b)("dd",null,"Use a Release Version"))),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"null")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"sortModelPropertiesByRequiredFlag"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Sort model properties to place required parameters before optional parameters."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"sortParamsByRequiredFlag"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Sort method arguments to place required parameters before optional parameters."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"true")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"sourceFolder"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"source folder for generated code"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"src/main/java")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"supportJava6"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to support Java6 with the Jersey1 library. This option has been deprecated and will be removed in the 5.x release"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useBeanValidation"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Use BeanValidation API annotations"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useGzipFeature"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Send gzip-encoded requests"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"usePlayWS"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Use Play! Async HTTP client (Play WS API)"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useReflectionEqualsHashCode"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useRuntimeException"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Use RuntimeException instead of Exception"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useRxJava"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to use the RxJava adapter with the retrofit2 library. IMPORTANT: this option has been deprecated and will be removed in the 5.x release."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useRxJava2"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to use the RxJava2 adapter with the retrofit2 library."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"useRxJava3"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Whether to use the RxJava3 adapter with the retrofit2 library."),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"withXml"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null})),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"false")))),Object(l.b)("h2",{id:"import-mapping"},"IMPORT MAPPING"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type/Alias"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Imports"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Array"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.List")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayList"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.ArrayList")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"BigDecimal"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.math.BigDecimal")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Date"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.Date")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"DateTime"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.joda.time.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"File"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.io.File")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"HashMap"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.HashMap")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LinkedHashSet"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.LinkedHashSet")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"List"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LocalDate"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.joda.time.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LocalDateTime"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.joda.time.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LocalTime"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"org.joda.time.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Map"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.Map")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Set"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.*")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Timestamp"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.sql.Timestamp")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"URI"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.net.URI")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"UUID"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"java.util.UUID")))),Object(l.b)("h2",{id:"instantiation-types"},"INSTANTIATION TYPES"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type/Alias"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Instantiated By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"array"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayList")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"map"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"HashMap")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"set"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LinkedHashSet")))),Object(l.b)("h2",{id:"language-primitives"},"LANGUAGE PRIMITIVES"),Object(l.b)("ul",{class:"column-ul"},Object(l.b)("li",null,"Boolean"),Object(l.b)("li",null,"Double"),Object(l.b)("li",null,"Float"),Object(l.b)("li",null,"Integer"),Object(l.b)("li",null,"Long"),Object(l.b)("li",null,"Object"),Object(l.b)("li",null,"String"),Object(l.b)("li",null,"boolean"),Object(l.b)("li",null,"byte[]")),Object(l.b)("h2",{id:"reserved-words"},"RESERVED WORDS"),Object(l.b)("ul",{class:"column-ul"},Object(l.b)("li",null,"abstract"),Object(l.b)("li",null,"apiclient"),Object(l.b)("li",null,"apiexception"),Object(l.b)("li",null,"apiresponse"),Object(l.b)("li",null,"assert"),Object(l.b)("li",null,"boolean"),Object(l.b)("li",null,"break"),Object(l.b)("li",null,"byte"),Object(l.b)("li",null,"case"),Object(l.b)("li",null,"catch"),Object(l.b)("li",null,"char"),Object(l.b)("li",null,"class"),Object(l.b)("li",null,"configuration"),Object(l.b)("li",null,"const"),Object(l.b)("li",null,"continue"),Object(l.b)("li",null,"default"),Object(l.b)("li",null,"do"),Object(l.b)("li",null,"double"),Object(l.b)("li",null,"else"),Object(l.b)("li",null,"enum"),Object(l.b)("li",null,"extends"),Object(l.b)("li",null,"final"),Object(l.b)("li",null,"finally"),Object(l.b)("li",null,"float"),Object(l.b)("li",null,"for"),Object(l.b)("li",null,"goto"),Object(l.b)("li",null,"if"),Object(l.b)("li",null,"implements"),Object(l.b)("li",null,"import"),Object(l.b)("li",null,"instanceof"),Object(l.b)("li",null,"int"),Object(l.b)("li",null,"interface"),Object(l.b)("li",null,"localreturntype"),Object(l.b)("li",null,"localvaraccept"),Object(l.b)("li",null,"localvaraccepts"),Object(l.b)("li",null,"localvarauthnames"),Object(l.b)("li",null,"localvarcollectionqueryparams"),Object(l.b)("li",null,"localvarcontenttype"),Object(l.b)("li",null,"localvarcontenttypes"),Object(l.b)("li",null,"localvarcookieparams"),Object(l.b)("li",null,"localvarformparams"),Object(l.b)("li",null,"localvarheaderparams"),Object(l.b)("li",null,"localvarpath"),Object(l.b)("li",null,"localvarpostbody"),Object(l.b)("li",null,"localvarqueryparams"),Object(l.b)("li",null,"long"),Object(l.b)("li",null,"native"),Object(l.b)("li",null,"new"),Object(l.b)("li",null,"null"),Object(l.b)("li",null,"object"),Object(l.b)("li",null,"package"),Object(l.b)("li",null,"private"),Object(l.b)("li",null,"protected"),Object(l.b)("li",null,"public"),Object(l.b)("li",null,"return"),Object(l.b)("li",null,"short"),Object(l.b)("li",null,"static"),Object(l.b)("li",null,"strictfp"),Object(l.b)("li",null,"stringutil"),Object(l.b)("li",null,"super"),Object(l.b)("li",null,"switch"),Object(l.b)("li",null,"synchronized"),Object(l.b)("li",null,"this"),Object(l.b)("li",null,"throw"),Object(l.b)("li",null,"throws"),Object(l.b)("li",null,"transient"),Object(l.b)("li",null,"try"),Object(l.b)("li",null,"void"),Object(l.b)("li",null,"volatile"),Object(l.b)("li",null,"while")),Object(l.b)("h2",{id:"feature-set"},"FEATURE SET"),Object(l.b)("h3",{id:"client-modification-feature"},"Client Modification Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"BasePath"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Authorizations"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"UserAgent"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MockServer"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")))),Object(l.b)("h3",{id:"data-type-feature"},"Data Type Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Custom"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Int32"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Int64"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Float"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Double"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Decimal"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Byte"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Binary"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Boolean"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Date"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"DateTime"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Password"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"File"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Array"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Maps"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"CollectionFormat"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"CollectionFormatMulti"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Enum"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayOfEnum"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayOfModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayOfCollectionOfPrimitives"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayOfCollectionOfModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ArrayOfCollectionOfEnum"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MapOfEnum"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MapOfModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MapOfCollectionOfPrimitives"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MapOfCollectionOfModel"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MapOfCollectionOfEnum"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")))),Object(l.b)("h3",{id:"documentation-feature"},"Documentation Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Readme"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Model"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Api"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")))),Object(l.b)("h3",{id:"global-feature"},"Global Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Host"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"BasePath"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Info"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Schemes"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"PartialSchemes"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Consumes"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Produces"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ExternalDocumentation"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Examples"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"XMLStructureDefinitions"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"MultiServer"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ParameterizedServer"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ParameterStyling"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Callbacks"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"LinkObjects"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")))),Object(l.b)("h3",{id:"parameter-feature"},"Parameter Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Path"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Query"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Header"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Body"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"FormUnencoded"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"FormMultipart"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Cookie"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")))),Object(l.b)("h3",{id:"schema-support-feature"},"Schema Support Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Simple"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Composite"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Polymorphism"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Union"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")))),Object(l.b)("h3",{id:"security-feature"},"Security Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"BasicAuth"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ApiKey"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OpenIDConnect"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"BearerToken"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAuth2_Implicit"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAuth2_Password"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAuth2_ClientCredentials"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAuth2_AuthorizationCode"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")))),Object(l.b)("h3",{id:"wire-format-feature"},"Wire Format Feature"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Supported"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Defined By"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"JSON"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"XML"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2713"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"PROTOBUF"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ToolingExtension")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Custom"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2717"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"OAS2,OAS3")))))}j.isMDXComponent=!0},308:function(t,e,a){"use strict";a.d(e,"a",(function(){return p})),a.d(e,"b",(function(){return m}));var n=a(0),b=a.n(n);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function c(t){for(var e=1;e=0||(b[a]=t[a]);return b}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(b[a]=t[a])}return b}var i=b.a.createContext({}),j=function(t){var e=b.a.useContext(i),a=e;return t&&(a="function"==typeof t?t(e):c({},e,{},t)),a},p=function(t){var e=j(t.components);return b.a.createElement(i.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return b.a.createElement(b.a.Fragment,{},e)}},o=Object(n.forwardRef)((function(t,e){var a=t.components,n=t.mdxType,l=t.originalType,r=t.parentName,i=O(t,["components","mdxType","originalType","parentName"]),p=j(a),o=n,m=p["".concat(r,".").concat(o)]||p[o]||d[o]||l;return a?b.a.createElement(m,c({ref:e},i,{components:a})):b.a.createElement(m,c({ref:e},i))}));function m(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var l=a.length,r=new Array(l);r[0]=o;var c={};for(var O in e)hasOwnProperty.call(e,O)&&(c[O]=e[O]);c.originalType=t,c.mdxType="string"==typeof t?t:n,r[1]=c;for(var i=2;i=0||(b[a]=t[a]);return b}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(b[a]=t[a])}return b}var i=b.a.createContext({}),j=function(t){var e=b.a.useContext(i),a=e;return t&&(a="function"==typeof t?t(e):c({},e,{},t)),a},p=function(t){var e=j(t.components);return b.a.createElement(i.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return b.a.createElement(b.a.Fragment,{},e)}},o=Object(n.forwardRef)((function(t,e){var a=t.components,n=t.mdxType,l=t.originalType,r=t.parentName,i=O(t,["components","mdxType","originalType","parentName"]),p=j(a),o=n,m=p["".concat(r,".").concat(o)]||p[o]||d[o]||l;return a?b.a.createElement(m,c({ref:e},i,{components:a})):b.a.createElement(m,c({ref:e},i))}));function m(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var l=a.length,r=new Array(l);r[0]=o;var c={};for(var O in e)hasOwnProperty.call(e,O)&&(c[O]=e[O]);c.originalType=t,c.mdxType="string"==typeof t?t:n,r[1]=c;for(var i=2;i=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=o.a.createContext({}),s=function(e){var t=o.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},b=function(e){var t=s(e.components);return o.a.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),b=s(n),d=a,m=b["".concat(p,".").concat(d)]||b[d]||u[d]||r;return n?o.a.createElement(m,c({ref:t},i,{components:n})):o.a.createElement(m,c({ref:t},i))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,p=new Array(r);p[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,p[1]=c;for(var i=2;i=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=o.a.createContext({}),s=function(e){var t=o.a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},b=function(e){var t=s(e.components);return o.a.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=Object(a.forwardRef)((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),b=s(n),d=a,m=b["".concat(p,".").concat(d)]||b[d]||u[d]||r;return n?o.a.createElement(m,c({ref:t},i,{components:n})):o.a.createElement(m,c({ref:t},i))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,p=new Array(r);p[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,p[1]=c;for(var i=2;i use Swagger core v3 (see ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/OpenAPITools/openapi-generator/issues/27%5B#27%5D"}),"https://github.com/OpenAPITools/openapi-generator/issues/27[#27]"),")"))),Object(i.b)("li",{parentName:"ul"},"Documentation"),Object(i.b)("li",{parentName:"ul"},"Static pages, preferably on gh-pages, devoted to each generator"),Object(i.b)("li",{parentName:"ul"},"Explain generator options"),Object(i.b)("li",{parentName:"ul"},"Centralized docs on generated code usage/examples/configuration")),Object(i.b)("h2",{id:"medium-term"},"Medium-term"),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Feature set, well-defined API (code and templates), and extensibility improvements.")),Object(i.b)("h3",{id:"api"},"API"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Typed representation of the model bound to our templates. As it is, everything is treated an an Object, and this can lead to changes in the interface which might be unexpected from the template perspective."),Object(i.b)("li",{parentName:"ul"},"Feature set (potential generators to add; not an exhaustive list)",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Azure functions (node.js, server)"),Object(i.b)("li",{parentName:"ul"},"Finagle HTTP Client (Scala, client)"),Object(i.b)("li",{parentName:"ul"},"Finagle Http Server (Scala, server)"),Object(i.b)("li",{parentName:"ul"},"Finatra (Scala, server)"),Object(i.b)("li",{parentName:"ul"},"Kotlin Spring MVC/Springboot (server)"),Object(i.b)("li",{parentName:"ul"},"C++ Server, any framework (server)")))),Object(i.b)("h3",{id:"general"},"General"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Migrate from Maven to Gradle"),Object(i.b)("li",{parentName:"ul"},"Java 9+ support"),Object(i.b)("li",{parentName:"ul"},"Feature set (other options to investigate)"),Object(i.b)("li",{parentName:"ul"},"SPI plugins",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Templating engine"),Object(i.b)("li",{parentName:"ul"},"Language extensions"),Object(i.b)("li",{parentName:"ul"},"Custom extensions (e.g. allowing users to load support for ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/Azure/azure-rest-api-specs%5Bazure-rest-api-specs%5D"}),"https://github.com/Azure/azure-rest-api-specs[azure-rest-api-specs]"),")"))),Object(i.b)("li",{parentName:"ul"},"Customizable templating engines (handlebars support)"),Object(i.b)("li",{parentName:"ul"},"Unit-testing templates (to previously mentioned explicit type as an interface to the template)"),Object(i.b)("li",{parentName:"ul"},"Reduce coupling"),Object(i.b)("li",{parentName:"ul"},"Make types extending ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," become the generation entrypoint"),Object(i.b)("li",{parentName:"ul"},"Allow current ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," types to define templating engine"),Object(i.b)("li",{parentName:"ul"},"Allow current ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," types to modify workflow (currently encapsulated in ",Object(i.b)("inlineCode",{parentName:"li"},"DefaultGenerator")," and tightly coupled to the template engine"),Object(i.b)("li",{parentName:"ul"},'Clearer reuse of "language" features, outside of "generator" types. That is, rather than enforcing polymorphic sharing of "language" which currently allows the super type to redefine framework-specific mapping functionality, generators could compose one or more language support types.'),Object(i.b)("li",{parentName:"ul"},"Define template deprecation/removal process")),Object(i.b)("h2",{id:"long-term"},"Long-term"),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Expanding tooling offered, integrations, potentially SaaS offering to partially fund efforts.")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Generator UI wrappers",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Move jimschubert/intellij-swagger-codegen plugin under the org, and rename"),Object(i.b)("li",{parentName:"ul"},"Look into an Eclipse UI wrapper around the generator"),Object(i.b)("li",{parentName:"ul"},"Look at Visual Studio Code (and/or Atom, sublime text) integration"))),Object(i.b)("li",{parentName:"ul"},"Provide a native GUI for viewing/editing specs. Most tools are currently geared toward developers, but often times it may be non-technical business users who are interested in an API."),Object(i.b)("li",{parentName:"ul"},"A paid service (SaaS) for generation may be enticing for some users. Such a service would allow for statistics (mentioned earlier in telemetry)"),Object(i.b)("li",{parentName:"ul"},"Additional tools"),Object(i.b)("li",{parentName:"ul"},"node.js build system(s) integration (grunt/gulp/webpack/etc)"),Object(i.b)("li",{parentName:"ul"},"ruby gem"),Object(i.b)("li",{parentName:"ul"},"others (which may require previously mentioned SaaS API)")))}u.isMDXComponent=!0},308:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return d}));var n=r(0),a=r.n(n);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=a.a.createContext({}),u=function(e){var t=a.a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l({},t,{},e)),r},s=function(e){var t=u(e.components);return a.a.createElement(p.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},m=Object(n.forwardRef)((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),m=n,d=s["".concat(o,".").concat(m)]||s[m]||b[m]||i;return r?a.a.createElement(d,l({ref:t},p,{components:r})):a.a.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:n,o[1]=l;for(var p=2;p use Swagger core v3 (see ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/OpenAPITools/openapi-generator/issues/27%5B#27%5D"}),"https://github.com/OpenAPITools/openapi-generator/issues/27[#27]"),")"))),Object(i.b)("li",{parentName:"ul"},"Documentation"),Object(i.b)("li",{parentName:"ul"},"Static pages, preferably on gh-pages, devoted to each generator"),Object(i.b)("li",{parentName:"ul"},"Explain generator options"),Object(i.b)("li",{parentName:"ul"},"Centralized docs on generated code usage/examples/configuration")),Object(i.b)("h2",{id:"medium-term"},"Medium-term"),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Feature set, well-defined API (code and templates), and extensibility improvements.")),Object(i.b)("h3",{id:"api"},"API"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Typed representation of the model bound to our templates. As it is, everything is treated an an Object, and this can lead to changes in the interface which might be unexpected from the template perspective."),Object(i.b)("li",{parentName:"ul"},"Feature set (potential generators to add; not an exhaustive list)",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Azure functions (node.js, server)"),Object(i.b)("li",{parentName:"ul"},"Finagle HTTP Client (Scala, client)"),Object(i.b)("li",{parentName:"ul"},"Finagle Http Server (Scala, server)"),Object(i.b)("li",{parentName:"ul"},"Finatra (Scala, server)"),Object(i.b)("li",{parentName:"ul"},"Kotlin Spring MVC/Springboot (server)"),Object(i.b)("li",{parentName:"ul"},"C++ Server, any framework (server)")))),Object(i.b)("h3",{id:"general"},"General"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Migrate from Maven to Gradle"),Object(i.b)("li",{parentName:"ul"},"Java 9+ support"),Object(i.b)("li",{parentName:"ul"},"Feature set (other options to investigate)"),Object(i.b)("li",{parentName:"ul"},"SPI plugins",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Templating engine"),Object(i.b)("li",{parentName:"ul"},"Language extensions"),Object(i.b)("li",{parentName:"ul"},"Custom extensions (e.g. allowing users to load support for ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/Azure/azure-rest-api-specs%5Bazure-rest-api-specs%5D"}),"https://github.com/Azure/azure-rest-api-specs[azure-rest-api-specs]"),")"))),Object(i.b)("li",{parentName:"ul"},"Customizable templating engines (handlebars support)"),Object(i.b)("li",{parentName:"ul"},"Unit-testing templates (to previously mentioned explicit type as an interface to the template)"),Object(i.b)("li",{parentName:"ul"},"Reduce coupling"),Object(i.b)("li",{parentName:"ul"},"Make types extending ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," become the generation entrypoint"),Object(i.b)("li",{parentName:"ul"},"Allow current ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," types to define templating engine"),Object(i.b)("li",{parentName:"ul"},"Allow current ",Object(i.b)("inlineCode",{parentName:"li"},"CodegenConfig")," types to modify workflow (currently encapsulated in ",Object(i.b)("inlineCode",{parentName:"li"},"DefaultGenerator")," and tightly coupled to the template engine"),Object(i.b)("li",{parentName:"ul"},'Clearer reuse of "language" features, outside of "generator" types. That is, rather than enforcing polymorphic sharing of "language" which currently allows the super type to redefine framework-specific mapping functionality, generators could compose one or more language support types.'),Object(i.b)("li",{parentName:"ul"},"Define template deprecation/removal process")),Object(i.b)("h2",{id:"long-term"},"Long-term"),Object(i.b)("blockquote",null,Object(i.b)("p",{parentName:"blockquote"},"Expanding tooling offered, integrations, potentially SaaS offering to partially fund efforts.")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Generator UI wrappers",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Move jimschubert/intellij-swagger-codegen plugin under the org, and rename"),Object(i.b)("li",{parentName:"ul"},"Look into an Eclipse UI wrapper around the generator"),Object(i.b)("li",{parentName:"ul"},"Look at Visual Studio Code (and/or Atom, sublime text) integration"))),Object(i.b)("li",{parentName:"ul"},"Provide a native GUI for viewing/editing specs. Most tools are currently geared toward developers, but often times it may be non-technical business users who are interested in an API."),Object(i.b)("li",{parentName:"ul"},"A paid service (SaaS) for generation may be enticing for some users. Such a service would allow for statistics (mentioned earlier in telemetry)"),Object(i.b)("li",{parentName:"ul"},"Additional tools"),Object(i.b)("li",{parentName:"ul"},"node.js build system(s) integration (grunt/gulp/webpack/etc)"),Object(i.b)("li",{parentName:"ul"},"ruby gem"),Object(i.b)("li",{parentName:"ul"},"others (which may require previously mentioned SaaS API)")))}u.isMDXComponent=!0},308:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return d}));var a=r(0),n=r.n(a);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var p=n.a.createContext({}),u=function(e){var t=n.a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l({},t,{},e)),r},s=function(e){var t=u(e.components);return n.a.createElement(p.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},m=Object(a.forwardRef)((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,d=s["".concat(o,".").concat(m)]||s[m]||b[m]||i;return r?n.a.createElement(d,l({ref:t},p,{components:r})):n.a.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var p=2;p=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=o.a.createContext({}),s=function(e){var t=o.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},u=function(e){var t=s(e.components);return o.a.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,a=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=s(n),b=r,d=u["".concat(a,".").concat(b)]||u[b]||f[b]||i;return n?o.a.createElement(d,c({ref:t},l,{components:n})):o.a.createElement(d,c({ref:t},l))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=b;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c.mdxType="string"==typeof e?e:r,a[1]=c;for(var l=2;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=o.a.createContext({}),s=function(e){var t=o.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},u=function(e){var t=s(e.components);return o.a.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=Object(r.forwardRef)((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,a=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),u=s(n),b=r,d=u["".concat(a,".").concat(b)]||u[b]||f[b]||i;return n?o.a.createElement(d,c({ref:t},l,{components:n})):o.a.createElement(d,c({ref:t},l))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=b;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c.mdxType="string"==typeof e?e:r,a[1]=c;for(var l=2;l=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=a.a.createContext({}),u=function(e){var t=a.a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i({},t,{},e)),r},d=function(e){var t=u(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},f=Object(n.forwardRef)((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=u(r),f=n,b=d["".concat(c,".").concat(f)]||d[f]||l[f]||o;return r?a.a.createElement(b,i({ref:t},s,{components:r})):a.a.createElement(b,i({ref:t},s))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var s=2;s=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=a.a.createContext({}),u=function(e){var t=a.a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i({},t,{},e)),r},d=function(e){var t=u(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},f=Object(n.forwardRef)((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),d=u(r),f=n,b=d["".concat(c,".").concat(f)]||d[f]||l[f]||o;return r?a.a.createElement(b,i({ref:t},s,{components:r})):a.a.createElement(b,i({ref:t},s))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var s=2;s
-
+
-
+
OpenAPI Generator has a built-in ignore file processor.
For example, to skip git_push.sh, one can create a file named .openapi-generator-ignore in the root of the output directory with the contents:
# Prevent generator from creating these files:
git_push.sh
The ignore file works just like .gitignore, and it is auto-generated by default.
If you need this functionality on initial generation, you can provide the option --ignore-file-override (CLI) or ignoreFileOverride (Maven and Gradle plugins) with a value targeting any existing file. The contents of that file will be evaluated relative to the output directory.
"How can I add a header/footer to generated code?"
"How can I add my own logging to generated code?"
"How can I add my license to the top of files?"
OpenAPI Generator supports user-defined templates without need to recompile the artifact. We also support custom generators (templates and logic) if those generators are accessible on the classpath.
OpenAPI Generator has a built-in ignore file processor.
For example, to skip git_push.sh, one can create a file named .openapi-generator-ignore in the root of the output directory with the contents:
# Prevent generator from creating these files:
git_push.sh
The ignore file works just like .gitignore, and it is auto-generated by default.
If you need this functionality on initial generation, you can provide the option --ignore-file-override (CLI) or ignoreFileOverride (Maven and Gradle plugins) with a value targeting any existing file. The contents of that file will be evaluated relative to the output directory.
"How can I add a header/footer to generated code?"
"How can I add my own logging to generated code?"
"How can I add my license to the top of files?"
OpenAPI Generator supports user-defined templates without need to recompile the artifact. We also support custom generators (templates and logic) if those generators are accessible on the classpath.
#What is the governance structure of the OpenAPI Generator project?
OpenAPI generator (openapi-generator) is managed by the members of the core team.
#What is the difference between Swagger Codegen and OpenAPI Generator?
Swagger Codegen is driven by SmartBear while OpenAPI Generator is driven by the community. More than 40 top contributors and template creators of Swagger Codegen have joined OpenAPI Generator as the founding team members. For more details, see the Fork Q&A.
Swagger is a trademark owned by SmartBear and the use of the term "Swagger" in this project is for demo (reference) purposes only.
#What is the governance structure of the OpenAPI Generator project?
OpenAPI generator (openapi-generator) is managed by the members of the core team.
#What is the difference between Swagger Codegen and OpenAPI Generator?
Swagger Codegen is driven by SmartBear while OpenAPI Generator is driven by the community. More than 40 top contributors and template creators of Swagger Codegen have joined OpenAPI Generator as the founding team members. For more details, see the Fork Q&A.
Swagger is a trademark owned by SmartBear and the use of the term "Swagger" in this project is for demo (reference) purposes only.
This document aims to answer some questions about the fork for historical reference, where these questions don't fit into other documents related to the project itself.
The founding members felt that Swagger Codegen 3.0.0 was diverging too much from the philosophy of Swagger Codegen 2.x.
The founding members were concerned that the maintenance overhead of two separate branches (2.x, 3.x) would result in issues similar to those felt in the Python community.
The founding members wanted a more rapid release cycle (weekly patch release, monthly minor release) so users do not need to wait for several months to get a stable release.
Having a community-driven version allows for innovation, reliability, and a roadmap owned by the community.
#I am currently using Swagger Codegen 2.x. How can I upgrade the generator to OpenAPI Generator?
OpenAPI Generator is based on Swagger Codegen 2.4.0-SNAPSHOT version so the migration should be relatively straightforward. Refer to the migration guide for more information.
This Q&A page is maintained by the core team members. It is not maintained by any single person, nor do these Q&As represent the views of any individual or person.
This document aims to answer some questions about the fork for historical reference, where these questions don't fit into other documents related to the project itself.
The founding members felt that Swagger Codegen 3.0.0 was diverging too much from the philosophy of Swagger Codegen 2.x.
The founding members were concerned that the maintenance overhead of two separate branches (2.x, 3.x) would result in issues similar to those felt in the Python community.
The founding members wanted a more rapid release cycle (weekly patch release, monthly minor release) so users do not need to wait for several months to get a stable release.
Having a community-driven version allows for innovation, reliability, and a roadmap owned by the community.
#I am currently using Swagger Codegen 2.x. How can I upgrade the generator to OpenAPI Generator?
OpenAPI Generator is based on Swagger Codegen 2.4.0-SNAPSHOT version so the migration should be relatively straightforward. Refer to the migration guide for more information.
This Q&A page is maintained by the core team members. It is not maintained by any single person, nor do these Q&As represent the views of any individual or person.
Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
discriminatorCaseSensitive
Whether the discriminator value lookup should be case-sensitive or not. This option only works for Java API client
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
fullJavaUtil
whether to use fully qualified name for classes under java.util. This option only works for Java API client
false
groupId
groupId in generated pom.xml
org.openapitools
hideGenerationTimestamp
Hides the generation timestamp when files are generated.
false
invokerPackage
root package for generated code
org.openapitools.client
java8
Use Java8 classes instead of third party equivalents. Starting in 5.x, JDK8 is the default and the support for JDK7, JDK6 has been dropped
true
Use Java 8 classes such as Base64
false
Various third party libraries as needed
true
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
library
library template (sub-template) to use
jersey1
HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.9.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.
jersey2
HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x
feign
HTTP client: OpenFeign 11.x. JSON processing: Jackson 2.9.x.
okhttp-gson
[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
retrofit2
HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2/3]=true'. (RxJava 1.x or 2.x or 3.x)
resttemplate
HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x
webclient
HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x
resteasy
HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x
vertx
HTTP client: VertX client 3.x. JSON processing: Jackson 2.9.x
google-api-client
HTTP client: Google API client 1.x. JSON processing: Jackson 2.9.x
rest-assured
HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x or Jackson 2.10.x. Only for Java 8
native
HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+
microprofile
HTTP client: Microprofile client 1.x. JSON processing: Jackson 2.9.x
boolean - toggle "implements Serializable" for generated models
false
serializationLibrary
Serialization library, default depends from the library
jackson
Use Jackson as serialization library
gson
Use Gson as serialization library
null
snapshotVersion
Uses a SNAPSHOT version.
true
Use a SnapShot Version
false
Use a Release Version
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
sourceFolder
source folder for generated code
src/main/java
supportJava6
Whether to support Java6 with the Jersey1 library. This option has been deprecated and will be removed in the 5.x release
false
useBeanValidation
Use BeanValidation API annotations
false
useGzipFeature
Send gzip-encoded requests
false
usePlayWS
Use Play! Async HTTP client (Play WS API)
false
useReflectionEqualsHashCode
Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.
false
useRuntimeException
Use RuntimeException instead of Exception
false
useRxJava
Whether to use the RxJava adapter with the retrofit2 library. IMPORTANT: this option has been deprecated and will be removed in the 5.x release.
false
useRxJava2
Whether to use the RxJava2 adapter with the retrofit2 library.
false
useRxJava3
Whether to use the RxJava3 adapter with the retrofit2 library.
false
withXml
whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)
Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
discriminatorCaseSensitive
Whether the discriminator value lookup should be case-sensitive or not. This option only works for Java API client
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
fullJavaUtil
whether to use fully qualified name for classes under java.util. This option only works for Java API client
false
groupId
groupId in generated pom.xml
org.openapitools
hideGenerationTimestamp
Hides the generation timestamp when files are generated.
false
invokerPackage
root package for generated code
org.openapitools.client
java8
Use Java8 classes instead of third party equivalents. Starting in 5.x, JDK8 is the default and the support for JDK7, JDK6 has been dropped
true
Use Java 8 classes such as Base64
false
Various third party libraries as needed
true
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
library
library template (sub-template) to use
jersey1
HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.9.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.
jersey2
HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x
feign
HTTP client: OpenFeign 11.x. JSON processing: Jackson 2.9.x.
okhttp-gson
[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
retrofit2
HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2/3]=true'. (RxJava 1.x or 2.x or 3.x)
resttemplate
HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x
webclient
HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x
resteasy
HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x
vertx
HTTP client: VertX client 3.x. JSON processing: Jackson 2.9.x
google-api-client
HTTP client: Google API client 1.x. JSON processing: Jackson 2.9.x
rest-assured
HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x or Jackson 2.10.x. Only for Java 8
native
HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+
microprofile
HTTP client: Microprofile client 1.x. JSON processing: Jackson 2.9.x
boolean - toggle "implements Serializable" for generated models
false
serializationLibrary
Serialization library, default depends from the library
jackson
Use Jackson as serialization library
gson
Use Gson as serialization library
null
snapshotVersion
Uses a SNAPSHOT version.
true
Use a SnapShot Version
false
Use a Release Version
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
sourceFolder
source folder for generated code
src/main/java
supportJava6
Whether to support Java6 with the Jersey1 library. This option has been deprecated and will be removed in the 5.x release
false
useAbstractionForFiles
Use alternative types instead of java.io.File to allow passing bytes without a file on disk. Available on resttemplate library
false
useBeanValidation
Use BeanValidation API annotations
false
useGzipFeature
Send gzip-encoded requests
false
usePlayWS
Use Play! Async HTTP client (Play WS API)
false
useReflectionEqualsHashCode
Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.
false
useRuntimeException
Use RuntimeException instead of Exception
false
useRxJava
Whether to use the RxJava adapter with the retrofit2 library. IMPORTANT: this option has been deprecated and will be removed in the 5.x release.
false
useRxJava2
Whether to use the RxJava2 adapter with the retrofit2 library.
false
useRxJava3
Whether to use the RxJava3 adapter with the retrofit2 library.
false
withXml
whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)
boolean, toggles whether unicode identifiers are allowed in names or not, default is false
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
exportedName
When the generated code will be deployed to Google Cloud Functions, this option can be used to update the name of the exported function. By default, it refers to the basePath. This does not affect normal standalone nodejs server code.
null
googleCloudFunctions
When specified, it will generate the code which runs within Google Cloud Functions instead of standalone Node.JS server. See https://cloud.google.com/functions/docs/quickstart for the details of how to deploy the generated code.
false
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
prependFormOrBodyParameters
Add form or body parameters to the beginning of the parameter list.
false
serverPort
TCP port to listen on.
null
sortModelPropertiesByRequiredFlag
Sort model properties to place required parameters before optional parameters.
true
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters.
boolean, toggles whether unicode identifiers are allowed in names or not, default is false
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
exportedName
When the generated code will be deployed to Google Cloud Functions, this option can be used to update the name of the exported function. By default, it refers to the basePath. This does not affect normal standalone nodejs server code.
null
googleCloudFunctions
When specified, it will generate the code which runs within Google Cloud Functions instead of standalone Node.JS server. See https://cloud.google.com/functions/docs/quickstart for the details of how to deploy the generated code.
false
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
prependFormOrBodyParameters
Add form or body parameters to the beginning of the parameter list.
false
serverPort
TCP port to listen on.
null
sortModelPropertiesByRequiredFlag
Sort model properties to place required parameters before optional parameters.
true
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters.
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
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 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
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
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 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
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
lenientTypeCast
Accept and cast values for simple types (string->bool, string->int, int->string)
false
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 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
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
lenientTypeCast
Accept and cast values for simple types (string->bool, string->int, int->string)
false
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 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
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
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
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
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
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
boolean, toggles whether unicode identifiers are allowed in names or not, default is false
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
enumNameSuffix
Suffix that will be appended to all enum names.
Enum
enumPropertyNaming
Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'
PascalCase
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
modelPropertyNaming
Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name. Only change it if you provide your own run-time code for (de-)serialization of models
original
nullSafeAdditionalProps
Set to make additional properties types declare that their indexer may return undefined
false
prependFormOrBodyParameters
Add form or body parameters to the beginning of the parameter list.
false
sortModelPropertiesByRequiredFlag
Sort model properties to place required parameters before optional parameters.
true
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters.
boolean, toggles whether unicode identifiers are allowed in names or not, default is false
false
disallowAdditionalPropertiesIfNotPresent
Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
true
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not).
true
enumNameSuffix
Suffix that will be appended to all enum names.
Enum
enumPropertyNaming
Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'
PascalCase
legacyDiscriminatorBehavior
This flag is used by OpenAPITools codegen to influence the processing of the discriminator attribute in OpenAPI documents. This flag has no impact if the OAS document does not use the discriminator attribute. The default value of this flag is set in each language-specific code generator (e.g. Python, Java, go...)using the method toModelName. Note to developers supporting a language generator in OpenAPITools; to fully support the discriminator attribute as defined in the OAS specification 3.x, language generators should set this flag to true by default; however this requires updating the mustache templates to generate a language-specific discriminator lookup function that iterates over {{#mappedModels}} and does not iterate over {{children}}, {{#anyOf}}, or {{#oneOf}}.
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
modelPropertyNaming
Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name. Only change it if you provide your own run-time code for (de-)serialization of models
original
nullSafeAdditionalProps
Set to make additional properties types declare that their indexer may return undefined
false
prependFormOrBodyParameters
Add form or body parameters to the beginning of the parameter list.
false
sortModelPropertiesByRequiredFlag
Sort model properties to place required parameters before optional parameters.
true
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters.
There are two ways to provide selective generation properties or "global properties". First, these can be passed as Java System Properties. Second, these can be passed via the global property tooling option (--global-property in CLI and globalProperty in Maven and Gradle configurations). This differentiation is new in version 5.0 with the removal of the -D CLI option and the renaming of systemProperties. If you're upgrading to OpenAPI Generator 5.0+
While the examples seen in Customization use the Java System Property syntax, keep in mind that the following are equivalent:
Why the two differing ways to provide the same properties? We previously accepted a -D tooling option which resembled Java System Property declaration. In older versions of OpenAPI Generator, the option modified the SystemProperties collection directly and was truly a "system property". This option changed during the 4.x release in an effort to make OpenAPI Generator thread-safe and isolate its configuration via thread locals. We no longer mutate System Properties. In the 4.x release and earlier, specifying the tooling -D option with system properties intended for other tools like swagger-parser rather than passing them as true Java System Properties would lead to unexpected behavior for the user; if our tool set the system property after invoking certain code, it would seem to the user like Java System Properties weren't working!
There are two ways to provide selective generation properties or "global properties". First, these can be passed as Java System Properties. Second, these can be passed via the global property tooling option (--global-property in CLI and globalProperty in Maven and Gradle configurations). This differentiation is new in version 5.0 with the removal of the -D CLI option and the renaming of systemProperties. If you're upgrading to OpenAPI Generator 5.0+
While the examples seen in Customization use the Java System Property syntax, keep in mind that the following are equivalent:
Why the two differing ways to provide the same properties? We previously accepted a -D tooling option which resembled Java System Property declaration. In older versions of OpenAPI Generator, the option modified the SystemProperties collection directly and was truly a "system property". This option changed during the 4.x release in an effort to make OpenAPI Generator thread-safe and isolate its configuration via thread locals. We no longer mutate System Properties. In the 4.x release and earlier, specifying the tooling -D option with system properties intended for other tools like swagger-parser rather than passing them as true Java System Properties would lead to unexpected behavior for the user; if our tool set the system property after invoking certain code, it would seem to the user like Java System Properties weren't working!
This gradle plugin offers a declarative DSL via extensions (these are Gradle project extensions). These map almost fully 1:1 with the options you’d pass to the CLI or Maven plugin. The plugin maps the extensions to a task of the same name to provide a clean API. If you’re interested in the extension/task mapping concept from a high-level, you can check out Gradle’s docs.
To include in your project, add the following to build.gradle:
Generate code via Open API Tools Generator for Open API 2.0 or 3.x specification documents.
openApiGenerators
Lists generators available via Open API Generators.
openApiMeta
Generates a new generator to be consumed via Open API Generator.
openApiValidate
Validates an Open API 2.0 or 3.x specification document.
The plugin implements the above tasks as project extensions of the same name. If you’d like to declare these tasks as dependencies to other tasks (using dependsOn), you’ll need a task reference. e.g.:
compileJava.dependsOn tasks.openApiGenerate
For full details of all options, see the plugin README.
This gradle plugin offers a declarative DSL via extensions (these are Gradle project extensions). These map almost fully 1:1 with the options you’d pass to the CLI or Maven plugin. The plugin maps the extensions to a task of the same name to provide a clean API. If you’re interested in the extension/task mapping concept from a high-level, you can check out Gradle’s docs.
To include in your project, add the following to build.gradle:
Generate code via Open API Tools Generator for Open API 2.0 or 3.x specification documents.
openApiGenerators
Lists generators available via Open API Generators.
openApiMeta
Generates a new generator to be consumed via Open API Generator.
openApiValidate
Validates an Open API 2.0 or 3.x specification document.
The plugin implements the above tasks as project extensions of the same name. If you’d like to declare these tasks as dependencies to other tasks (using dependsOn), you’ll need a task reference. e.g.:
compileJava.dependsOn tasks.openApiGenerate
For full details of all options, see the plugin README.
This document lists short-term, medium-term, and long-term goals for the project.
NOTE
These are goals, not necessarily commitments. The sections are not intended to represent exclusive focus during these terms. For example, when you start at a college or university you may have a long-term goal to graduate and a short-term goal to find a job for supplemental income. We will similarly work toward many of our medium-term and long-term goals in the near future as we move toward meeting our short-term goals.
Short term are focused on improving contributor and user productivity (part of this is getting the word out).
CLI improvements
Search functionality (e.g. what generators support retrofit, what generators are available for kotlin)
Build automation improvements
Discuss consolidating current third-party build systems
Investigate custom docker containerization for prepared build environments
Automated release stability
General
OAS3.0 features support: anyOf, oneOf, callbacks, etc
Consider opt-in telemetry about generators being used, limited to a counter of invocations by generator name). This would allow us to make prioritization decisions based on statistics.
Code clean up
centralize build scripts
organize samples/bin scripts according to new generator names
Typed representation of the model bound to our templates. As it is, everything is treated an an Object, and this can lead to changes in the interface which might be unexpected from the template perspective.
Feature set (potential generators to add; not an exhaustive list)
Unit-testing templates (to previously mentioned explicit type as an interface to the template)
Reduce coupling
Make types extending CodegenConfig become the generation entrypoint
Allow current CodegenConfig types to define templating engine
Allow current CodegenConfig types to modify workflow (currently encapsulated in DefaultGenerator and tightly coupled to the template engine
Clearer reuse of "language" features, outside of "generator" types. That is, rather than enforcing polymorphic sharing of "language" which currently allows the super type to redefine framework-specific mapping functionality, generators could compose one or more language support types.
Expanding tooling offered, integrations, potentially SaaS offering to partially fund efforts.
Generator UI wrappers
Move jimschubert/intellij-swagger-codegen plugin under the org, and rename
Look into an Eclipse UI wrapper around the generator
Look at Visual Studio Code (and/or Atom, sublime text) integration
Provide a native GUI for viewing/editing specs. Most tools are currently geared toward developers, but often times it may be non-technical business users who are interested in an API.
A paid service (SaaS) for generation may be enticing for some users. Such a service would allow for statistics (mentioned earlier in telemetry)
This document lists short-term, medium-term, and long-term goals for the project.
NOTE
These are goals, not necessarily commitments. The sections are not intended to represent exclusive focus during these terms. For example, when you start at a college or university you may have a long-term goal to graduate and a short-term goal to find a job for supplemental income. We will similarly work toward many of our medium-term and long-term goals in the near future as we move toward meeting our short-term goals.
Short term are focused on improving contributor and user productivity (part of this is getting the word out).
CLI improvements
Search functionality (e.g. what generators support retrofit, what generators are available for kotlin)
Build automation improvements
Discuss consolidating current third-party build systems
Investigate custom docker containerization for prepared build environments
Automated release stability
General
OAS3.0 features support: anyOf, oneOf, callbacks, etc
Consider opt-in telemetry about generators being used, limited to a counter of invocations by generator name). This would allow us to make prioritization decisions based on statistics.
Code clean up
centralize build scripts
organize samples/bin scripts according to new generator names
Typed representation of the model bound to our templates. As it is, everything is treated an an Object, and this can lead to changes in the interface which might be unexpected from the template perspective.
Feature set (potential generators to add; not an exhaustive list)
Unit-testing templates (to previously mentioned explicit type as an interface to the template)
Reduce coupling
Make types extending CodegenConfig become the generation entrypoint
Allow current CodegenConfig types to define templating engine
Allow current CodegenConfig types to modify workflow (currently encapsulated in DefaultGenerator and tightly coupled to the template engine
Clearer reuse of "language" features, outside of "generator" types. That is, rather than enforcing polymorphic sharing of "language" which currently allows the super type to redefine framework-specific mapping functionality, generators could compose one or more language support types.
Expanding tooling offered, integrations, potentially SaaS offering to partially fund efforts.
Generator UI wrappers
Move jimschubert/intellij-swagger-codegen plugin under the org, and rename
Look into an Eclipse UI wrapper around the generator
Look at Visual Studio Code (and/or Atom, sublime text) integration
Provide a native GUI for viewing/editing specs. Most tools are currently geared toward developers, but often times it may be non-technical business users who are interested in an API.
A paid service (SaaS) for generation may be enticing for some users. Such a service would allow for statistics (mentioned earlier in telemetry)
Tags basically group endpoints into the same API class file. For example, an endpoint with the store tag will be generated in the StoreApi class file in most generators.
Tags basically group endpoints into the same API class file. For example, an endpoint with the store tag will be generated in the StoreApi class file in most generators.