From 4ea76dc5084d233e15322db683add5b065f936c9 Mon Sep 17 00:00:00 2001 From: wing328 Date: Sat, 12 Sep 2020 22:50:51 +0000 Subject: [PATCH] Deploy website version based on bf0bd29ef16d9a9934ef16466bc9b19410b5c231 --- 404.html | 2 +- b6a32428.61dc8971.js | 1 + b6a32428.e42ad1fc.js | 1 - blog/2018/12/24/new-website/index.html | 2 +- blog/index.html | 2 +- docs/code-of-conduct/index.html | 2 +- docs/contribute-building/index.html | 2 +- docs/contributing/index.html | 2 +- docs/core-team/index.html | 2 +- docs/customization/index.html | 10 +++++----- docs/debugging/index.html | 2 +- docs/faq-contributing/index.html | 2 +- docs/faq-extending/index.html | 2 +- docs/faq-generators/index.html | 2 +- docs/faq/index.html | 2 +- docs/file-post-processing/index.html | 2 +- docs/fork-qna/index.html | 2 +- docs/generators/README/index.html | 2 +- docs/generators/ada-server/index.html | 2 +- docs/generators/ada/index.html | 2 +- docs/generators/android/index.html | 2 +- docs/generators/apache2/index.html | 2 +- docs/generators/apex/index.html | 2 +- docs/generators/asciidoc/index.html | 2 +- docs/generators/aspnetcore/index.html | 2 +- docs/generators/avro-schema/index.html | 2 +- docs/generators/bash/index.html | 2 +- docs/generators/c/index.html | 2 +- docs/generators/clojure/index.html | 2 +- docs/generators/cpp-pistache-server/index.html | 2 +- docs/generators/cpp-qt5-client/index.html | 2 +- docs/generators/cpp-qt5-qhttpengine-server/index.html | 2 +- docs/generators/cpp-restbed-server/index.html | 2 +- docs/generators/cpp-restsdk/index.html | 2 +- docs/generators/cpp-tizen/index.html | 2 +- docs/generators/cpp-ue4/index.html | 2 +- docs/generators/csharp-dotnet2/index.html | 2 +- docs/generators/csharp-nancyfx/index.html | 2 +- docs/generators/csharp-netcore/index.html | 2 +- docs/generators/csharp/index.html | 2 +- docs/generators/cwiki/index.html | 2 +- docs/generators/dart-dio/index.html | 2 +- docs/generators/dart-jaguar/index.html | 2 +- docs/generators/dart/index.html | 2 +- docs/generators/dynamic-html/index.html | 2 +- docs/generators/eiffel/index.html | 2 +- docs/generators/elixir/index.html | 2 +- docs/generators/elm/index.html | 2 +- docs/generators/erlang-client/index.html | 2 +- docs/generators/erlang-proper/index.html | 2 +- docs/generators/erlang-server/index.html | 2 +- docs/generators/flash-deprecated/index.html | 2 +- docs/generators/fsharp-functions/index.html | 2 +- docs/generators/fsharp-giraffe-server/index.html | 2 +- docs/generators/go-deprecated/index.html | 2 +- docs/generators/go-experimental/index.html | 2 +- docs/generators/go-gin-server/index.html | 2 +- docs/generators/go-server/index.html | 2 +- docs/generators/go/index.html | 2 +- .../graphql-nodejs-express-server/index.html | 2 +- docs/generators/graphql-schema/index.html | 2 +- docs/generators/groovy/index.html | 2 +- docs/generators/haskell-http-client/index.html | 2 +- docs/generators/haskell/index.html | 2 +- docs/generators/html/index.html | 2 +- docs/generators/html2/index.html | 2 +- docs/generators/index.html | 2 +- docs/generators/java-inflector/index.html | 2 +- docs/generators/java-msf4j/index.html | 2 +- docs/generators/java-pkmst/index.html | 2 +- docs/generators/java-play-framework/index.html | 2 +- docs/generators/java-undertow-server/index.html | 2 +- docs/generators/java-vertx-web/index.html | 2 +- docs/generators/java-vertx/index.html | 2 +- docs/generators/java/index.html | 2 +- docs/generators/javascript-apollo/index.html | 2 +- docs/generators/javascript-closure-angular/index.html | 2 +- docs/generators/javascript-flowtyped/index.html | 2 +- docs/generators/javascript/index.html | 2 +- docs/generators/jaxrs-cxf-cdi/index.html | 2 +- docs/generators/jaxrs-cxf-client/index.html | 2 +- docs/generators/jaxrs-cxf-extended/index.html | 2 +- docs/generators/jaxrs-cxf/index.html | 2 +- docs/generators/jaxrs-jersey/index.html | 2 +- docs/generators/jaxrs-resteasy-eap/index.html | 2 +- docs/generators/jaxrs-resteasy/index.html | 2 +- docs/generators/jaxrs-spec/index.html | 2 +- docs/generators/jmeter/index.html | 2 +- docs/generators/k6/index.html | 2 +- docs/generators/kotlin-server/index.html | 2 +- docs/generators/kotlin-spring/index.html | 2 +- docs/generators/kotlin-vertx/index.html | 2 +- docs/generators/kotlin/index.html | 2 +- docs/generators/lua/index.html | 2 +- docs/generators/markdown/index.html | 2 +- docs/generators/mysql-schema/index.html | 2 +- docs/generators/nim/index.html | 2 +- docs/generators/nodejs-express-server/index.html | 2 +- docs/generators/objc/index.html | 2 +- docs/generators/ocaml/index.html | 2 +- docs/generators/openapi-yaml/index.html | 2 +- docs/generators/openapi/index.html | 2 +- docs/generators/perl/index.html | 2 +- docs/generators/php-laravel/index.html | 2 +- docs/generators/php-lumen/index.html | 2 +- docs/generators/php-silex-deprecated/index.html | 2 +- docs/generators/php-slim-deprecated/index.html | 2 +- docs/generators/php-slim4/index.html | 2 +- docs/generators/php-symfony/index.html | 2 +- docs/generators/php-ze-ph/index.html | 2 +- docs/generators/php/index.html | 2 +- docs/generators/plantuml/index.html | 2 +- docs/generators/powershell/index.html | 2 +- docs/generators/protobuf-schema/index.html | 2 +- docs/generators/python-aiohttp/index.html | 2 +- docs/generators/python-blueplanet/index.html | 2 +- docs/generators/python-experimental/index.html | 2 +- docs/generators/python-flask/index.html | 2 +- docs/generators/python/index.html | 2 +- docs/generators/r/index.html | 2 +- docs/generators/ruby-on-rails/index.html | 2 +- docs/generators/ruby-sinatra/index.html | 2 +- docs/generators/ruby/index.html | 2 +- docs/generators/rust-server/index.html | 2 +- docs/generators/rust/index.html | 2 +- docs/generators/scala-akka-http-server/index.html | 2 +- docs/generators/scala-akka/index.html | 2 +- docs/generators/scala-finch/index.html | 2 +- docs/generators/scala-gatling/index.html | 2 +- docs/generators/scala-httpclient-deprecated/index.html | 2 +- docs/generators/scala-lagom-server/index.html | 2 +- docs/generators/scala-play-server/index.html | 2 +- docs/generators/scala-sttp/index.html | 2 +- docs/generators/scalatra/index.html | 2 +- docs/generators/scalaz/index.html | 2 +- docs/generators/spring/index.html | 2 +- docs/generators/swift4-deprecated/index.html | 2 +- docs/generators/swift5/index.html | 2 +- docs/generators/typescript-angular/index.html | 2 +- .../typescript-angularjs-deprecated/index.html | 2 +- docs/generators/typescript-aurelia/index.html | 2 +- docs/generators/typescript-axios/index.html | 2 +- docs/generators/typescript-fetch/index.html | 2 +- docs/generators/typescript-inversify/index.html | 2 +- docs/generators/typescript-jquery/index.html | 2 +- docs/generators/typescript-node/index.html | 2 +- docs/generators/typescript-redux-query/index.html | 2 +- docs/generators/typescript-rxjs/index.html | 2 +- docs/generators/typescript/index.html | 2 +- docs/globals/index.html | 2 +- docs/installation/index.html | 2 +- docs/integrations/index.html | 2 +- docs/new-generator/index.html | 2 +- docs/online/index.html | 2 +- docs/plugins/index.html | 2 +- docs/release-3-0-0/index.html | 2 +- docs/release-summary/index.html | 2 +- docs/roadmap/index.html | 2 +- docs/spec-info/index.html | 2 +- docs/swagger-codegen-migration/index.html | 2 +- docs/templating/index.html | 2 +- docs/usage/index.html | 2 +- index.html | 2 +- runtime~main.4357d776.js => runtime~main.be138628.js | 2 +- team/index.html | 2 +- users.html | 2 +- users/index.html | 2 +- 167 files changed, 170 insertions(+), 170 deletions(-) create mode 100644 b6a32428.61dc8971.js delete mode 100644 b6a32428.e42ad1fc.js rename runtime~main.4357d776.js => runtime~main.be138628.js (99%) diff --git a/404.html b/404.html index 87d08648ff4..330e0cbfcf4 100644 --- a/404.html +++ b/404.html @@ -32,7 +32,7 @@ - + diff --git a/b6a32428.61dc8971.js b/b6a32428.61dc8971.js new file mode 100644 index 00000000000..84321d125e0 --- /dev/null +++ b/b6a32428.61dc8971.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{245:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return r})),n.d(t,"metadata",(function(){return l})),n.d(t,"rightToc",(function(){return p})),n.d(t,"default",(function(){return c}));var a=n(1),o=n(9),i=(n(0),n(303)),r={id:"customization",title:"Customization"},l={id:"customization",title:"Customization",description:"## User-defined Templates",source:"@site/../docs/customization.md",permalink:"/docs/customization",editUrl:"https://github.com/OpenAPITools/openapi-generator/edit/master/website/../docs/customization.md",lastUpdatedBy:"Jim Schubert",lastUpdatedAt:1599948599,sidebar:"docs",previous:{title:"Using Templates",permalink:"/docs/templating"},next:{title:"Debugging",permalink:"/docs/debugging"}},p=[{value:"User-defined Templates",id:"user-defined-templates",children:[]},{value:"Custom Generator (and Template)",id:"custom-generator-and-template",children:[{value:"Use your new generator with the CLI",id:"use-your-new-generator-with-the-cli",children:[]},{value:"Use your new generator with the maven plugin",id:"use-your-new-generator-with-the-maven-plugin",children:[]}]},{value:"Selective generation",id:"selective-generation",children:[]},{value:"Ignore file format",id:"ignore-file-format",children:[]},{value:"Customizing the generator",id:"customizing-the-generator",children:[]},{value:"Bringing your own models",id:"bringing-your-own-models",children:[]}],s={rightToc:p};function c(e){var t=e.components,n=Object(o.a)(e,["components"]);return Object(i.b)("wrapper",Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"user-defined-templates"},"User-defined Templates"),Object(i.b)("p",null,"The most common scenario for user customization is to override the built-in templates with small modifications. That scenario's documentation is in our ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/templating"}),"templating")," page, and differs from user-defined templates."),Object(i.b)("p",null,"Prior to release 5.0.0, whenever a user wanted to include templates which weren't built-in or weren't known to the generator at compile time, they'd need to follow the more involved approach of creating a custom generator as documented later in this document. Beginning in 5.0.0, a user may now provide additional supporting files and extensions to built-in templates via configuration. This feature requires using the external configuration file feature."),Object(i.b)("p",null,"Consider that you might want to add some static documentation such as ",Object(i.b)("inlineCode",{parentName:"p"},"AUTHORS.md")," and a custom tooling script. Rather than a single file for API definitions you also want an implementation file and a separate interface file for each."),Object(i.b)("p",null,"You might have an external configuration file named ",Object(i.b)("inlineCode",{parentName:"p"},"config.yaml")," which defines additional properties like this for a ",Object(i.b)("inlineCode",{parentName:"p"},"kotlin")," client generator:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-yaml"}),'additionalProperties:\n artifactId: kotlin-petstore-client\n serializableModel: "true"\n dateLibrary: java8\n')),Object(i.b)("p",null,"You would generate via CLI with the command:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell",metastring:"script",script:!0}),"openapi-generator generate -g kotlin -i spec.yaml -o outdir -c config.yaml\n")),Object(i.b)("p",null,"To support the above scenario with custom templates, ensure that you're pointing to your custom template directory and add a ",Object(i.b)("inlineCode",{parentName:"p"},"files")," node with template file definitions to your config:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),'templateDir: my_custom_templates\nadditionalProperties:\n artifactId: kotlin-petstore-client\n serializableModel: "true"\n dateLibrary: java8\nfiles:\n AUTHORS.md: {}\n api_interfaces.mustache:\n templateType: API\n destinationFilename: Interface.kt\n api.mustache:\n templateType: API\n destinationFilename: Impl.kt\n other/check.mustache:\n folder: scripts\n destinationFilename: check.sh\n templateType: SupportingFiles\n')),Object(i.b)("p",null,"The keys under the ",Object(i.b)("inlineCode",{parentName:"p"},"files")," node are your template filenames. These honor the same resolution order as all other templates."),Object(i.b)("p",null,"The above configuration will do the following:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Copy ",Object(i.b)("inlineCode",{parentName:"li"},"my_custom_templates/AUTHORS.md")," to the generated output directory without processing via the template engine (due to template file extension). The empty object definition following ",Object(i.b)("inlineCode",{parentName:"li"},"AUTHORS.md")," allows the tool to infer the target output filename in the root of the output directory."),Object(i.b)("li",{parentName:"ul"},"Compile a user-provided ",Object(i.b)("inlineCode",{parentName:"li"},"my_custom_templates/api_interfaces.mustache")," following our usual API template compilation logic. That is, one file will be created per API; APIs are generated defined according to tags in your spec documentation. The destination filename of ",Object(i.b)("inlineCode",{parentName:"li"},"Interface.kt")," will act as a suffix for the filename. So, a tag of ",Object(i.b)("inlineCode",{parentName:"li"},"Equipment")," will output a corresponding ",Object(i.b)("inlineCode",{parentName:"li"},"EquipmentInterface.kt"),"."),Object(i.b)("li",{parentName:"ul"},"Because ",Object(i.b)("inlineCode",{parentName:"li"},"api.mustache")," is the same mustache filename as used in your target generator (",Object(i.b)("inlineCode",{parentName:"li"},"kotlin")," in this example), we support the following:",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"The destination filename provides a suffix for the generated output. APIs generate per tag in your specification. So, a tag of ",Object(i.b)("inlineCode",{parentName:"li"},"Equipment")," will output a corresponding ",Object(i.b)("inlineCode",{parentName:"li"},"EquipmentImpl.kt"),". This option will be used whether ",Object(i.b)("inlineCode",{parentName:"li"},"api.mustache")," targets a user customized template or a built-in template."),Object(i.b)("li",{parentName:"ul"},"The built-in template will be used if you haven't provided an customized template. The kotlin generator defines the suffix as simply ",Object(i.b)("inlineCode",{parentName:"li"},".kt"),", so this scenario would modify only the generated file suffixes according to the previous bullet point."),Object(i.b)("li",{parentName:"ul"},"Your ",Object(i.b)("inlineCode",{parentName:"li"},"api.mustache")," will be used if it exists in your custom template directory. For generators with library options, such as ",Object(i.b)("inlineCode",{parentName:"li"},"jvm-okhttp3")," in the kotlin generator, your file must exist in the same relative location as the embedded template. For kotlin using the ",Object(i.b)("inlineCode",{parentName:"li"},"jvm-okhttp3")," library option, this file would need to be located at ",Object(i.b)("inlineCode",{parentName:"li"},"my_custom_templates/libraries/jvm-okhttp/api.mustache"),". See ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/templating"}),"templating")," for more details."))),Object(i.b)("li",{parentName:"ul"},"Compile ",Object(i.b)("inlineCode",{parentName:"li"},"my_custom_templates/other/check.mustache")," with the supporting files bundle, and output to ",Object(i.b)("inlineCode",{parentName:"li"},"scripts/check.sh")," in your output directory. Note that we don't currently support setting file flags on output, so scripts such as these will either have to be sourced rather than executed, or have file flags set separately after generation (external to our tooling).")),Object(i.b)("p",null,"The ",Object(i.b)("inlineCode",{parentName:"p"},"templateType")," option will default to ",Object(i.b)("inlineCode",{parentName:"p"},"SupportingFiles"),", so the option for ",Object(i.b)("inlineCode",{parentName:"p"},"other/check.mustache")," is redundant and provided to demonstrate the full template file configuration options. The available template types are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"API"),Object(i.b)("li",{parentName:"ul"},"APIDocs"),Object(i.b)("li",{parentName:"ul"},"APITests"),Object(i.b)("li",{parentName:"ul"},"Model"),Object(i.b)("li",{parentName:"ul"},"ModelDocs"),Object(i.b)("li",{parentName:"ul"},"ModelTests"),Object(i.b)("li",{parentName:"ul"},"SupportingFiles")),Object(i.b)("p",null,"Excluding ",Object(i.b)("inlineCode",{parentName:"p"},"SupportingFiles"),", each of the above options may result in multiple files. API related types create a file per API. Model related types create a file for each model."),Object(i.b)("p",null,"Note that user-defined templates will merge with built-in template definitions. If a supporting file with the sample template file path exists, it will be replaced with the user-defined template, otherwise the user-defined template will be added to the list of template files to compile. If the generator's built-in template is ",Object(i.b)("inlineCode",{parentName:"p"},"model_docs.mustache")," and you define ",Object(i.b)("inlineCode",{parentName:"p"},"model-docs.mustache"),", this will result in duplicated model docs (if ",Object(i.b)("inlineCode",{parentName:"p"},"destinationFilename")," differs) or undefined behavior as whichever template compiles last will overwrite the previous model docs (if ",Object(i.b)("inlineCode",{parentName:"p"},"destinationFilename")," matches the extension or suffix in the generator's code)."),Object(i.b)("h2",{id:"custom-generator-and-template"},"Custom Generator (and Template)"),Object(i.b)("a",{id:"creating-a-new-template"})," If none of the built-in generators suit your needs and you need to do more than just modify the mustache templates to tweak generated code, you can create a brand new generator and its associated templates. OpenAPI Generator can help with this, using the `meta` command:",Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \\\n -o out/generators/my-codegen -n my-codegen -p com.my.company.codegen\n")),Object(i.b)("p",null,"This will create a new directory ",Object(i.b)("inlineCode",{parentName:"p"},"out/generators/my-codegen"),", with all the files you need to get started - including a ",Object(i.b)("inlineCode",{parentName:"p"},"README.md"),". Once modified and compiled, you can use your new codegen just like any other, with your own custom-rolled logic."),Object(i.b)("p",null,"These names can be anything you like. If you are building a client for the whitespace language, maybe you'd use the options ",Object(i.b)("inlineCode",{parentName:"p"},"-o out/generators/whitespace -n whitespace"),". They can be the same, or different, it doesn't matter. The ",Object(i.b)("inlineCode",{parentName:"p"},"-n")," value will be become the template name."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"NOTE")," Convention is to use kebab casing for names passed to ",Object(i.b)("inlineCode",{parentName:"p"},"-n"),". Example, ",Object(i.b)("inlineCode",{parentName:"p"},"scala-finatra")," would become ",Object(i.b)("inlineCode",{parentName:"p"},"ScalaFinatraGenerator"),"."),Object(i.b)("h3",{id:"use-your-new-generator-with-the-cli"},"Use your new generator with the CLI"),Object(i.b)("p",null,"To compile your library, enter the ",Object(i.b)("inlineCode",{parentName:"p"},"out/generators/my-codegen")," directory, run ",Object(i.b)("inlineCode",{parentName:"p"},"mvn package"),"."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"NOTE")," Running your custom generator requires adding it to the classpath. This differs on ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html"}),"Windows")," slightly from ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"https://docs.oracle.com/javase/8/docs/technotes/tools/unix/classpath.html"}),"unix"),".\nIf you are running a Windows Subsystem for Linux or a shell such as gitbash, and have issues with the unix variant, try the Windows syntax below."),Object(i.b)("p",null,"Now, execute the generator:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator\n")),Object(i.b)("p",null,"For Windows users, you will need to use ",Object(i.b)("inlineCode",{parentName:"p"},";")," instead of ",Object(i.b)("inlineCode",{parentName:"p"},":")," in the classpath, e.g."),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),'java -cp "out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" org.openapitools.codegen.OpenAPIGenerator\n')),Object(i.b)("p",null,"Note the ",Object(i.b)("inlineCode",{parentName:"p"},"my-codegen")," is an option for ",Object(i.b)("inlineCode",{parentName:"p"},"-g")," now, and you can use the usual arguments for generating your code:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \\\n org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \\\n -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \\\n -o ./out/myClient\n")),Object(i.b)("p",null,"For Windows users:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),'java -cp "out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" \\\n org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \\\n -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \\\n -o ./out/myClient\n')),Object(i.b)("h3",{id:"use-your-new-generator-with-the-maven-plugin"},"Use your new generator with the maven plugin"),Object(i.b)("p",null,"Install your library to your local maven repository by running:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"mvn clean install -f out/generators/my-codegen\n")),Object(i.b)("p",null,"This will install ",Object(i.b)("inlineCode",{parentName:"p"},"org.openapitools:my-codegen-openapi-generator:1.0.0")," to your local maven repository."),Object(i.b)("p",null,"You can use this as additional dependency of the ",Object(i.b)("inlineCode",{parentName:"p"},"openapi-generator-maven-plugin")," plugin and use ",Object(i.b)("inlineCode",{parentName:"p"},"my-codegen")," as ",Object(i.b)("inlineCode",{parentName:"p"},"generatorName")," value:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-xml"}),"\n org.openapitools\n openapi-generator-maven-plugin\n ${openapi-generator-version}\n \n \n generate-client-code\n \n generate\n \n \n my-codegen\n \x3c!-- other configuration ... --\x3e\n \n \n \n \n \n org.openapitools\n my-codegen-openapi-generator\n 1.0.0\n \n \n\n")),Object(i.b)("p",null,"If you publish your artifact to a distant maven repository, do not forget to add this repository as ",Object(i.b)("inlineCode",{parentName:"p"},"pluginRepository")," for your project."),Object(i.b)("h2",{id:"selective-generation"},"Selective generation"),Object(i.b)("p",null,"You may not want to generate ",Object(i.b)("em",{parentName:"p"},"all")," models in your project. Likewise, you may want just one or two apis to be written. If that's the case, you can use system properties or ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/globals"}),"global properties")," to control the output."),Object(i.b)("p",null,"The default is generate ",Object(i.b)("em",{parentName:"p"},"everything")," supported by the specific library. Once you enable a feature, it will restrict the contents generated:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"# generate only models\n--global-property models\n\n# generate only apis\n--global-property apis\n\n# generate only supporting files\n--global-property supportingFiles\n\n# generate models and supporting files\n--global-property models,supportingFiles\n")),Object(i.b)("p",null,"To control the specific files being generated, you can pass a CSV list of what you want:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),'# generate the User and Pet models only\n--global-property models="User,Pet"\n\n# generate the User model and the supportingFile `StringUtil.java`:\n--global-property models=User,supportingFiles=StringUtil.java\n')),Object(i.b)("p",null,"To control generation of docs and tests for api and models, pass false to the option. For api, these options are ",Object(i.b)("inlineCode",{parentName:"p"},"--global-property apiTests=false,apiDocs=false"),". For models, ",Object(i.b)("inlineCode",{parentName:"p"},"--global-property modelTests=false,modelDocs=false"),".\nThese options default to true and don't limit the generation of the feature options listed above (like ",Object(i.b)("inlineCode",{parentName:"p"},"--global-property api"),"):"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),'# generate only models (with tests and documentation)\n--global-property models\n\n# generate only models (with tests but no documentation)\n--global-property models,modelDocs=false\n\n# generate only User and Pet models (no tests and no documentation)\n--global-property models="User,Pet",modelTests=false\n\n# generate only apis (without tests)\n--global-property apis,apiTests=false\n\n# generate only apis (modelTests option is ignored)\n--global-property apis,modelTests=false\n')),Object(i.b)("p",null,"When using selective generation, ",Object(i.b)("em",{parentName:"p"},"only")," the templates needed for the specific generation will be used."),Object(i.b)("p",null,'To skip models defined as the form parameters in "requestBody", please use ',Object(i.b)("inlineCode",{parentName:"p"},"skipFormModel")," (default to false) (this option is introduced at v3.2.2)"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"--global-property skipFormModel=true\n")),Object(i.b)("p",null,"This option will be helpful to skip model generation due to the form parameter, which is defined differently in OAS3 as there's no form parameter in OAS3"),Object(i.b)("h2",{id:"ignore-file-format"},"Ignore file format"),Object(i.b)("p",null,"OpenAPI Generator supports a ",Object(i.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file, similar to ",Object(i.b)("inlineCode",{parentName:"p"},".gitignore")," or ",Object(i.b)("inlineCode",{parentName:"p"},".dockerignore")," you're probably already familiar with."),Object(i.b)("p",null,"The ignore file allows for better control over overwriting existing files than the ",Object(i.b)("inlineCode",{parentName:"p"},"--skip-overwrite")," flag. With the ignore file, you can specify individual files or directories can be ignored. This can be useful, for example if you only want a subset of the generated code."),Object(i.b)("p",null,"Examples:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"# OpenAPI Generator Ignore\n# Lines beginning with a # are comments\n\n# This should match build.sh located anywhere.\nbuild.sh\n\n# Matches build.sh in the root\n/build.sh\n\n# Exclude all recursively\ndocs/**\n\n# Explicitly allow files excluded by other rules\n!docs/UserApi.md\n\n# Recursively exclude directories named Api\n# You can't negate files below this directory.\nsrc/**/Api/\n\n# When this file is nested under /Api (excluded above),\n# this rule is ignored because parent directory is excluded by previous rule.\n!src/**/PetApiTests.cs\n\n# Exclude a single, nested file explicitly\nsrc/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs\n")),Object(i.b)("p",null,"The ",Object(i.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file must exist in the root of the output directory."),Object(i.b)("p",null,"Upon first code generation, you may also pass the CLI option ",Object(i.b)("inlineCode",{parentName:"p"},"--ignore-file-override=/path/to/ignore_file")," for greater control over generated outputs. Note that this is a complete override, and will override the ",Object(i.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file in an output directory when regenerating code."),Object(i.b)("p",null,"Editor support for ",Object(i.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," files is available in IntelliJ via the ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"https://plugins.jetbrains.com/plugin/7495--ignore"}),".ignore plugin"),"."),Object(i.b)("h2",{id:"customizing-the-generator"},"Customizing the generator"),Object(i.b)("p",null,"There are different aspects of customizing the code generator beyond just creating or modifying templates. Each language has a supporting configuration file to handle different type mappings, etc:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"$ ls -1 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/\nAbstractJavaJAXRSServerCodegen.java\nAbstractTypeScriptClientCodegen.java\n... (results omitted)\nTypeScriptAngularClientCodegen.java\nTypeScriptNodeClientCodegen.java\n")),Object(i.b)("p",null,"Each of these files creates reasonable defaults so you can get running quickly. But if you want to configure package names, prefixes, model folders, etc. you can use a json config file to pass the values."),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \\\n -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \\\n -g java \\\n -o samples/client/petstore/java \\\n -c path/to/config.json\n")),Object(i.b)("p",null,"and ",Object(i.b)("inlineCode",{parentName:"p"},"config.json")," contains the following as an example:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiPackage" : "petstore"\n}\n')),Object(i.b)("p",null,"You can use also ",Object(i.b)("inlineCode",{parentName:"p"},"config.yml")," with following equivalent example:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-yaml"}),'apiPackage: "petstore"\n')),Object(i.b)("p",null,"Supported config options can be different per language. Running ",Object(i.b)("inlineCode",{parentName:"p"},"config-help -g {lang}")," will show available options.\n",Object(i.b)("strong",{parentName:"p"},"These options are applied via configuration file (e.g. config.json or config.yml) or by passing them with ",Object(i.b)("inlineCode",{parentName:"strong"},"-p {optionName}={optionValue}")),". (If ",Object(i.b)("inlineCode",{parentName:"p"},"-p {optionName}")," does not work, please open a ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/openapitools/openapi-generator/issues/new"}),"ticket")," and we'll look into it)"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g java\n")),Object(i.b)("p",null,"Output"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"CONFIG OPTIONS\n modelPackage\n package for generated models\n\n apiPackage\n package for generated api classes\n...... (results omitted)\n library\n library template (sub-template) to use:\n jersey1 - HTTP client: Jersey client 1.18. JSON processing: Jackson 2.4.2\n jersey2 - HTTP client: Jersey client 2.6\n feign - HTTP client: Netflix Feign 8.1.1. JSON processing: Jackson 2.6.3\n okhttp-gson (default) - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1\n retrofit - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)\n retrofit2 - HTTP client: OkHttp 2.5.0. JSON processing: Gson 2.4 (Retrofit 2.0.0-beta2)\n google-api-client - HTTP client: google-api-client 1.23.0. JSON processing: Jackson 2.8.9\n rest-assured - HTTP client: rest-assured : 4.3.0. JSON processing: Gson 2.8.6. Only for Java8\n")),Object(i.b)("p",null,"Your config file for Java can look like"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "groupId":"com.my.company",\n "artifactId":"MyClient",\n "artifactVersion":"1.2.0",\n "library":"feign"\n}\n')),Object(i.b)("p",null,"Or if you preffer yaml format it can look like"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-yaml"}),'groupId: "com.my.company"\nartifactId: "MyClient"\nartifactVersion: "1.2.0"\nlibrary: "feign"\n')),Object(i.b)("p",null,"For all the unspecified options default values will be used."),Object(i.b)("p",null,"Another way to override default options is to extend the config class for the specific language.\nTo change, for example, the prefix for the Objective-C generated files, simply subclass the ",Object(i.b)("inlineCode",{parentName:"p"},"ObjcClientCodegen.java"),":"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-java"}),'package com.mycompany.openapitools.codegen;\n\nimport org.openapitools.codegen.languages.*;\n\npublic class MyObjcCodegen extends ObjcClientCodegen {\n static {\n PREFIX = "HELO";\n }\n}\n')),Object(i.b)("p",null,"and specify the ",Object(i.b)("inlineCode",{parentName:"p"},"classname")," when running the generator:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"-g com.mycompany.openapitools.codegen.MyObjcCodegen\n")),Object(i.b)("p",null,"Your subclass will now be loaded and overrides the ",Object(i.b)("inlineCode",{parentName:"p"},"PREFIX")," value in the superclass."),Object(i.b)("h2",{id:"bringing-your-own-models"},"Bringing your own models"),Object(i.b)("p",null,"Sometimes you don't want a model generated. In this case, you can simply specify an import mapping to tell\nthe codegen what ",Object(i.b)("em",{parentName:"p"},"not")," to create. When doing this, every location that references a specific model will\nrefer back to your classes. Note, this may not apply to all languages..."),Object(i.b)("p",null,"To specify an import mapping, use the ",Object(i.b)("inlineCode",{parentName:"p"},"--import-mappings")," argument and specify the model-to-import logic as such:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet\n")),Object(i.b)("p",null,"Or for multiple mappings:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet,Order=my.models.MyOrder\n")),Object(i.b)("p",null,"or"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet --import-mappings Order=my.models.MyOrder\n")))}c.isMDXComponent=!0},303:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));var a=n(0),o=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),c=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l({},t,{},e)),n},u=function(e){var t=c(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},b={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,i=e.originalType,r=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,m=u["".concat(r,".").concat(d)]||u[d]||b[d]||i;return n?o.a.createElement(m,l({ref:t},s,{components:n})):o.a.createElement(m,l({ref:t},s))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:a,r[1]=l;for(var s=2;s\n org.openapitools\n openapi-generator-maven-plugin\n ${openapi-generator-version}\n \n \n generate-client-code\n \n generate\n \n \n my-codegen\n \x3c!-- other configuration ... --\x3e\n \n \n \n \n \n org.openapitools\n my-codegen-openapi-generator\n 1.0.0\n \n \n\n")),Object(r.b)("p",null,"If you publish your artifact to a distant maven repository, do not forget to add this repository as ",Object(r.b)("inlineCode",{parentName:"p"},"pluginRepository")," for your project."),Object(r.b)("h2",{id:"selective-generation"},"Selective generation"),Object(r.b)("p",null,"You may not want to generate ",Object(r.b)("em",{parentName:"p"},"all")," models in your project. Likewise, you may want just one or two apis to be written. If that's the case, you can use system properties or ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/globals"}),"global properties")," to control the output."),Object(r.b)("p",null,"The default is generate ",Object(r.b)("em",{parentName:"p"},"everything")," supported by the specific library. Once you enable a feature, it will restrict the contents generated:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"# generate only models\n--global-property models\n\n# generate only apis\n--global-property apis\n\n# generate only supporting files\n--global-property supportingFiles\n\n# generate models and supporting files\n--global-property models,supportingFiles\n")),Object(r.b)("p",null,"To control the specific files being generated, you can pass a CSV list of what you want:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),'# generate the User and Pet models only\n--global-property models="User,Pet"\n\n# generate the User model and the supportingFile `StringUtil.java`:\n--global-property models=User,supportingFiles=StringUtil.java\n')),Object(r.b)("p",null,"To control generation of docs and tests for api and models, pass false to the option. For api, these options are ",Object(r.b)("inlineCode",{parentName:"p"},"--global-property apiTests=false,apiDocs=false"),". For models, ",Object(r.b)("inlineCode",{parentName:"p"},"--global-property modelTests=false,modelDocs=false"),".\nThese options default to true and don't limit the generation of the feature options listed above (like ",Object(r.b)("inlineCode",{parentName:"p"},"--global-property api"),"):"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),'# generate only models (with tests and documentation)\n--global-property models\n\n# generate only models (with tests but no documentation)\n--global-property models,modelDocs=false\n\n# generate only User and Pet models (no tests and no documentation)\n--global-property models="User,Pet",modelTests=false\n\n# generate only apis (without tests)\n--global-property apis,apiTests=false\n\n# generate only apis (modelTests option is ignored)\n--global-property apis,modelTests=false\n')),Object(r.b)("p",null,"When using selective generation, ",Object(r.b)("em",{parentName:"p"},"only")," the templates needed for the specific generation will be used."),Object(r.b)("p",null,'To skip models defined as the form parameters in "requestBody", please use ',Object(r.b)("inlineCode",{parentName:"p"},"skipFormModel")," (default to false) (this option is introduced at v3.2.2)"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"--global-property skipFormModel=true\n")),Object(r.b)("p",null,"This option will be helpful to skip model generation due to the form parameter, which is defined differently in OAS3 as there's no form parameter in OAS3"),Object(r.b)("h2",{id:"ignore-file-format"},"Ignore file format"),Object(r.b)("p",null,"OpenAPI Generator supports a ",Object(r.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file, similar to ",Object(r.b)("inlineCode",{parentName:"p"},".gitignore")," or ",Object(r.b)("inlineCode",{parentName:"p"},".dockerignore")," you're probably already familiar with."),Object(r.b)("p",null,"The ignore file allows for better control over overwriting existing files than the ",Object(r.b)("inlineCode",{parentName:"p"},"--skip-overwrite")," flag. With the ignore file, you can specify individual files or directories can be ignored. This can be useful, for example if you only want a subset of the generated code."),Object(r.b)("p",null,"Examples:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"# OpenAPI Generator Ignore\n# Lines beginning with a # are comments\n\n# This should match build.sh located anywhere.\nbuild.sh\n\n# Matches build.sh in the root\n/build.sh\n\n# Exclude all recursively\ndocs/**\n\n# Explicitly allow files excluded by other rules\n!docs/UserApi.md\n\n# Recursively exclude directories named Api\n# You can't negate files below this directory.\nsrc/**/Api/\n\n# When this file is nested under /Api (excluded above),\n# this rule is ignored because parent directory is excluded by previous rule.\n!src/**/PetApiTests.cs\n\n# Exclude a single, nested file explicitly\nsrc/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs\n")),Object(r.b)("p",null,"The ",Object(r.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file must exist in the root of the output directory."),Object(r.b)("p",null,"Upon first code generation, you may also pass the CLI option ",Object(r.b)("inlineCode",{parentName:"p"},"--ignore-file-override=/path/to/ignore_file")," for greater control over generated outputs. Note that this is a complete override, and will override the ",Object(r.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," file in an output directory when regenerating code."),Object(r.b)("p",null,"Editor support for ",Object(r.b)("inlineCode",{parentName:"p"},".openapi-generator-ignore")," files is available in IntelliJ via the ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://plugins.jetbrains.com/plugin/7495--ignore"}),".ignore plugin"),"."),Object(r.b)("h2",{id:"customizing-the-generator"},"Customizing the generator"),Object(r.b)("p",null,"There are different aspects of customizing the code generator beyond just creating or modifying templates. Each language has a supporting configuration file to handle different type mappings, etc:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"$ ls -1 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/\nAbstractJavaJAXRSServerCodegen.java\nAbstractTypeScriptClientCodegen.java\n... (results omitted)\nTypeScriptAngularClientCodegen.java\nTypeScriptNodeClientCodegen.java\n")),Object(r.b)("p",null,"Each of these files creates reasonable defaults so you can get running quickly. But if you want to configure package names, prefixes, model folders, etc. you can use a json config file to pass the values."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \\\n -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \\\n -g java \\\n -o samples/client/petstore/java \\\n -c path/to/config.json\n")),Object(r.b)("p",null,"and ",Object(r.b)("inlineCode",{parentName:"p"},"config.json")," contains the following as an example:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiPackage" : "petstore"\n}\n')),Object(r.b)("p",null,"You can use also ",Object(r.b)("inlineCode",{parentName:"p"},"config.yml")," with following equivalent example:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-yaml"}),'apiPackage: "petstore"\n')),Object(r.b)("p",null,"Supported config options can be different per language. Running ",Object(r.b)("inlineCode",{parentName:"p"},"config-help -g {lang}")," will show available options.\n",Object(r.b)("strong",{parentName:"p"},"These options are applied via configuration file (e.g. config.json or config.yml) or by passing them with ",Object(r.b)("inlineCode",{parentName:"strong"},"-p {optionName}={optionValue}")),". (If ",Object(r.b)("inlineCode",{parentName:"p"},"-p {optionName}")," does not work, please open a ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/openapitools/openapi-generator/issues/new"}),"ticket")," and we'll look into it)"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-sh"}),"java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g java\n")),Object(r.b)("p",null,"Output"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"CONFIG OPTIONS\n modelPackage\n package for generated models\n\n apiPackage\n package for generated api classes\n...... (results omitted)\n library\n library template (sub-template) to use:\n jersey1 - HTTP client: Jersey client 1.18. JSON processing: Jackson 2.4.2\n jersey2 - HTTP client: Jersey client 2.6\n feign - HTTP client: Netflix Feign 8.1.1. JSON processing: Jackson 2.6.3\n okhttp-gson (default) - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1\n retrofit - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)\n retrofit2 - HTTP client: OkHttp 2.5.0. JSON processing: Gson 2.4 (Retrofit 2.0.0-beta2)\n google-api-client - HTTP client: google-api-client 1.23.0. JSON processing: Jackson 2.8.9\n rest-assured - HTTP client: rest-assured : 4.3.0. JSON processing: Gson 2.8.6. Only for Java8\n")),Object(r.b)("p",null,"Your config file for Java can look like"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "groupId":"com.my.company",\n "artifactId":"MyClient",\n "artifactVersion":"1.2.0",\n "library":"feign"\n}\n')),Object(r.b)("p",null,"Or if you preffer yaml format it can look like"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-yaml"}),'groupId: "com.my.company"\nartifactId: "MyClient"\nartifactVersion: "1.2.0"\nlibrary: "feign"\n')),Object(r.b)("p",null,"For all the unspecified options default values will be used."),Object(r.b)("p",null,"Another way to override default options is to extend the config class for the specific language.\nTo change, for example, the prefix for the Objective-C generated files, simply subclass the ",Object(r.b)("inlineCode",{parentName:"p"},"ObjcClientCodegen.java"),":"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-java"}),'package com.mycompany.openapitools.codegen;\n\nimport org.openapitools.codegen.languages.*;\n\npublic class MyObjcCodegen extends ObjcClientCodegen {\n static {\n PREFIX = "HELO";\n }\n}\n')),Object(r.b)("p",null,"and specify the ",Object(r.b)("inlineCode",{parentName:"p"},"classname")," when running the generator:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"-g com.mycompany.openapitools.codegen.MyObjcCodegen\n")),Object(r.b)("p",null,"Your subclass will now be loaded and overrides the ",Object(r.b)("inlineCode",{parentName:"p"},"PREFIX")," value in the superclass."),Object(r.b)("h2",{id:"bringing-your-own-models"},"Bringing your own models"),Object(r.b)("p",null,"Sometimes you don't want a model generated. In this case, you can simply specify an import mapping to tell\nthe codegen what ",Object(r.b)("em",{parentName:"p"},"not")," to create. When doing this, every location that references a specific model will\nrefer back to your classes. Note, this may not apply to all languages..."),Object(r.b)("p",null,"To specify an import mapping, use the ",Object(r.b)("inlineCode",{parentName:"p"},"--import-mappings")," argument and specify the model-to-import logic as such:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet\n")),Object(r.b)("p",null,"Or for multiple mappings:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet,Order=my.models.MyOrder\n")),Object(r.b)("p",null,"or"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"--import-mappings Pet=my.models.MyPet --import-mappings Order=my.models.MyOrder\n")))}c.isMDXComponent=!0},303:function(e,n,t){"use strict";t.d(n,"a",(function(){return b})),t.d(n,"b",(function(){return d}));var a=t(0),o=t.n(a);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=o.a.createContext({}),c=function(e){var n=o.a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):l({},n,{},e)),t},b=function(e){var n=c(e.components);return o.a.createElement(s.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.a.createElement(o.a.Fragment,{},n)}},g=Object(a.forwardRef)((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),b=c(t),g=a,d=b["".concat(i,".").concat(g)]||b[g]||u[g]||r;return t?o.a.createElement(d,l({ref:n},s,{components:t})):o.a.createElement(d,l({ref:n},s))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,i=new Array(r);i[0]=g;var l={};for(var p in n)hasOwnProperty.call(n,p)&&(l[p]=n[p]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s - + diff --git a/blog/index.html b/blog/index.html index 181ad2067d7..8e4bdc4a980 100644 --- a/blog/index.html +++ b/blog/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/code-of-conduct/index.html b/docs/code-of-conduct/index.html index 63287b16902..41966e09f62 100644 --- a/docs/code-of-conduct/index.html +++ b/docs/code-of-conduct/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/contribute-building/index.html b/docs/contribute-building/index.html index b147b90259e..1d49b48fd8f 100644 --- a/docs/contribute-building/index.html +++ b/docs/contribute-building/index.html @@ -33,7 +33,7 @@ in the docker container. It also maps ~/.m2/repository to the appro - + diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 38e75a007ad..d025bc11f96 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -36,7 +36,7 @@ m time to time. If you've questions or concerns, please open a ticket to st - + diff --git a/docs/core-team/index.html b/docs/core-team/index.html index 156ba8beda1..1497b14f1a6 100644 --- a/docs/core-team/index.html +++ b/docs/core-team/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/customization/index.html b/docs/customization/index.html index 3fe4a27b069..58cd737d2de 100644 --- a/docs/customization/index.html +++ b/docs/customization/index.html @@ -16,7 +16,7 @@ Customization - + @@ -27,18 +27,18 @@
-

Customization

Custom Generator (and Template)

If none of the built-in generators suit your needs and you need to do more than just modify the mustache templates to tweak generated code, you can create a brand new generator and its associated templates. OpenAPI Generator can help with this, using the `meta` command:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \
-o out/generators/my-codegen -n my-codegen -p com.my.company.codegen

This will create a new directory out/generators/my-codegen, with all the files you need to get started - including a README.md. Once modified and compiled, you can use your new codegen just like any other, with your own custom-rolled logic.

These names can be anything you like. If you are building a client for the whitespace language, maybe you'd use the options -o out/generators/whitespace -n whitespace. They can be the same, or different, it doesn't matter. The -n value will be become the template name.

NOTE Convention is to use kebab casing for names passed to -n. Example, scala-finatra would become ScalaFinatraGenerator.

Use your new generator with the CLI

To compile your library, enter the out/generators/my-codegen directory, run mvn package.

NOTE Running your custom generator requires adding it to the classpath. This differs on Windows slightly from unix. +

Customization

User-defined Templates

The most common scenario for user customization is to override the built-in templates with small modifications. That scenario's documentation is in our templating page, and differs from user-defined templates.

Prior to release 5.0.0, whenever a user wanted to include templates which weren't built-in or weren't known to the generator at compile time, they'd need to follow the more involved approach of creating a custom generator as documented later in this document. Beginning in 5.0.0, a user may now provide additional supporting files and extensions to built-in templates via configuration. This feature requires using the external configuration file feature.

Consider that you might want to add some static documentation such as AUTHORS.md and a custom tooling script. Rather than a single file for API definitions you also want an implementation file and a separate interface file for each.

You might have an external configuration file named config.yaml which defines additional properties like this for a kotlin client generator:

additionalProperties:
artifactId: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8

You would generate via CLI with the command:

openapi-generator generate -g kotlin -i spec.yaml -o outdir -c config.yaml

To support the above scenario with custom templates, ensure that you're pointing to your custom template directory and add a files node with template file definitions to your config:

templateDir: my_custom_templates
additionalProperties:
artifactId: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8
files:
AUTHORS.md: {}
api_interfaces.mustache:
templateType: API
destinationFilename: Interface.kt
api.mustache:
templateType: API
destinationFilename: Impl.kt
other/check.mustache:
folder: scripts
destinationFilename: check.sh
templateType: SupportingFiles

The keys under the files node are your template filenames. These honor the same resolution order as all other templates.

The above configuration will do the following:

  • Copy my_custom_templates/AUTHORS.md to the generated output directory without processing via the template engine (due to template file extension). The empty object definition following AUTHORS.md allows the tool to infer the target output filename in the root of the output directory.
  • Compile a user-provided my_custom_templates/api_interfaces.mustache following our usual API template compilation logic. That is, one file will be created per API; APIs are generated defined according to tags in your spec documentation. The destination filename of Interface.kt will act as a suffix for the filename. So, a tag of Equipment will output a corresponding EquipmentInterface.kt.
  • Because api.mustache is the same mustache filename as used in your target generator (kotlin in this example), we support the following:
    • The destination filename provides a suffix for the generated output. APIs generate per tag in your specification. So, a tag of Equipment will output a corresponding EquipmentImpl.kt. This option will be used whether api.mustache targets a user customized template or a built-in template.
    • The built-in template will be used if you haven't provided an customized template. The kotlin generator defines the suffix as simply .kt, so this scenario would modify only the generated file suffixes according to the previous bullet point.
    • Your api.mustache will be used if it exists in your custom template directory. For generators with library options, such as jvm-okhttp3 in the kotlin generator, your file must exist in the same relative location as the embedded template. For kotlin using the jvm-okhttp3 library option, this file would need to be located at my_custom_templates/libraries/jvm-okhttp/api.mustache. See templating for more details.
  • Compile my_custom_templates/other/check.mustache with the supporting files bundle, and output to scripts/check.sh in your output directory. Note that we don't currently support setting file flags on output, so scripts such as these will either have to be sourced rather than executed, or have file flags set separately after generation (external to our tooling).

The templateType option will default to SupportingFiles, so the option for other/check.mustache is redundant and provided to demonstrate the full template file configuration options. The available template types are:

  • API
  • APIDocs
  • APITests
  • Model
  • ModelDocs
  • ModelTests
  • SupportingFiles

Excluding SupportingFiles, each of the above options may result in multiple files. API related types create a file per API. Model related types create a file for each model.

Note that user-defined templates will merge with built-in template definitions. If a supporting file with the sample template file path exists, it will be replaced with the user-defined template, otherwise the user-defined template will be added to the list of template files to compile. If the generator's built-in template is model_docs.mustache and you define model-docs.mustache, this will result in duplicated model docs (if destinationFilename differs) or undefined behavior as whichever template compiles last will overwrite the previous model docs (if destinationFilename matches the extension or suffix in the generator's code).

Custom Generator (and Template)

If none of the built-in generators suit your needs and you need to do more than just modify the mustache templates to tweak generated code, you can create a brand new generator and its associated templates. OpenAPI Generator can help with this, using the `meta` command:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \
-o out/generators/my-codegen -n my-codegen -p com.my.company.codegen

This will create a new directory out/generators/my-codegen, with all the files you need to get started - including a README.md. Once modified and compiled, you can use your new codegen just like any other, with your own custom-rolled logic.

These names can be anything you like. If you are building a client for the whitespace language, maybe you'd use the options -o out/generators/whitespace -n whitespace. They can be the same, or different, it doesn't matter. The -n value will be become the template name.

NOTE Convention is to use kebab casing for names passed to -n. Example, scala-finatra would become ScalaFinatraGenerator.

Use your new generator with the CLI

To compile your library, enter the out/generators/my-codegen directory, run mvn package.

NOTE Running your custom generator requires adding it to the classpath. This differs on Windows slightly from unix. If you are running a Windows Subsystem for Linux or a shell such as gitbash, and have issues with the unix variant, try the Windows syntax below.

Now, execute the generator:

java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator

For Windows users, you will need to use ; instead of : in the classpath, e.g.

java -cp "out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" org.openapitools.codegen.OpenAPIGenerator

Note the my-codegen is an option for -g now, and you can use the usual arguments for generating your code:

java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-o ./out/myClient

For Windows users:

java -cp "out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-o ./out/myClient

Use your new generator with the maven plugin

Install your library to your local maven repository by running:

mvn clean install -f out/generators/my-codegen

This will install org.openapitools:my-codegen-openapi-generator:1.0.0 to your local maven repository.

You can use this as additional dependency of the openapi-generator-maven-plugin plugin and use my-codegen as generatorName value:

<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>${openapi-generator-version}</version>
<executions>
<execution>
<id>generate-client-code</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<generatorName>my-codegen</generatorName>
<!-- other configuration ... -->
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>my-codegen-openapi-generator</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>

If you publish your artifact to a distant maven repository, do not forget to add this repository as pluginRepository for your project.

Selective generation

You may not want to generate all models in your project. Likewise, you may want just one or two apis to be written. If that's the case, you can use system properties or global properties to control the output.

The default is generate everything supported by the specific library. Once you enable a feature, it will restrict the contents generated:

# generate only models
--global-property models
# generate only apis
--global-property apis
# generate only supporting files
--global-property supportingFiles
# generate models and supporting files
--global-property models,supportingFiles

To control the specific files being generated, you can pass a CSV list of what you want:

# generate the User and Pet models only
--global-property models="User,Pet"
# generate the User model and the supportingFile `StringUtil.java`:
--global-property models=User,supportingFiles=StringUtil.java

To control generation of docs and tests for api and models, pass false to the option. For api, these options are --global-property apiTests=false,apiDocs=false. For models, --global-property modelTests=false,modelDocs=false. These options default to true and don't limit the generation of the feature options listed above (like --global-property api):

# generate only models (with tests and documentation)
--global-property models
# generate only models (with tests but no documentation)
--global-property models,modelDocs=false
# generate only User and Pet models (no tests and no documentation)
--global-property models="User,Pet",modelTests=false
# generate only apis (without tests)
--global-property apis,apiTests=false
# generate only apis (modelTests option is ignored)
--global-property apis,modelTests=false

When using selective generation, only the templates needed for the specific generation will be used.

To skip models defined as the form parameters in "requestBody", please use skipFormModel (default to false) (this option is introduced at v3.2.2)

--global-property skipFormModel=true

This option will be helpful to skip model generation due to the form parameter, which is defined differently in OAS3 as there's no form parameter in OAS3

Ignore file format

OpenAPI Generator supports a .openapi-generator-ignore file, similar to .gitignore or .dockerignore you're probably already familiar with.

The ignore file allows for better control over overwriting existing files than the --skip-overwrite flag. With the ignore file, you can specify individual files or directories can be ignored. This can be useful, for example if you only want a subset of the generated code.

Examples:

# OpenAPI Generator Ignore
# Lines beginning with a # are comments
# This should match build.sh located anywhere.
build.sh
# Matches build.sh in the root
/build.sh
# Exclude all recursively
docs/**
# Explicitly allow files excluded by other rules
!docs/UserApi.md
# Recursively exclude directories named Api
# You can't negate files below this directory.
src/**/Api/
# When this file is nested under /Api (excluded above),
# this rule is ignored because parent directory is excluded by previous rule.
!src/**/PetApiTests.cs
# Exclude a single, nested file explicitly
src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs

The .openapi-generator-ignore file must exist in the root of the output directory.

Upon first code generation, you may also pass the CLI option --ignore-file-override=/path/to/ignore_file for greater control over generated outputs. Note that this is a complete override, and will override the .openapi-generator-ignore file in an output directory when regenerating code.

Editor support for .openapi-generator-ignore files is available in IntelliJ via the .ignore plugin.

Customizing the generator

There are different aspects of customizing the code generator beyond just creating or modifying templates. Each language has a supporting configuration file to handle different type mappings, etc:

$ ls -1 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/
AbstractJavaJAXRSServerCodegen.java
AbstractTypeScriptClientCodegen.java
... (results omitted)
TypeScriptAngularClientCodegen.java
TypeScriptNodeClientCodegen.java

Each of these files creates reasonable defaults so you can get running quickly. But if you want to configure package names, prefixes, model folders, etc. you can use a json config file to pass the values.

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-g java \
-o samples/client/petstore/java \
-c path/to/config.json

and config.json contains the following as an example:

{
"apiPackage" : "petstore"
}

You can use also config.yml with following equivalent example:

apiPackage: "petstore"

Supported config options can be different per language. Running config-help -g {lang} will show available options. These options are applied via configuration file (e.g. config.json or config.yml) or by passing them with -p {optionName}={optionValue}. (If -p {optionName} does not work, please open a ticket and we'll look into it)

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g java

Output

CONFIG OPTIONS
modelPackage
package for generated models
apiPackage
package for generated api classes
...... (results omitted)
library
library template (sub-template) to use:
jersey1 - HTTP client: Jersey client 1.18. JSON processing: Jackson 2.4.2
jersey2 - HTTP client: Jersey client 2.6
feign - HTTP client: Netflix Feign 8.1.1. JSON processing: Jackson 2.6.3
okhttp-gson (default) - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1
retrofit - HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)
retrofit2 - HTTP client: OkHttp 2.5.0. JSON processing: Gson 2.4 (Retrofit 2.0.0-beta2)
google-api-client - HTTP client: google-api-client 1.23.0. JSON processing: Jackson 2.8.9
rest-assured - HTTP client: rest-assured : 4.3.0. JSON processing: Gson 2.8.6. Only for Java8

Your config file for Java can look like

{
"groupId":"com.my.company",
"artifactId":"MyClient",
"artifactVersion":"1.2.0",
"library":"feign"
}

Or if you preffer yaml format it can look like

groupId: "com.my.company"
artifactId: "MyClient"
artifactVersion: "1.2.0"
library: "feign"

For all the unspecified options default values will be used.

Another way to override default options is to extend the config class for the specific language. To change, for example, the prefix for the Objective-C generated files, simply subclass the ObjcClientCodegen.java:

package com.mycompany.openapitools.codegen;
import org.openapitools.codegen.languages.*;
public class MyObjcCodegen extends ObjcClientCodegen {
static {
PREFIX = "HELO";
}
}

and specify the classname when running the generator:

-g com.mycompany.openapitools.codegen.MyObjcCodegen

Your subclass will now be loaded and overrides the PREFIX value in the superclass.

Bringing your own models

Sometimes you don't want a model generated. In this case, you can simply specify an import mapping to tell the codegen what not to create. When doing this, every location that references a specific model will -refer back to your classes. Note, this may not apply to all languages...

To specify an import mapping, use the --import-mappings argument and specify the model-to-import logic as such:

--import-mappings Pet=my.models.MyPet

Or for multiple mappings:

--import-mappings Pet=my.models.MyPet,Order=my.models.MyOrder

or

--import-mappings Pet=my.models.MyPet --import-mappings Order=my.models.MyOrder
Last updated on by Jim Schubert
+refer back to your classes. Note, this may not apply to all languages...

To specify an import mapping, use the --import-mappings argument and specify the model-to-import logic as such:

--import-mappings Pet=my.models.MyPet

Or for multiple mappings:

--import-mappings Pet=my.models.MyPet,Order=my.models.MyOrder

or

--import-mappings Pet=my.models.MyPet --import-mappings Order=my.models.MyOrder
Last updated on by Jim Schubert
- + @@ -54,7 +54,7 @@ refer back to your classes. Note, this may not apply to all languages...

- + diff --git a/docs/debugging/index.html b/docs/debugging/index.html index 2a0f15cbafe..c740d6dcedf 100644 --- a/docs/debugging/index.html +++ b/docs/debugging/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/faq-contributing/index.html b/docs/faq-contributing/index.html index 7c3d036c4f6..7fedbab2a94 100644 --- a/docs/faq-contributing/index.html +++ b/docs/faq-contributing/index.html @@ -38,7 +38,7 @@ - + diff --git a/docs/faq-extending/index.html b/docs/faq-extending/index.html index 08f3a6edea2..c61c19df6a9 100644 --- a/docs/faq-extending/index.html +++ b/docs/faq-extending/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/faq-generators/index.html b/docs/faq-generators/index.html index 4affb723ad3..3fc5abb622e 100644 --- a/docs/faq-generators/index.html +++ b/docs/faq-generators/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/faq/index.html b/docs/faq/index.html index 4e1cf93b90d..66cb4d99354 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/file-post-processing/index.html b/docs/file-post-processing/index.html index 257c7e89750..d7bc9f1cf70 100644 --- a/docs/file-post-processing/index.html +++ b/docs/file-post-processing/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/fork-qna/index.html b/docs/fork-qna/index.html index 548f171ebcf..06dd9f4e4c4 100644 --- a/docs/fork-qna/index.html +++ b/docs/fork-qna/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/README/index.html b/docs/generators/README/index.html index ca1868626be..6745250f6f8 100644 --- a/docs/generators/README/index.html +++ b/docs/generators/README/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ada-server/index.html b/docs/generators/ada-server/index.html index afa84d424b7..a458dbaaeb7 100644 --- a/docs/generators/ada-server/index.html +++ b/docs/generators/ada-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ada/index.html b/docs/generators/ada/index.html index 307e4e4b0a2..cef5f02a0fe 100644 --- a/docs/generators/ada/index.html +++ b/docs/generators/ada/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/android/index.html b/docs/generators/android/index.html index 97f74ab097b..6467811d90c 100644 --- a/docs/generators/android/index.html +++ b/docs/generators/android/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/apache2/index.html b/docs/generators/apache2/index.html index d5058169d53..9da3f63e8ea 100644 --- a/docs/generators/apache2/index.html +++ b/docs/generators/apache2/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/apex/index.html b/docs/generators/apex/index.html index 6de20359766..941195f6b9b 100644 --- a/docs/generators/apex/index.html +++ b/docs/generators/apex/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/asciidoc/index.html b/docs/generators/asciidoc/index.html index fd0cba26fa0..61fb7d2e500 100644 --- a/docs/generators/asciidoc/index.html +++ b/docs/generators/asciidoc/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/aspnetcore/index.html b/docs/generators/aspnetcore/index.html index 26e36961a61..5d45e3beecf 100644 --- a/docs/generators/aspnetcore/index.html +++ b/docs/generators/aspnetcore/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/avro-schema/index.html b/docs/generators/avro-schema/index.html index 869b378572a..2e306d656bc 100644 --- a/docs/generators/avro-schema/index.html +++ b/docs/generators/avro-schema/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/bash/index.html b/docs/generators/bash/index.html index 43f88dfe34d..384d0d8731c 100644 --- a/docs/generators/bash/index.html +++ b/docs/generators/bash/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/c/index.html b/docs/generators/c/index.html index 715620928a6..8b64691a2f5 100644 --- a/docs/generators/c/index.html +++ b/docs/generators/c/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/clojure/index.html b/docs/generators/clojure/index.html index f200145450e..d2bea5aae08 100644 --- a/docs/generators/clojure/index.html +++ b/docs/generators/clojure/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-pistache-server/index.html b/docs/generators/cpp-pistache-server/index.html index 3800f1e3d90..2f65dca6ff2 100644 --- a/docs/generators/cpp-pistache-server/index.html +++ b/docs/generators/cpp-pistache-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-qt5-client/index.html b/docs/generators/cpp-qt5-client/index.html index da422eb8e7e..ee9a6895146 100644 --- a/docs/generators/cpp-qt5-client/index.html +++ b/docs/generators/cpp-qt5-client/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-qt5-qhttpengine-server/index.html b/docs/generators/cpp-qt5-qhttpengine-server/index.html index f7b330acf6d..29707c08779 100644 --- a/docs/generators/cpp-qt5-qhttpengine-server/index.html +++ b/docs/generators/cpp-qt5-qhttpengine-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-restbed-server/index.html b/docs/generators/cpp-restbed-server/index.html index 5cfd4f9a445..fcbb760c2f9 100644 --- a/docs/generators/cpp-restbed-server/index.html +++ b/docs/generators/cpp-restbed-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-restsdk/index.html b/docs/generators/cpp-restsdk/index.html index 2520beaab11..db62a2814d4 100644 --- a/docs/generators/cpp-restsdk/index.html +++ b/docs/generators/cpp-restsdk/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-tizen/index.html b/docs/generators/cpp-tizen/index.html index f741e4f705a..7bc09a9f377 100644 --- a/docs/generators/cpp-tizen/index.html +++ b/docs/generators/cpp-tizen/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cpp-ue4/index.html b/docs/generators/cpp-ue4/index.html index dd476d7d8c6..98caac0db2f 100644 --- a/docs/generators/cpp-ue4/index.html +++ b/docs/generators/cpp-ue4/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/csharp-dotnet2/index.html b/docs/generators/csharp-dotnet2/index.html index 2a9efe3ee0a..b6f86a9ddda 100644 --- a/docs/generators/csharp-dotnet2/index.html +++ b/docs/generators/csharp-dotnet2/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/csharp-nancyfx/index.html b/docs/generators/csharp-nancyfx/index.html index 3732d73356e..0058dac5427 100644 --- a/docs/generators/csharp-nancyfx/index.html +++ b/docs/generators/csharp-nancyfx/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/csharp-netcore/index.html b/docs/generators/csharp-netcore/index.html index c01971f385f..1daa4f2b3ea 100644 --- a/docs/generators/csharp-netcore/index.html +++ b/docs/generators/csharp-netcore/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/csharp/index.html b/docs/generators/csharp/index.html index ba282eccc60..44bd9165e93 100644 --- a/docs/generators/csharp/index.html +++ b/docs/generators/csharp/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/cwiki/index.html b/docs/generators/cwiki/index.html index 0f7ded29fe5..e6c08f354af 100644 --- a/docs/generators/cwiki/index.html +++ b/docs/generators/cwiki/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/dart-dio/index.html b/docs/generators/dart-dio/index.html index 44aeb50dc84..d198aabaa29 100644 --- a/docs/generators/dart-dio/index.html +++ b/docs/generators/dart-dio/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/dart-jaguar/index.html b/docs/generators/dart-jaguar/index.html index 8db384baa91..62046f20356 100644 --- a/docs/generators/dart-jaguar/index.html +++ b/docs/generators/dart-jaguar/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/dart/index.html b/docs/generators/dart/index.html index 0a1f61249a6..e9fe6dd2b41 100644 --- a/docs/generators/dart/index.html +++ b/docs/generators/dart/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/dynamic-html/index.html b/docs/generators/dynamic-html/index.html index 935000dd532..1580b999178 100644 --- a/docs/generators/dynamic-html/index.html +++ b/docs/generators/dynamic-html/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/eiffel/index.html b/docs/generators/eiffel/index.html index 496575a7c36..41b2aa9752f 100644 --- a/docs/generators/eiffel/index.html +++ b/docs/generators/eiffel/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/elixir/index.html b/docs/generators/elixir/index.html index abc2beaab14..28594776ade 100644 --- a/docs/generators/elixir/index.html +++ b/docs/generators/elixir/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/elm/index.html b/docs/generators/elm/index.html index f747feb85d1..02a636011b4 100644 --- a/docs/generators/elm/index.html +++ b/docs/generators/elm/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/erlang-client/index.html b/docs/generators/erlang-client/index.html index 4f9459108ec..0e95eb30002 100644 --- a/docs/generators/erlang-client/index.html +++ b/docs/generators/erlang-client/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/erlang-proper/index.html b/docs/generators/erlang-proper/index.html index 34fd345e6da..29b9b094375 100644 --- a/docs/generators/erlang-proper/index.html +++ b/docs/generators/erlang-proper/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/erlang-server/index.html b/docs/generators/erlang-server/index.html index 48522c05c53..dbf543f7de6 100644 --- a/docs/generators/erlang-server/index.html +++ b/docs/generators/erlang-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/flash-deprecated/index.html b/docs/generators/flash-deprecated/index.html index 039771d45d3..461d35786d8 100644 --- a/docs/generators/flash-deprecated/index.html +++ b/docs/generators/flash-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/fsharp-functions/index.html b/docs/generators/fsharp-functions/index.html index 78da84e200c..10b7e48b3df 100644 --- a/docs/generators/fsharp-functions/index.html +++ b/docs/generators/fsharp-functions/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/fsharp-giraffe-server/index.html b/docs/generators/fsharp-giraffe-server/index.html index bfab16548ce..3dd3f3e775f 100644 --- a/docs/generators/fsharp-giraffe-server/index.html +++ b/docs/generators/fsharp-giraffe-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/go-deprecated/index.html b/docs/generators/go-deprecated/index.html index 318c4db425c..bd46e289444 100644 --- a/docs/generators/go-deprecated/index.html +++ b/docs/generators/go-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/go-experimental/index.html b/docs/generators/go-experimental/index.html index e42dbdf3aa0..012c459453d 100644 --- a/docs/generators/go-experimental/index.html +++ b/docs/generators/go-experimental/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/go-gin-server/index.html b/docs/generators/go-gin-server/index.html index e86cadc934e..63e31c132f6 100644 --- a/docs/generators/go-gin-server/index.html +++ b/docs/generators/go-gin-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/go-server/index.html b/docs/generators/go-server/index.html index e02f941acfb..c5ddd069ca6 100644 --- a/docs/generators/go-server/index.html +++ b/docs/generators/go-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/go/index.html b/docs/generators/go/index.html index 2854d1d2f67..93be1be1d6f 100644 --- a/docs/generators/go/index.html +++ b/docs/generators/go/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/graphql-nodejs-express-server/index.html b/docs/generators/graphql-nodejs-express-server/index.html index dad007a02fa..ea4ab865a86 100644 --- a/docs/generators/graphql-nodejs-express-server/index.html +++ b/docs/generators/graphql-nodejs-express-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/graphql-schema/index.html b/docs/generators/graphql-schema/index.html index 23dbff55595..f56526ff8aa 100644 --- a/docs/generators/graphql-schema/index.html +++ b/docs/generators/graphql-schema/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/groovy/index.html b/docs/generators/groovy/index.html index dd9b3bc55c3..e8677b4d457 100644 --- a/docs/generators/groovy/index.html +++ b/docs/generators/groovy/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/haskell-http-client/index.html b/docs/generators/haskell-http-client/index.html index c366b02225a..7359acbbf06 100644 --- a/docs/generators/haskell-http-client/index.html +++ b/docs/generators/haskell-http-client/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/haskell/index.html b/docs/generators/haskell/index.html index 35740e3dee4..edb244226bf 100644 --- a/docs/generators/haskell/index.html +++ b/docs/generators/haskell/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/html/index.html b/docs/generators/html/index.html index e3169aaad64..c5c3150e8f1 100644 --- a/docs/generators/html/index.html +++ b/docs/generators/html/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/html2/index.html b/docs/generators/html2/index.html index 46fe8431f28..7b75482f4e3 100644 --- a/docs/generators/html2/index.html +++ b/docs/generators/html2/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/index.html b/docs/generators/index.html index 99be4091328..299b398855e 100644 --- a/docs/generators/index.html +++ b/docs/generators/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-inflector/index.html b/docs/generators/java-inflector/index.html index 9f4133d0ca7..eb996c41726 100644 --- a/docs/generators/java-inflector/index.html +++ b/docs/generators/java-inflector/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-msf4j/index.html b/docs/generators/java-msf4j/index.html index 3ee8b98783e..58327c7cbb5 100644 --- a/docs/generators/java-msf4j/index.html +++ b/docs/generators/java-msf4j/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-pkmst/index.html b/docs/generators/java-pkmst/index.html index 6c9f4744b3e..d3013f43fd4 100644 --- a/docs/generators/java-pkmst/index.html +++ b/docs/generators/java-pkmst/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-play-framework/index.html b/docs/generators/java-play-framework/index.html index 4b1d3f9d058..350aa26d7ea 100644 --- a/docs/generators/java-play-framework/index.html +++ b/docs/generators/java-play-framework/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-undertow-server/index.html b/docs/generators/java-undertow-server/index.html index 757b6d9b0f2..262d44bdf80 100644 --- a/docs/generators/java-undertow-server/index.html +++ b/docs/generators/java-undertow-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-vertx-web/index.html b/docs/generators/java-vertx-web/index.html index 97e078ab5a7..f82c1401fc8 100644 --- a/docs/generators/java-vertx-web/index.html +++ b/docs/generators/java-vertx-web/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java-vertx/index.html b/docs/generators/java-vertx/index.html index 2798f4b80af..173ab9e6915 100644 --- a/docs/generators/java-vertx/index.html +++ b/docs/generators/java-vertx/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/java/index.html b/docs/generators/java/index.html index 9369bb2be60..da11d028de8 100644 --- a/docs/generators/java/index.html +++ b/docs/generators/java/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/javascript-apollo/index.html b/docs/generators/javascript-apollo/index.html index a3692475ff1..95b8ab99742 100644 --- a/docs/generators/javascript-apollo/index.html +++ b/docs/generators/javascript-apollo/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/javascript-closure-angular/index.html b/docs/generators/javascript-closure-angular/index.html index e82679b340b..5e412937c61 100644 --- a/docs/generators/javascript-closure-angular/index.html +++ b/docs/generators/javascript-closure-angular/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/javascript-flowtyped/index.html b/docs/generators/javascript-flowtyped/index.html index 36bf88dd138..71cddcd3226 100644 --- a/docs/generators/javascript-flowtyped/index.html +++ b/docs/generators/javascript-flowtyped/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/javascript/index.html b/docs/generators/javascript/index.html index f8d7f65d792..30ea1a6b1ad 100644 --- a/docs/generators/javascript/index.html +++ b/docs/generators/javascript/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-cxf-cdi/index.html b/docs/generators/jaxrs-cxf-cdi/index.html index 19b5f52a375..b9e4356a5d7 100644 --- a/docs/generators/jaxrs-cxf-cdi/index.html +++ b/docs/generators/jaxrs-cxf-cdi/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-cxf-client/index.html b/docs/generators/jaxrs-cxf-client/index.html index 5c365b4683c..77d1e03a21c 100644 --- a/docs/generators/jaxrs-cxf-client/index.html +++ b/docs/generators/jaxrs-cxf-client/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-cxf-extended/index.html b/docs/generators/jaxrs-cxf-extended/index.html index 1e232a715e4..a3ac302e713 100644 --- a/docs/generators/jaxrs-cxf-extended/index.html +++ b/docs/generators/jaxrs-cxf-extended/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-cxf/index.html b/docs/generators/jaxrs-cxf/index.html index 8cfb73fefcf..317231c656b 100644 --- a/docs/generators/jaxrs-cxf/index.html +++ b/docs/generators/jaxrs-cxf/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-jersey/index.html b/docs/generators/jaxrs-jersey/index.html index 072baf2a9b1..4b2255b0521 100644 --- a/docs/generators/jaxrs-jersey/index.html +++ b/docs/generators/jaxrs-jersey/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-resteasy-eap/index.html b/docs/generators/jaxrs-resteasy-eap/index.html index acb7ca5b58b..37ac0fce953 100644 --- a/docs/generators/jaxrs-resteasy-eap/index.html +++ b/docs/generators/jaxrs-resteasy-eap/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-resteasy/index.html b/docs/generators/jaxrs-resteasy/index.html index 72ebbbb9a2a..5a839807cdd 100644 --- a/docs/generators/jaxrs-resteasy/index.html +++ b/docs/generators/jaxrs-resteasy/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jaxrs-spec/index.html b/docs/generators/jaxrs-spec/index.html index 728064a443c..1af66d90ec6 100644 --- a/docs/generators/jaxrs-spec/index.html +++ b/docs/generators/jaxrs-spec/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/jmeter/index.html b/docs/generators/jmeter/index.html index 387714509a9..c98932932d6 100644 --- a/docs/generators/jmeter/index.html +++ b/docs/generators/jmeter/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/k6/index.html b/docs/generators/k6/index.html index cb99c93af58..55457ac3938 100644 --- a/docs/generators/k6/index.html +++ b/docs/generators/k6/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/kotlin-server/index.html b/docs/generators/kotlin-server/index.html index ceb3ddbec56..bb681839e92 100644 --- a/docs/generators/kotlin-server/index.html +++ b/docs/generators/kotlin-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/kotlin-spring/index.html b/docs/generators/kotlin-spring/index.html index fa0111e1637..1cbb9edee18 100644 --- a/docs/generators/kotlin-spring/index.html +++ b/docs/generators/kotlin-spring/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/kotlin-vertx/index.html b/docs/generators/kotlin-vertx/index.html index eb2f102b456..ad0a603bd67 100644 --- a/docs/generators/kotlin-vertx/index.html +++ b/docs/generators/kotlin-vertx/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/kotlin/index.html b/docs/generators/kotlin/index.html index 5aa213946dd..d1543cffb75 100644 --- a/docs/generators/kotlin/index.html +++ b/docs/generators/kotlin/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/lua/index.html b/docs/generators/lua/index.html index 63ad2c0a7f3..2e99566f805 100644 --- a/docs/generators/lua/index.html +++ b/docs/generators/lua/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/markdown/index.html b/docs/generators/markdown/index.html index 60b145b78de..61d9a61709a 100644 --- a/docs/generators/markdown/index.html +++ b/docs/generators/markdown/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/mysql-schema/index.html b/docs/generators/mysql-schema/index.html index aeaa99e08ab..3020159b6cb 100644 --- a/docs/generators/mysql-schema/index.html +++ b/docs/generators/mysql-schema/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/nim/index.html b/docs/generators/nim/index.html index 50d0743bded..a230ae9264a 100644 --- a/docs/generators/nim/index.html +++ b/docs/generators/nim/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/nodejs-express-server/index.html b/docs/generators/nodejs-express-server/index.html index 7f1e497082d..3a2e364322c 100644 --- a/docs/generators/nodejs-express-server/index.html +++ b/docs/generators/nodejs-express-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/objc/index.html b/docs/generators/objc/index.html index f848bca4f00..c13741c13fb 100644 --- a/docs/generators/objc/index.html +++ b/docs/generators/objc/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ocaml/index.html b/docs/generators/ocaml/index.html index 00f12204667..a503db2ba34 100644 --- a/docs/generators/ocaml/index.html +++ b/docs/generators/ocaml/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/openapi-yaml/index.html b/docs/generators/openapi-yaml/index.html index cb52a99b6c7..8ffb555cd08 100644 --- a/docs/generators/openapi-yaml/index.html +++ b/docs/generators/openapi-yaml/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/openapi/index.html b/docs/generators/openapi/index.html index 1487b738cb6..6bc021127cb 100644 --- a/docs/generators/openapi/index.html +++ b/docs/generators/openapi/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/perl/index.html b/docs/generators/perl/index.html index 952409a88e7..96119d98872 100644 --- a/docs/generators/perl/index.html +++ b/docs/generators/perl/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-laravel/index.html b/docs/generators/php-laravel/index.html index 9d99a8a2082..7927d8ab02c 100644 --- a/docs/generators/php-laravel/index.html +++ b/docs/generators/php-laravel/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-lumen/index.html b/docs/generators/php-lumen/index.html index ef021731e30..a4fdad02ec9 100644 --- a/docs/generators/php-lumen/index.html +++ b/docs/generators/php-lumen/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-silex-deprecated/index.html b/docs/generators/php-silex-deprecated/index.html index 8193a569503..7bd8ebd45ec 100644 --- a/docs/generators/php-silex-deprecated/index.html +++ b/docs/generators/php-silex-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-slim-deprecated/index.html b/docs/generators/php-slim-deprecated/index.html index 7fde6e500e1..445f5ef8cd7 100644 --- a/docs/generators/php-slim-deprecated/index.html +++ b/docs/generators/php-slim-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-slim4/index.html b/docs/generators/php-slim4/index.html index f569e5eb65f..56276cf2b50 100644 --- a/docs/generators/php-slim4/index.html +++ b/docs/generators/php-slim4/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-symfony/index.html b/docs/generators/php-symfony/index.html index 3d08482bea1..56a9da4387f 100644 --- a/docs/generators/php-symfony/index.html +++ b/docs/generators/php-symfony/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php-ze-ph/index.html b/docs/generators/php-ze-ph/index.html index 86bd924dbfe..c1a5bd6abf2 100644 --- a/docs/generators/php-ze-ph/index.html +++ b/docs/generators/php-ze-ph/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/php/index.html b/docs/generators/php/index.html index 24ad8b8364d..cd21218900e 100644 --- a/docs/generators/php/index.html +++ b/docs/generators/php/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/plantuml/index.html b/docs/generators/plantuml/index.html index 593bb4bd797..197757d51a4 100644 --- a/docs/generators/plantuml/index.html +++ b/docs/generators/plantuml/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/powershell/index.html b/docs/generators/powershell/index.html index d4b9a9dee97..a7e593b4f1d 100644 --- a/docs/generators/powershell/index.html +++ b/docs/generators/powershell/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/protobuf-schema/index.html b/docs/generators/protobuf-schema/index.html index 8d9c3da792b..8c2be901702 100644 --- a/docs/generators/protobuf-schema/index.html +++ b/docs/generators/protobuf-schema/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/python-aiohttp/index.html b/docs/generators/python-aiohttp/index.html index 32f3a5d1b04..1435de916de 100644 --- a/docs/generators/python-aiohttp/index.html +++ b/docs/generators/python-aiohttp/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/python-blueplanet/index.html b/docs/generators/python-blueplanet/index.html index 77badb7fd22..faea6cf2d4b 100644 --- a/docs/generators/python-blueplanet/index.html +++ b/docs/generators/python-blueplanet/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/python-experimental/index.html b/docs/generators/python-experimental/index.html index 4ce034a7c55..7f0f8be51ff 100644 --- a/docs/generators/python-experimental/index.html +++ b/docs/generators/python-experimental/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/python-flask/index.html b/docs/generators/python-flask/index.html index 409f43dea08..0ca3c710ae8 100644 --- a/docs/generators/python-flask/index.html +++ b/docs/generators/python-flask/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/python/index.html b/docs/generators/python/index.html index 54b7e26186e..fc502335b85 100644 --- a/docs/generators/python/index.html +++ b/docs/generators/python/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/r/index.html b/docs/generators/r/index.html index abfe1bcbed9..d7e8432f385 100644 --- a/docs/generators/r/index.html +++ b/docs/generators/r/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ruby-on-rails/index.html b/docs/generators/ruby-on-rails/index.html index c67e88ae75e..79989f65d6e 100644 --- a/docs/generators/ruby-on-rails/index.html +++ b/docs/generators/ruby-on-rails/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ruby-sinatra/index.html b/docs/generators/ruby-sinatra/index.html index 3c091af4fa8..855f9731dd6 100644 --- a/docs/generators/ruby-sinatra/index.html +++ b/docs/generators/ruby-sinatra/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/ruby/index.html b/docs/generators/ruby/index.html index 139e9d59d3d..9109f5a0c2c 100644 --- a/docs/generators/ruby/index.html +++ b/docs/generators/ruby/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/rust-server/index.html b/docs/generators/rust-server/index.html index aa2af3da543..090a2fc3b53 100644 --- a/docs/generators/rust-server/index.html +++ b/docs/generators/rust-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/rust/index.html b/docs/generators/rust/index.html index 6e80a4fc45a..345b3bebd75 100644 --- a/docs/generators/rust/index.html +++ b/docs/generators/rust/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-akka-http-server/index.html b/docs/generators/scala-akka-http-server/index.html index ce0e56f0810..ce2d1995bb2 100644 --- a/docs/generators/scala-akka-http-server/index.html +++ b/docs/generators/scala-akka-http-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-akka/index.html b/docs/generators/scala-akka/index.html index eeb256803d9..94c782fbd7b 100644 --- a/docs/generators/scala-akka/index.html +++ b/docs/generators/scala-akka/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-finch/index.html b/docs/generators/scala-finch/index.html index dbc8e53fef9..f95b959dfd7 100644 --- a/docs/generators/scala-finch/index.html +++ b/docs/generators/scala-finch/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-gatling/index.html b/docs/generators/scala-gatling/index.html index c8be5b64f9f..0c8629aed44 100644 --- a/docs/generators/scala-gatling/index.html +++ b/docs/generators/scala-gatling/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-httpclient-deprecated/index.html b/docs/generators/scala-httpclient-deprecated/index.html index 98c54ab0aae..1d96b35b2d0 100644 --- a/docs/generators/scala-httpclient-deprecated/index.html +++ b/docs/generators/scala-httpclient-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-lagom-server/index.html b/docs/generators/scala-lagom-server/index.html index fa984889557..75b3be92707 100644 --- a/docs/generators/scala-lagom-server/index.html +++ b/docs/generators/scala-lagom-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-play-server/index.html b/docs/generators/scala-play-server/index.html index ded3a18ead5..647d777bd23 100644 --- a/docs/generators/scala-play-server/index.html +++ b/docs/generators/scala-play-server/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scala-sttp/index.html b/docs/generators/scala-sttp/index.html index 6fb142aa9a2..0f36740005d 100644 --- a/docs/generators/scala-sttp/index.html +++ b/docs/generators/scala-sttp/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scalatra/index.html b/docs/generators/scalatra/index.html index 6b15d43e218..1b37abe1d78 100644 --- a/docs/generators/scalatra/index.html +++ b/docs/generators/scalatra/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/scalaz/index.html b/docs/generators/scalaz/index.html index df363813adc..f6a9581b3d0 100644 --- a/docs/generators/scalaz/index.html +++ b/docs/generators/scalaz/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/spring/index.html b/docs/generators/spring/index.html index b3b0ab03a45..b62f43d65e4 100644 --- a/docs/generators/spring/index.html +++ b/docs/generators/spring/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/swift4-deprecated/index.html b/docs/generators/swift4-deprecated/index.html index c1a0125dd34..30c8725f010 100644 --- a/docs/generators/swift4-deprecated/index.html +++ b/docs/generators/swift4-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/swift5/index.html b/docs/generators/swift5/index.html index a496c67b491..c8168cfe773 100644 --- a/docs/generators/swift5/index.html +++ b/docs/generators/swift5/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-angular/index.html b/docs/generators/typescript-angular/index.html index 2ca97b1558d..d920789443b 100644 --- a/docs/generators/typescript-angular/index.html +++ b/docs/generators/typescript-angular/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-angularjs-deprecated/index.html b/docs/generators/typescript-angularjs-deprecated/index.html index 31f23877889..dcbb99710f7 100644 --- a/docs/generators/typescript-angularjs-deprecated/index.html +++ b/docs/generators/typescript-angularjs-deprecated/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-aurelia/index.html b/docs/generators/typescript-aurelia/index.html index ed7376db682..45e7f16c526 100644 --- a/docs/generators/typescript-aurelia/index.html +++ b/docs/generators/typescript-aurelia/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-axios/index.html b/docs/generators/typescript-axios/index.html index 5c5255a9841..4170a1f405e 100644 --- a/docs/generators/typescript-axios/index.html +++ b/docs/generators/typescript-axios/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-fetch/index.html b/docs/generators/typescript-fetch/index.html index 3cb74e3845f..d8bcf4570cb 100644 --- a/docs/generators/typescript-fetch/index.html +++ b/docs/generators/typescript-fetch/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-inversify/index.html b/docs/generators/typescript-inversify/index.html index 4ffb3b7b22d..9fbf1669ad7 100644 --- a/docs/generators/typescript-inversify/index.html +++ b/docs/generators/typescript-inversify/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-jquery/index.html b/docs/generators/typescript-jquery/index.html index fc02b8749bf..d47b1bdbac7 100644 --- a/docs/generators/typescript-jquery/index.html +++ b/docs/generators/typescript-jquery/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-node/index.html b/docs/generators/typescript-node/index.html index f2fe475375e..fb3c1eae5dc 100644 --- a/docs/generators/typescript-node/index.html +++ b/docs/generators/typescript-node/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-redux-query/index.html b/docs/generators/typescript-redux-query/index.html index 33fa2d893a6..e675c5c0ca3 100644 --- a/docs/generators/typescript-redux-query/index.html +++ b/docs/generators/typescript-redux-query/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript-rxjs/index.html b/docs/generators/typescript-rxjs/index.html index 86256a15708..e1edd4f0d4b 100644 --- a/docs/generators/typescript-rxjs/index.html +++ b/docs/generators/typescript-rxjs/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/generators/typescript/index.html b/docs/generators/typescript/index.html index 4eaa97810d5..e20f0a36e76 100644 --- a/docs/generators/typescript/index.html +++ b/docs/generators/typescript/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/globals/index.html b/docs/globals/index.html index dbefc378fe5..01d9384af28 100644 --- a/docs/globals/index.html +++ b/docs/globals/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/installation/index.html b/docs/installation/index.html index 364076b91b1..06c116edd27 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -36,7 +36,7 @@ it will execute as normal. If a newer version is found, the script will download - + diff --git a/docs/integrations/index.html b/docs/integrations/index.html index 95121b3b5df..32c099b342f 100644 --- a/docs/integrations/index.html +++ b/docs/integrations/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/new-generator/index.html b/docs/new-generator/index.html index 66e34fb5dc0..41bcb704936 100644 --- a/docs/new-generator/index.html +++ b/docs/new-generator/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/online/index.html b/docs/online/index.html index 1f8c9dcf77e..25325367735 100644 --- a/docs/online/index.html +++ b/docs/online/index.html @@ -33,7 +33,7 @@ - + diff --git a/docs/plugins/index.html b/docs/plugins/index.html index e1170bbf575..500c2527317 100644 --- a/docs/plugins/index.html +++ b/docs/plugins/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/release-3-0-0/index.html b/docs/release-3-0-0/index.html index 7c2705972c4..7ce8c2dcd76 100644 --- a/docs/release-3-0-0/index.html +++ b/docs/release-3-0-0/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/release-summary/index.html b/docs/release-summary/index.html index 79201459bfb..807003d7bc7 100644 --- a/docs/release-summary/index.html +++ b/docs/release-summary/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/roadmap/index.html b/docs/roadmap/index.html index 4b34fab4895..5f3601c9a01 100644 --- a/docs/roadmap/index.html +++ b/docs/roadmap/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/spec-info/index.html b/docs/spec-info/index.html index b80c23aeadc..307b885d7e7 100644 --- a/docs/spec-info/index.html +++ b/docs/spec-info/index.html @@ -32,7 +32,7 @@ - + diff --git a/docs/swagger-codegen-migration/index.html b/docs/swagger-codegen-migration/index.html index c5063006fec..b7f7246a204 100644 --- a/docs/swagger-codegen-migration/index.html +++ b/docs/swagger-codegen-migration/index.html @@ -43,7 +43,7 @@ Concretely if you did not specify anything when you are generating java code, a - + diff --git a/docs/templating/index.html b/docs/templating/index.html index 50d00bf6a0d..52b255279d9 100644 --- a/docs/templating/index.html +++ b/docs/templating/index.html @@ -37,7 +37,7 @@ For more details on Mustache see - + diff --git a/docs/usage/index.html b/docs/usage/index.html index 0d79d01b552..06f2900e04a 100644 --- a/docs/usage/index.html +++ b/docs/usage/index.html @@ -35,7 +35,7 @@ modified by --includes-base-dir.

 
 
 
-
+
 
 
 
diff --git a/index.html b/index.html
index 5c825d86dbe..0e3cccdfe32 100644
--- a/index.html
+++ b/index.html
@@ -32,7 +32,7 @@
 
 
 
-
+
 
 
 
diff --git a/runtime~main.4357d776.js b/runtime~main.be138628.js
similarity index 99%
rename from runtime~main.4357d776.js
rename to runtime~main.be138628.js
index 84b5b2f81f8..14999fbb430 100644
--- a/runtime~main.4357d776.js
+++ b/runtime~main.be138628.js
@@ -1 +1 @@
-!function(e){function f(f){for(var d,a,r=f[0],n=f[1],o=f[2],u=0,i=[];u
 
-
+
 
 
 
diff --git a/users.html b/users.html
index 87a3844c1c7..584ed2223e2 100644
--- a/users.html
+++ b/users.html
@@ -28,7 +28,7 @@
 
 
 
-
+
 
 
 
diff --git a/users/index.html b/users/index.html
index 4d510926a80..15275e85184 100644
--- a/users/index.html
+++ b/users/index.html
@@ -32,7 +32,7 @@
 
 
 
-
+