diff --git a/.travis.yml b/.travis.yml index aded98aa6cf..b8f521d776d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,9 @@ cache: - $HOME/samples/client/petstore/typescript-fetch/npm/with-npm-version/typings - $HOME/samples/client/petstore/typescript-angular/node_modules - $HOME/samples/client/petstore/typescript-angular/typings + - $HOME/samples/server/petstore/rust-server/target - $HOME/perl5 + - $HOME/.cargo services: - docker @@ -41,7 +43,7 @@ before_install: - stack upgrade - stack --version # install rust - - curl -sSf https://static.rust-lang.org/rustup.sh | sh + - curl https://sh.rustup.rs -sSf | sh -s -- -y -v # required when sudo: required for the Ruby petstore tests - gem install bundler - npm install -g typescript @@ -83,7 +85,7 @@ install: # Add Godeps dependencies to GOPATH and PATH - eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.4 bash)" - export GOPATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace" - - export PATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace/bin:$PATH" + - export PATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace/bin:$HOME/.cargo/bin:$PATH" - go version script: diff --git a/CI/pom.xml.shippable b/CI/pom.xml.shippable index 9032848fa5a..52c478b9f5d 100644 --- a/CI/pom.xml.shippable +++ b/CI/pom.xml.shippable @@ -840,7 +840,7 @@ - samples + samples.shippable env diff --git a/bin/openapi3/pistache-server-petstore.sh b/bin/openapi3/cpp-pistache-server-petstore.sh similarity index 97% rename from bin/openapi3/pistache-server-petstore.sh rename to bin/openapi3/cpp-pistache-server-petstore.sh index b785bc047fd..5f7dd337691 100755 --- a/bin/openapi3/pistache-server-petstore.sh +++ b/bin/openapi3/cpp-pistache-server-petstore.sh @@ -27,6 +27,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -g cpp-pistache-server -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -o samples/server/petstore/pistache-server $@" +ags="generate -g cpp-pistache-server -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -o samples/server/petstore/cpp-pistache $@" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/openapi3/restbed-petstore-server.sh b/bin/openapi3/cpp-restbed-petstore-server.sh similarity index 98% rename from bin/openapi3/restbed-petstore-server.sh rename to bin/openapi3/cpp-restbed-petstore-server.sh index fd19d7ed676..e86c7a772b6 100755 --- a/bin/openapi3/restbed-petstore-server.sh +++ b/bin/openapi3/cpp-restbed-petstore-server.sh @@ -27,6 +27,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -g cpp-restbed-server -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -o samples/server/petstore/restbed $@" +ags="generate -g cpp-restbed-server -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -o samples/server/petstore/cpp-restbed $@" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/rust-server-petstore.sh b/bin/rust-server-petstore.sh index 2f44b80c45c..06a8c4d0202 100755 --- a/bin/rust-server-petstore.sh +++ b/bin/rust-server-petstore.sh @@ -27,6 +27,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -t modules/openapi-generator/src/main/resources/rust-server -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g rust-server -o samples/server/petstore/rust-server -DpackageName=petstore_api $@" +ags="generate -t modules/openapi-generator/src/main/resources/rust-server -i modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml -g rust-server -o samples/server/petstore/rust-server -DpackageName=petstore_api --additional-properties hideGenerationTimestamp=true $@" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/pistache-server-petstore.bat b/bin/windows/cpp-pistache-server-petstore.bat similarity index 94% rename from bin/windows/pistache-server-petstore.bat rename to bin/windows/cpp-pistache-server-petstore.bat index f1b1b96faa6..3f9e53029b5 100644 --- a/bin/windows/pistache-server-petstore.bat +++ b/bin/windows/cpp-pistache-server-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties -set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g cpp-pistache-server -o samples\server\petstore\pistache-server\ +set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g cpp-pistache-server -o samples\server\petstore\cpp-pistache\ java %JAVA_OPTS% -jar %executable% %ags% diff --git a/bin/windows/restbed-petstore-server.bat b/bin/windows/cpp-restbed-petstore-server.bat similarity index 95% rename from bin/windows/restbed-petstore-server.bat rename to bin/windows/cpp-restbed-petstore-server.bat index 6ffb881c28f..e3a76db3f91 100644 --- a/bin/windows/restbed-petstore-server.bat +++ b/bin/windows/cpp-restbed-petstore-server.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties -set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g cpp-restbed-server -o samples\server\petstore\restbed\ +set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g cpp-restbed-server -o samples\server\petstore\cpp-restbed\ java %JAVA_OPTS% -jar %executable% %ags% diff --git a/docs/customization.md b/docs/customization.md index 565a7678d27..ec1a534c98d 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -1,38 +1,58 @@ ## Customization -### Modifying the client library format -Don't like the default client syntax? Want a different language supported? No problem! OpenAPI Generator processes mustache templates with the [jmustache](https://github.com/samskivert/jmustache) engine. You can modify our templates or make your own. +### Modifying a template -You can look at `modules/openapi-generator/src/main/resources/${your-language}` for examples. To make your own templates, create your own files and use the `-t` flag to specify your template folder. It actually is that easy. +Clone OpenAPI Generator and navigate to `modules/openapi-generator/src/main/resources/${template}`, where `${template}` is the name of the generator you wish to modify. For example, if you are looking for the C# template, it's named `csharp`. This directory contains all the templates used to generate your target client/server/doc output. -### Making your own codegen modules +Templates consist of multiple mustache files. [Mustache](https://mustache.github.io/) is used as the templating language for these templates, and the specific engine used is [jmustache](https://github.com/samskivert/jmustache). -If you're starting a project with a new language and don't see what you need, openapi-generator can help you create a project to generate your own libraries: +If you wish to modify one of these templates, copy and paste the template you're interested in to a templates directory you control. To let OpenAPI Generator know where this templates directory is, use the `-t` option (e.g: `-t ./templates/`). + +To tie that all together (example for modifying ruby templates): + +```sh +mkdir templates +export template=ruby +cp -r modules/openapi-generator/src/main/resources/${template} templates/${template} +java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \ + -t ./templates/${template} -g ruby -i ./foo.yml -o ./out/ruby +``` + +_**Note:** You cannot use this approach to create new templates, only override existing ones. If you'd like to create a new generator within the project, see `new.sh` in the repository root._ + +### Creating a new template + +If none of the templates suit your needs, you can create a brand new template. OpenAPI Generator can help with this, using the `meta` command: ```sh java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \ - -o output/myLibrary -n myClientCodegen -p com.my.company.codegen + -o out/generators/my-codegen -n my-codegen -p com.my.company.codegen ``` -This will write, in the folder `output/myLibrary`, all the files you need to get started, including a `README.md. Once modified and compiled, you can load your library with the codegen and generate clients with your own, custom-rolled logic. +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. -You would then compile your library in the `output/myLibrary` folder with `mvn package` and execute the codegen like such: +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`. + +To compile your library, enter the `out/generators/my-codegen` directory, run `mvn package` and execute the generator: ```sh -java -cp output/myLibrary/target/myClientCodegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator +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 output/myLibrary/target/myClientCodegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar org.openapitools.codegen.OpenAPIGenerator +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 `myClientCodegen` is an option now, and you can use the usual arguments for generating your library: +Note the `my-codegen` is an option for `-g` now, and you can use the usual arguments for generating your code: ```sh -java -cp output/myLibrary/target/myClientCodegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \ - io.openapitools.codegen.OpenAPIGenerator generate -g myClientCodegen\ +java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \ + io.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 myClient + -o ./out/myClient ``` diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index b377f59f194..33d07d7455b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -62,6 +62,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code public static final String SUPPORT_ASYNC = "supportAsync"; public static final String WITH_XML = "withXml"; public static final String SUPPORT_JAVA6 = "supportJava6"; + public static final String DISABLE_HTML_ESCAPING = "disableHtmlEscaping"; protected String dateLibrary = "threetenbp"; protected boolean supportAsync = false; @@ -93,7 +94,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code protected boolean serializeBigDecimalAsString = false; protected String apiDocPath = "docs/"; protected String modelDocPath = "docs/"; - protected boolean supportJava6 = false; + protected boolean supportJava6= false; + protected boolean disableHtmlEscaping = false; public AbstractJavaCodegen() { super(); @@ -185,6 +187,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code java8Mode.setEnum(java8ModeOptions); cliOptions.add(java8Mode); + cliOptions.add(CliOption.newBoolean(DISABLE_HTML_ESCAPING, "Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)")); } @Override @@ -196,6 +199,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code } additionalProperties.put(SUPPORT_JAVA6, supportJava6); + if (additionalProperties.containsKey(DISABLE_HTML_ESCAPING)) { + this.setDisableHtmlEscaping(Boolean.valueOf(additionalProperties.get(DISABLE_HTML_ESCAPING).toString())); + } + additionalProperties.put(DISABLE_HTML_ESCAPING, disableHtmlEscaping); if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) { this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE)); @@ -1222,6 +1229,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code this.supportAsync = enabled; } + public void setDisableHtmlEscaping(boolean disabled) { + this.disableHtmlEscaping = disabled; + } + @Override public String escapeQuotationMark(String input) { // remove " to avoid code injection diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java index 44268803c43..7f2801a7be3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -325,11 +325,10 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp } else if (ModelUtils.isDateTimeSchema(p)) { return UNDEFINED_VALUE; } else if (ModelUtils.isNumberSchema(p)) { - NumberSchema dp = (NumberSchema) p; - if (dp.getDefault() != null) { - return dp.getDefault().toString(); - } - return UNDEFINED_VALUE; + if (p.getDefault() != null) { + return p.getDefault().toString(); + } + return UNDEFINED_VALUE; } else if (ModelUtils.isIntegerSchema(p)) { if (p.getDefault() != null) { return p.getDefault().toString(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java index f953acd4e2f..6e650b9ad56 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java @@ -110,6 +110,7 @@ public class GoServerCodegen extends AbstractGoCodegen { */ supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml")); supportingFiles.add(new SupportingFile("main.mustache", "", "main.go")); + supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile")); supportingFiles.add(new SupportingFile("routers.mustache", apiPath, "routers.go")); supportingFiles.add(new SupportingFile("logger.mustache", apiPath, "logger.go")); writeOptional(outputFolder, new SupportingFile("README.mustache", apiPath, "README.md")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java index 15c39dd6a42..75b07b266ff 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java @@ -102,6 +102,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo protected String apiTestPath = "api/"; protected String modelTestPath = "model/"; protected boolean useES6 = false; // default is ES5 + private String modelPropertyNaming = "camelCase"; public JavascriptClientCodegen() { super(); @@ -206,6 +207,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo cliOptions.add(new CliOption(USE_ES6, "use JavaScript ES6 (ECMAScript 6) (beta). Default is ES5.") .defaultValue(Boolean.FALSE.toString())); + cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase")); } @Override @@ -271,6 +273,9 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo if (additionalProperties.containsKey(EMIT_JS_DOC)) { setEmitJSDoc(convertPropertyToBooleanAndWriteBack(EMIT_JS_DOC)); } + if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) { + setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING)); + } } @Override @@ -492,6 +497,22 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo return toModelName(name) + ".spec"; } + public String getModelPropertyNaming() { + return this.modelPropertyNaming; + } + + private String getNameUsingModelPropertyNaming(String name) { + switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) { + case original: return name; + case camelCase: return camelize(name, true); + case PascalCase: return camelize(name); + case snake_case: return underscore(name); + default: throw new IllegalArgumentException("Invalid model property naming '" + + name + "'. Must be 'original', 'camelCase', " + + "'PascalCase' or 'snake_case'"); + } + } + @Override public String toVarName(String name) { // sanitize name @@ -508,7 +529,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo // camelize (lower first character) the variable name // pet_id => petId - name = camelize(name, true); + name = getNameUsingModelPropertyNaming(name); // for reserved word or word starting with number, append _ if (isReservedWord(name) || name.matches("^\\d.*")) { @@ -613,6 +634,17 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo return null; } + public void setModelPropertyNaming(String naming) { + if ("original".equals(naming) || "camelCase".equals(naming) || + "PascalCase".equals(naming) || "snake_case".equals(naming)) { + this.modelPropertyNaming = naming; + } else { + throw new IllegalArgumentException("Invalid model property naming '" + + naming + "'. Must be 'original', 'camelCase', " + + "'PascalCase' or 'snake_case'"); + } + } + @Override public String toDefaultValueWithParam(String name, Schema p) { String type = normalizeType(getTypeDeclaration(p)); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java index f21ea2a9bc2..40ba1c8f2f1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java @@ -77,6 +77,9 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { public RustServerCodegen() { super(); + // Show the generation timestamp by default + hideGenerationTimestamp = Boolean.FALSE; + // set the output folder here outputFolder = "generated-code/rust-server"; @@ -529,19 +532,6 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { List consumes = new ArrayList(); - /* comment out the following logic as there's no consume in operation/global definition - if (consumes != null) { - if (!consumes.isEmpty()) { - // use consumes defined in the operation - consumes = operation.getConsumes(); - } - } else if (openAPI != null && openAPI.getConsumes() != null && swagger.getConsumes().size() > 0) { - // use consumes defined globally - consumes = swagger.getConsumes(); - LOGGER.debug("No consumes defined in operation. Using global consumes (" + swagger.getConsumes() + ") for " + op.operationId); - } - */ - boolean consumesPlainText = false; boolean consumesXml = false; // if "consumes" is defined (per operation or using global definition) @@ -569,19 +559,6 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { List produces = new ArrayList(getProducesInfo(openAPI, operation)); - // if "consumes" is defined (per operation or using global definition) - /* - if (operation.getProduces() != null) { - if (operation.getProduces().size() > 0) { - // use produces defined in the operation - produces = operation.getProduces(); - } - } else if (swagger != null && swagger.getProduces() != null && swagger.getProduces().size() > 0) { - // use produces defined globally - produces = swagger.getProduces(); - LOGGER.debug("No produces defined in operation. Using global produces (" + swagger.getProduces() + ") for " + op.operationId); - } - */ boolean producesXml = false; boolean producesPlainText = false; @@ -604,51 +581,6 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { op.hasProduces = true; } - - /* TODO move the following logic to postProcessOperations as there's no body/form parameter in OAS 3.0 - if (op.bodyParam != null) { - if (paramHasXmlNamespace(op.bodyParam, definitions)) { - op.bodyParam.vendorExtensions.put("has_namespace", "true"); - } - for (String key : definitions.keySet()) { - op.bodyParam.vendorExtensions.put("model_key", key); - } - - // Default to consuming json - op.bodyParam.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase()); - if (consumesXml) { - op.bodyParam.vendorExtensions.put("consumesXml", true); - } else if (consumesPlainText) { - op.bodyParam.vendorExtensions.put("consumesPlainText", true); - } else { - op.bodyParam.vendorExtensions.put("consumesJson", true); - } - - } - for (CodegenParameter param : op.bodyParams) { - processParam(param, op); - - if (paramHasXmlNamespace(param, definitions)) { - param.vendorExtensions.put("has_namespace", "true"); - } - - param.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase()); - - // Default to producing json if nothing else is specified - if (consumesXml) { - param.vendorExtensions.put("consumesXml", true); - } else if (consumesPlainText) { - param.vendorExtensions.put("consumesPlainText", true); - } else { - param.vendorExtensions.put("consumesJson", true); - } - } - - for (CodegenParameter param : op.formParams) { - processParam(param, op); - } - */ - for (CodegenParameter param : op.headerParams) { // If a header uses UUIDs, we need to import the UUID package. if (param.dataType.equals("uuid::Uuid")) { @@ -714,6 +646,77 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { return op; } + @Override + public Map postProcessOperations(Map objs) { + Map operations = (Map) objs.get("operations"); + List operationList = (List) operations.get("operation"); + + + for (CodegenOperation op : operationList) { + boolean consumesPlainText = false; + boolean consumesXml = false; + + if (op.consumes != null) { + for (Map consume : op.consumes) { + if (consume.get("mediaType") != null) { + String mediaType = consume.get("mediaType"); + + if (isMimetypeXml(mediaType)) { + additionalProperties.put("usesXml", true); + consumesXml = true; + } else if (isMimetypePlainText(mediaType)) { + consumesPlainText = true; + } else if (isMimetypeWwwFormUrlEncoded(mediaType)) { + additionalProperties.put("usesUrlEncodedForm", true); + } + } + } + } + + if (op.bodyParam != null) { + // Default to consuming json + op.bodyParam.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase()); + if (consumesXml) { + op.bodyParam.vendorExtensions.put("consumesXml", true); + } else if (consumesPlainText) { + op.bodyParam.vendorExtensions.put("consumesPlainText", true); + } else { + op.bodyParam.vendorExtensions.put("consumesJson", true); + } + + } + for (CodegenParameter param : op.bodyParams) { + processParam(param, op); + + param.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase()); + + // Default to producing json if nothing else is specified + if (consumesXml) { + param.vendorExtensions.put("consumesXml", true); + } else if (consumesPlainText) { + param.vendorExtensions.put("consumesPlainText", true); + } else { + param.vendorExtensions.put("consumesJson", true); + } + } + + for (CodegenParameter param : op.formParams) { + processParam(param, op); + } + + for (CodegenProperty header : op.responseHeaders) { + if (header.dataType.equals("uuid::Uuid")) { + additionalProperties.put("apiUsesUuid", true); + } + header.nameInCamelCase = toModelName(header.baseName); + } + + additionalProperties.put("apiHasFile", true); + } + + return objs; + } + @Override public boolean isDataTypeFile(final String dataType) { return dataType != null && dataType.equals(typeMapping.get("File").toString()); @@ -726,26 +729,22 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { Schema inner = ap.getItems(); String innerType = getTypeDeclaration(inner); StringBuilder typeDeclaration = new StringBuilder(typeMapping.get("array")).append("<"); - if (!StringUtils.isEmpty(inner.get$ref())) { - typeDeclaration.append("models::"); - } typeDeclaration.append(innerType).append(">"); return typeDeclaration.toString(); } else if (ModelUtils.isMapSchema(p)) { Schema inner = (Schema) p.getAdditionalProperties(); String innerType = getTypeDeclaration(inner); StringBuilder typeDeclaration = new StringBuilder(typeMapping.get("map")).append("<").append(typeMapping.get("string")).append(", "); - if (!StringUtils.isEmpty(inner.get$ref())) { - typeDeclaration.append("models::"); - } typeDeclaration.append(innerType).append(">"); return typeDeclaration.toString(); } else if (!StringUtils.isEmpty(p.get$ref())) { String datatype; try { datatype = p.get$ref(); - if (datatype.indexOf("#/definitions/") == 0) { - datatype = toModelName(datatype.substring("#/definitions/".length())); + + if (datatype.indexOf("#/components/schemas/") == 0) { + datatype = toModelName(datatype.substring("#/components/schemas/".length())); + datatype = "models::" + datatype; } } catch (Exception e) { LOGGER.warn("Error obtaining the datatype from schema (model):" + p + ". Datatype default to Object"); @@ -756,50 +755,41 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { } else if (p instanceof FileSchema) { return typeMapping.get("File").toString(); } + return super.getTypeDeclaration(p); } @Override public CodegenParameter fromParameter(Parameter param, Set imports) { CodegenParameter parameter = super.fromParameter(param, imports); - /* TODO need ot revise the logic below as there's no body parameter - if (param instanceof BodyParameter) { - BodyParameter bp = (BodyParameter) param; - Model model = bp.getSchema(); - if (model instanceof RefModel) { - String name = ((RefModel) model).getSimpleRef(); - name = toModelName(name); - // We need to be able to look up the model in the model definitions later. - parameter.vendorExtensions.put("uppercase_data_type", name.toUpperCase()); + if (!parameter.isString && !parameter.isNumeric && !parameter.isByteArray && + !parameter.isBinary && !parameter.isFile && !parameter.isBoolean && + !parameter.isDate && !parameter.isDateTime && !parameter.isUuid && + !parameter.isListContainer && !parameter.isMapContainer && + !languageSpecificPrimitives.contains(parameter.dataType)) { - name = "models::" + getTypeDeclaration(name); - parameter.baseType = name; - parameter.dataType = name; - - String refName = ((RefModel) model).get$ref(); - if (refName.indexOf("#/definitions/") == 0) { - refName = refName.substring("#/definitions/".length()); - } - parameter.vendorExtensions.put("refName", refName); - - } else if (model instanceof ModelImpl) { - parameter.vendorExtensions.put("refName", ((ModelImpl) model).getName()); - } + String name = "models::" + getTypeDeclaration(parameter.dataType); + parameter.dataType = name; + parameter.baseType = name; } - */ + return parameter; } @Override - public CodegenProperty fromProperty(String name, Schema p) { - CodegenProperty property = super.fromProperty(name, p); + public void postProcessParameter(CodegenParameter parameter) { + // If this parameter is not a primitive type, prefix it with "models::" + // to ensure it's namespaced correctly in the Rust code. + if (!parameter.isString && !parameter.isNumeric && !parameter.isByteArray && + !parameter.isBinary && !parameter.isFile && !parameter.isBoolean && + !parameter.isDate && !parameter.isDateTime && !parameter.isUuid && + !parameter.isListContainer && !parameter.isMapContainer && + !languageSpecificPrimitives.contains(parameter.dataType)) { - /* need to revise the logic below. Is this for alias? - if (p instanceof RefProperty) { - property.datatype = "models::" + property.datatype; + String name = "models::" + getTypeDeclaration(parameter.dataType); + parameter.dataType = name; + parameter.baseType = name; } - */ - return property; } @Override @@ -1037,6 +1027,24 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { @Override public Map postProcessModels(Map objs) { + List models = (List) objs.get("models"); + for (Object _mo : models) { + Map mo = (Map) _mo; + CodegenModel cm = (CodegenModel) mo.get("model"); + + + if (cm.dataType != null && cm.dataType.equals("object")) { + // Object isn't a sensible default. Instead, we set it to + // 'null'. This ensures that we treat this model as a struct + // with multiple parameters. + cm.dataType = null; + } else if (cm.dataType != null) { + // We need to hack about with single-parameter models to get + // them recognised correctly. + cm.isAlias = false; + cm.dataType = typeMapping.get(cm.dataType); + } + } return super.postProcessModelsEnum(objs); } @@ -1061,7 +1069,12 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { private void processParam(CodegenParameter param, CodegenOperation op) { String example = null; - if (param.isString) { + if (param.isFile) { + param.vendorExtensions.put("formatString", "{:?}"); + op.vendorExtensions.put("hasFile", true); + additionalProperties.put("apiHasFile", true); + example = "Box::new(stream::once(Ok(b\"hello\".to_vec()))) as Box + Send>"; + } else if (param.isString) { if (param.dataFormat != null && param.dataFormat.equals("byte")) { param.vendorExtensions.put("formatString", "\\\"{:?}\\\""); example = "swagger::ByteArray(\"" + ((param.example != null) ? param.example : "") + "\".to_string().into_bytes())"; @@ -1082,11 +1095,6 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { } else if (param.isListContainer) { param.vendorExtensions.put("formatString", "{:?}"); example = (param.example != null) ? param.example : "&Vec::new()"; - } else if (param.isFile) { - param.vendorExtensions.put("formatString", "{:?}"); - op.vendorExtensions.put("hasFile", true); - additionalProperties.put("apiHasFile", true); - example = "Box::new(stream::once(Ok(b\"hello\".to_vec()))) as Box + Send>"; } else { param.vendorExtensions.put("formatString", "{:?}"); if (param.example != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index ee8a1a8dfa2..78c4a20407d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -137,7 +137,7 @@ public class ModelUtils { visitOpenAPI(openAPI, (s, t) -> { if(s.get$ref() != null) { String ref = getSimpleRef(s.get$ref()); - if ("application/x-www-form-urlencoded".equalsIgnoreCase(t) || + if ("application/x-www-form-urlencoded".equalsIgnoreCase(t) || "multipart/form-data".equalsIgnoreCase(t)) { schemasUsedInFormParam.add(ref); } else { @@ -153,7 +153,7 @@ public class ModelUtils { * {@link #getUnusedSchemas(OpenAPI)}, * {@link #getSchemasUsedOnlyInFormParam(OpenAPI)}, ...) to traverse all paths of an * OpenAPI instance and call the visitor functional interface when a schema is found. - * + * * @param openAPI specification * @param visitor functional interface (can be defined as a lambda) called each time a schema is found. */ @@ -492,7 +492,7 @@ public class ModelUtils { } return schema; } - + public static Schema getSchema(OpenAPI openAPI, String name) { if (name == null) { return null; diff --git a/modules/openapi-generator/src/main/resources/Java/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/JSON.mustache index a717df178e3..4ab6cee5cb1 100644 --- a/modules/openapi-generator/src/main/resources/Java/JSON.mustache +++ b/modules/openapi-generator/src/main/resources/Java/JSON.mustache @@ -76,7 +76,11 @@ public class JSON { }) {{/parent}} ; - return fireBuilder.createGsonBuilder(); + GsonBuilder builder = fireBuilder.createGsonBuilder(); + {{#disableHtmlEscaping}} + builder.disableHtmlEscaping(); + {{/disableHtmlEscaping}} + return builder; } private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { diff --git a/modules/openapi-generator/src/main/resources/go-server/Dockerfile.mustache b/modules/openapi-generator/src/main/resources/go-server/Dockerfile.mustache new file mode 100644 index 00000000000..114243086fa --- /dev/null +++ b/modules/openapi-generator/src/main/resources/go-server/Dockerfile.mustache @@ -0,0 +1,14 @@ +FROM golang:1.10 AS build +WORKDIR /go/src +COPY {{apiPath}} ./{{apiPath}} +COPY main.go . + +ENV CGO_ENABLED=0 +RUN go get -d -v ./... + +RUN go build -a -installsuffix cgo -o {{packageName}} . + +FROM scratch AS runtime +COPY --from=build /go/src/{{packageName}} ./ +EXPOSE 8080/tcp +ENTRYPOINT ["./{{packageName}}"] diff --git a/modules/openapi-generator/src/main/resources/go-server/README.mustache b/modules/openapi-generator/src/main/resources/go-server/README.mustache index 90814cbfb04..aedb0a34134 100644 --- a/modules/openapi-generator/src/main/resources/go-server/README.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/README.mustache @@ -28,3 +28,14 @@ To run the server, follow these simple steps: go run main.go ``` +To run the server in a docker container +``` +docker build --network=host -t {{{packageName}}} . +``` + +Once image is built use +``` +docker run --rm -it {{{packageName}}} +``` + + diff --git a/modules/openapi-generator/src/main/resources/rust-server/README.mustache b/modules/openapi-generator/src/main/resources/rust-server/README.mustache index 8d0986e4c45..e65b06491c3 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/README.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/README.mustache @@ -15,7 +15,9 @@ To see how to make this your own, look here: [README]((https://openapi-generator.tech)) - API version: {{appVersion}} +{{^hideGenerationTimestamp}} - Build date: {{generatedDate}} +{{/hideGenerationTimestamp}} {{#infoUrl}} For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) {{/infoUrl}} diff --git a/modules/openapi-generator/src/main/resources/rust-server/openapi.mustache b/modules/openapi-generator/src/main/resources/rust-server/openapi.mustache index 51560926bba..34fbb53f331 100644 --- a/modules/openapi-generator/src/main/resources/rust-server/openapi.mustache +++ b/modules/openapi-generator/src/main/resources/rust-server/openapi.mustache @@ -1 +1 @@ -{{{swagger-yaml}}} \ No newline at end of file +{{{openapi-yaml}}} diff --git a/modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml new file mode 100644 index 00000000000..cf930089b97 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml @@ -0,0 +1,1454 @@ +swagger: '2.0' +info: + description: "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\" + version: 1.0.0 + title: OpenAPI Petstore + license: + name: Apache-2.0 + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' +host: petstore.swagger.io:80 +basePath: /v2 +tags: + - name: pet + description: Everything about your Pets + - name: store + description: Access to Petstore orders + - name: user + description: Operations about user +schemes: + - http +paths: + /pet: + post: + tags: + - pet + summary: Add a new pet to the store + description: '' + operationId: addPet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + put: + tags: + - pet + summary: Update an existing pet + description: '' + operationId: updatePet + consumes: + - application/json + - application/xml + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Pet object that needs to be added to the store + required: true + schema: + $ref: '#/definitions/Pet' + responses: + '400': + description: Invalid ID supplied + '404': + description: Pet not found + '405': + description: Validation exception + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + produces: + - application/xml + - application/json + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + type: array + items: + type: string + enum: + - available + - pending + - sold + default: available + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid status value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: 'Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' + operationId: findPetsByTags + produces: + - application/xml + - application/json + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + type: array + items: + type: string + collectionFormat: csv + responses: + '200': + description: successful operation + schema: + type: array + items: + $ref: '#/definitions/Pet' + '400': + description: Invalid tag value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + deprecated: true + '/pet/{petId}': + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + type: integer + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Pet' + '400': + description: Invalid ID supplied + '404': + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: '' + operationId: updatePetWithForm + consumes: + - application/x-www-form-urlencoded + produces: + - application/xml + - application/json + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + type: integer + format: int64 + - name: name + in: formData + description: Updated name of the pet + required: false + type: string + - name: status + in: formData + description: Updated status of the pet + required: false + type: string + responses: + '405': + description: Invalid input + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + delete: + tags: + - pet + summary: Deletes a pet + description: '' + operationId: deletePet + produces: + - application/xml + - application/json + parameters: + - name: api_key + in: header + required: false + type: string + - name: petId + in: path + description: Pet id to delete + required: true + type: integer + format: int64 + responses: + '400': + description: Invalid pet value + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + '/pet/{petId}/uploadImage': + post: + tags: + - pet + summary: uploads an image + description: '' + operationId: uploadFile + consumes: + - multipart/form-data + produces: + - application/json + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + type: integer + format: int64 + - name: additionalMetadata + in: formData + description: Additional data to pass to server + required: false + type: string + - name: file + in: formData + description: file to upload + required: false + type: file + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/ApiResponse' + security: + - petstore_auth: + - 'write:pets' + - 'read:pets' + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + produces: + - application/json + parameters: [] + responses: + '200': + description: successful operation + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: '' + operationId: placeOrder + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: order placed for purchasing the pet + required: true + schema: + $ref: '#/definitions/Order' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid Order + '/store/order/{order_id}': + get: + tags: + - store + summary: Find purchase order by ID + description: 'For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions' + operationId: getOrderById + produces: + - application/xml + - application/json + parameters: + - name: order_id + in: path + description: ID of pet that needs to be fetched + required: true + type: integer + maximum: 5 + minimum: 1 + format: int64 + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Order' + '400': + description: Invalid ID supplied + '404': + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + operationId: deleteOrder + produces: + - application/xml + - application/json + parameters: + - name: order_id + in: path + description: ID of the order that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid ID supplied + '404': + description: Order not found + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: Created user object + required: true + schema: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + produces: + - application/xml + - application/json + parameters: + - in: body + name: body + description: List of user object + required: true + schema: + type: array + items: + $ref: '#/definitions/User' + responses: + default: + description: successful operation + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: query + description: The user name for login + required: true + type: string + - name: password + in: query + description: The password for login in clear text + required: true + type: string + responses: + # '200': + # description: successful operation + # schema: + # type: string + # headers: + # X-Rate-Limit: + # type: integer + # format: int32 + # description: calls per hour allowed by the user + # X-Expires-After: + # type: string + # format: date-time + # description: date in UTC when token expires + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + produces: + - application/xml + - application/json + parameters: [] + responses: + default: + description: successful operation + '/user/{username}': + get: + tags: + - user + summary: Get user by user name + description: '' + operationId: getUserByName + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: 'The name that needs to be fetched. Use user1 for testing.' + required: true + type: string + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/User' + '400': + description: Invalid username supplied + '404': + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + type: string + - in: body + name: body + description: Updated user object + required: true + schema: + $ref: '#/definitions/User' + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + produces: + - application/xml + - application/json + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found + + /fake_classname_test: + patch: + tags: + - "fake_classname_tags 123#$%^" + summary: To test class name in snake case + description: To test class name in snake case + operationId: testClassname + consumes: + - application/json + produces: + - application/json + parameters: + - in: body + name: body + description: client model + required: true + schema: + $ref: '#/definitions/Client' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Client' + security: + - api_key_query: [] + /fake: + patch: + tags: + - fake + summary: To test "client" model + description: To test "client" model + operationId: testClientModel + consumes: + - application/json + produces: + - application/json + parameters: + - in: body + name: body + description: client model + required: true + schema: + $ref: '#/definitions/Client' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Client' + get: + tags: + - fake + summary: To test enum parameters + description: To test enum parameters + operationId: testEnumParameters + consumes: + - "application/x-www-form-urlencoded" + parameters: + # - name: enum_form_string_array + # type: array + # items: + # type: string + # default: '$' + # enum: + # - '>' + # - '$' + # in: formData + # description: Form parameter enum test (string array) + # - name: enum_form_string + # type: string + # default: '-efg' + # enum: + # - _abc + # - '-efg' + # - (xyz) + # in: formData + # description: Form parameter enum test (string) + - name: enum_header_string_array + type: array + items: + type: string + default: '$' + enum: + - '>' + - '$' + in: header + description: Header parameter enum test (string array) + - name: enum_header_string + type: string + default: '-efg' + enum: + - _abc + - '-efg' + - (xyz) + in: header + description: Header parameter enum test (string) + - name: enum_query_string_array + type: array + items: + type: string + default: '$' + enum: + - '>' + - '$' + in: query + description: Query parameter enum test (string array) + - name: enum_query_string + type: string + default: '-efg' + enum: + - _abc + - '-efg' + - (xyz) + in: query + description: Query parameter enum test (string) + - name: enum_query_integer + type: integer + format: int32 + enum: + - 1 + - -2 + in: query + description: Query parameter enum test (double) + - name: enum_query_double + type: number + format: double + enum: + - 1.1 + - -1.2 + in: query + description: Query parameter enum test (double) + responses: + '400': + description: Invalid request + '404': + description: Not found + post: + tags: + - fake + summary: | + Fake endpoint for testing various parameters + 假端點 + 偽のエンドポイント + 가짜 엔드 포인트 + description: | + Fake endpoint for testing various parameters + 假端點 + 偽のエンドポイント + 가짜 엔드 포인트 + operationId: testEndpointParameters + consumes: + - application/x-www-form-urlencoded + parameters: + - name: integer + type: integer + maximum: 100 + minimum: 10 + in: formData + description: None + - name: int32 + type: integer + format: int32 + maximum: 200 + minimum: 20 + in: formData + description: None + - name: int64 + type: integer + format: int64 + in: formData + description: None + - name: number + type: number + maximum: 543.2 + minimum: 32.1 + in: formData + description: None + required: true + - name: float + type: number + format: float + maximum: 987.6 + in: formData + description: None + - name: double + type: number + in: formData + format: double + maximum: 123.4 + minimum: 67.8 + required: true + description: None + - name: string + type: string + pattern: /[a-z]/i + in: formData + description: None + - name: pattern_without_delimiter + type: string + pattern: "^[A-Z].*" + in: formData + description: None + required: true + # - name: byte + # type: string + # format: byte + # in: formData + # description: None + # required: true + - name: binary + type: string + format: binary + in: formData + description: None + - name: date + type: string + format: date + in: formData + description: None + - name: dateTime + type: string + format: date-time + in: formData + description: None + - name: password + type: string + format: password + maxLength: 64 + minLength: 10 + in: formData + description: None + - name: callback + type: string + in: formData + description: None + responses: + '400': + description: Invalid username supplied + '404': + description: User not found + security: + - http_basic_test: [] + /fake/outer/number: + post: + tags: + - fake + description: Test serialization of outer number types + operationId: fakeOuterNumberSerialize + parameters: + - name: body + in: body + description: Input number as post body + schema: + $ref: '#/definitions/OuterNumber' + responses: + '200': + description: Output number + schema: + $ref: '#/definitions/OuterNumber' + /fake/outer/string: + post: + tags: + - fake + description: Test serialization of outer string types + operationId: fakeOuterStringSerialize + parameters: + - name: body + in: body + description: Input string as post body + schema: + $ref: '#/definitions/OuterString' + responses: + '200': + description: Output string + schema: + $ref: '#/definitions/OuterString' + /fake/outer/boolean: + post: + tags: + - fake + description: Test serialization of outer boolean types + operationId: fakeOuterBooleanSerialize + parameters: + - name: body + in: body + description: Input boolean as post body + schema: + $ref: '#/definitions/OuterBoolean' + responses: + '200': + description: Output boolean + schema: + $ref: '#/definitions/OuterBoolean' + /fake/outer/composite: + post: + tags: + - fake + description: Test serialization of object with outer number type + operationId: fakeOuterCompositeSerialize + parameters: + - name: body + in: body + description: Input composite as post body + schema: + $ref: '#/definitions/OuterComposite' + responses: + '200': + description: Output composite + schema: + $ref: '#/definitions/OuterComposite' + /fake/jsonFormData: + get: + tags: + - fake + summary: test json serialization of form data + description: '' + operationId: testJsonFormData + consumes: + - application/x-www-form-urlencoded + parameters: + - name: param + in: formData + description: field1 + required: true + type: string + - name: param2 + in: formData + description: field2 + required: true + type: string + responses: + '200': + description: successful operation + /fake/inline-additionalProperties: + post: + tags: + - fake + summary: test inline additionalProperties + description: '' + operationId: testInlineAdditionalProperties + consumes: + - application/json + parameters: + - name: param + in: body + description: request body + required: true + schema: + type: object + additionalProperties: + type: string + responses: + '200': + description: successful operation + /fake/body-with-query-params: + put: + tags: + - fake + operationId: testBodyWithQueryParams + parameters: + - name: body + in: body + required: true + schema: + $ref: '#/definitions/User' + - name: query + in: query + required: true + type: string + consumes: + - application/json + responses: + '200': + description: Success + /another-fake/dummy: + patch: + tags: + - "$another-fake?" + summary: To test special tags + description: To test special tags + operationId: test_special_tags + consumes: + - application/json + produces: + - application/json + parameters: + - in: body + name: body + description: client model + required: true + schema: + $ref: '#/definitions/Client' + responses: + '200': + description: successful operation + schema: + $ref: '#/definitions/Client' +securityDefinitions: + petstore_auth: + type: oauth2 + authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog' + flow: implicit + scopes: + 'write:pets': modify pets in your account + 'read:pets': read your pets + api_key: + type: apiKey + name: api_key + in: header + api_key_query: + type: apiKey + name: api_key_query + in: query + http_basic_test: + type: basic +definitions: + Order: + type: object + properties: + id: + type: integer + format: int64 + petId: + type: integer + format: int64 + quantity: + type: integer + format: int32 + shipDate: + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + type: boolean + default: false + xml: + name: Order + Category: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Category + User: + type: object + properties: + id: + type: integer + format: int64 + x-is-unique: true + username: + type: string + firstName: + type: string + lastName: + type: string + email: + type: string + password: + type: string + phone: + type: string + userStatus: + type: integer + format: int32 + description: User Status + xml: + name: User + Tag: + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + xml: + name: Tag + Pet: + type: object + required: + - name + - photoUrls + properties: + id: + type: integer + format: int64 + x-is-unique: true + category: + $ref: '#/definitions/Category' + name: + type: string + example: doggie + photoUrls: + type: array + xml: + name: photoUrl + wrapped: true + items: + type: string + tags: + type: array + xml: + name: tag + wrapped: true + items: + $ref: '#/definitions/Tag' + status: + type: string + description: pet status in the store + enum: + - available + - pending + - sold + xml: + name: Pet + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + '$special[model.name]': + properties: + '$special[property.name]': + type: integer + format: int64 + xml: + name: '$special[model.name]' + Return: + description: Model for testing reserved words + properties: + return: + type: integer + format: int32 + xml: + name: Return + Name: + description: Model for testing model name same as property name + required: + - name + properties: + name: + type: integer + format: int32 + snake_case: + readOnly: true + type: integer + format: int32 + property: + type: string + 123Number: + type: integer + readOnly: true + xml: + name: Name + 200_response: + description: Model for testing model name starting with number + properties: + name: + type: integer + format: int32 + class: + type: string + xml: + name: Name + ClassModel: + description: Model for testing model with "_class" property + properties: + _class: + type: string + Dog: + allOf: + - $ref: '#/definitions/Animal' + - type: object + properties: + breed: + type: string + Cat: + allOf: + - $ref: '#/definitions/Animal' + - type: object + properties: + declawed: + type: boolean + Animal: + type: object + discriminator: className + required: + - className + properties: + className: + type: string + color: + type: string + default: 'red' + AnimalFarm: + type: array + items: + $ref: '#/definitions/Animal' + format_test: + type: object + required: + - number + - byte + - date + - password + properties: + integer: + type: integer + maximum: 100 + minimum: 10 + int32: + type: integer + format: int32 + maximum: 200 + minimum: 20 + int64: + type: integer + format: int64 + number: + maximum: 543.2 + minimum: 32.1 + type: number + float: + type: number + format: float + maximum: 987.6 + minimum: 54.3 + double: + type: number + format: double + maximum: 123.4 + minimum: 67.8 + string: + type: string + pattern: /[a-z]/i + byte: + type: string + format: byte + # binary: + # type: string + # format: binary + date: + type: string + format: date + dateTime: + type: string + format: date-time + uuid: + type: string + format: uuid + password: + type: string + format: password + maxLength: 64 + minLength: 10 + EnumClass: + type: string + default: '-efg' + enum: + - _abc + - '-efg' + - (xyz) + Enum_Test: + type: object + required: + - enum_string_required + properties: + enum_string: + type: string + enum: + - UPPER + - lower + - '' + enum_string_required: + type: string + enum: + - UPPER + - lower + - '' + enum_integer: + type: integer + format: int32 + enum: + - 1 + - -1 + enum_number: + type: number + format: double + enum: + - 1.1 + - -1.2 + outerEnum: + $ref: '#/definitions/OuterEnum' + AdditionalPropertiesClass: + type: object + properties: + map_property: + type: object + additionalProperties: + type: string + map_of_map_property: + type: object + additionalProperties: + type: object + additionalProperties: + type: string + MixedPropertiesAndAdditionalPropertiesClass: + type: object + properties: + uuid: + type: string + format: uuid + dateTime: + type: string + format: date-time + map: + type: object + additionalProperties: + $ref: '#/definitions/Animal' + List: + type: object + properties: + 123-list: + type: string + Client: + type: object + properties: + client: + type: string + ReadOnlyFirst: + type: object + properties: + bar: + type: string + readOnly: true + baz: + type: string + hasOnlyReadOnly: + type: object + properties: + bar: + type: string + readOnly: true + foo: + type: string + readOnly: true + Capitalization: + type: object + properties: + smallCamel: + type: string + CapitalCamel: + type: string + small_Snake: + type: string + Capital_Snake: + type: string + SCA_ETH_Flow_Points: + type: string + ATT_NAME: + description: > + Name of the pet + type: string + MapTest: + type: object + properties: + map_map_of_string: + type: object + additionalProperties: + type: object + additionalProperties: + type: string + # comment out the following (map of map of enum) as many language not yet support this + #map_map_of_enum: + # type: object + # additionalProperties: + # type: object + # additionalProperties: + # type: string + # enum: + # - UPPER + # - lower + map_of_enum_string: + type: object + additionalProperties: + type: string + enum: + - UPPER + - lower + ArrayTest: + type: object + properties: + array_of_string: + type: array + items: + type: string + array_array_of_integer: + type: array + items: + type: array + items: + type: integer + format: int64 + array_array_of_model: + type: array + items: + type: array + items: + $ref: '#/definitions/ReadOnlyFirst' + # commented out the below test case for array of enum for the time being + # as not all language can handle it + #array_of_enum: + # type: array + # items: + # type: string + # enum: + # - UPPER + # - lower + NumberOnly: + type: object + properties: + JustNumber: + type: number + ArrayOfNumberOnly: + type: object + properties: + ArrayNumber: + type: array + items: + type: number + ArrayOfArrayOfNumberOnly: + type: object + properties: + ArrayArrayNumber: + type: array + items: + type: array + items: + type: number + EnumArrays: + type: object + properties: + just_symbol: + type: string + enum: + - ">=" + - "$" + array_enum: + type: array + items: + type: string + enum: + - fish + - crab + # comment out the following as 2d array of enum is not supported at the moment + #array_array_enum: + # type: array + # items: + # type: array + # items: + # type: string + # enum: + # - Cat + # - Dog + OuterEnum: + type: "string" + enum: + - "placed" + - "approved" + - "delivered" + OuterComposite: + type: object + properties: + my_number: + $ref: '#/definitions/OuterNumber' + my_string: + $ref: '#/definitions/OuterString' + my_boolean: + $ref: '#/definitions/OuterBoolean' + OuterNumber: + type: number + OuterString: + type: string + OuterBoolean: + type: boolean + x-codegen-body-parameter-name: boolean_post_body diff --git a/pom.xml b/pom.xml index 71f8ffadc74..1dd4f5b68d7 100644 --- a/pom.xml +++ b/pom.xml @@ -921,6 +921,7 @@ samples/client/petstore/typescript-angular-v4.3/npm samples/client/petstore/ruby + samples/server/petstore/rust-server diff --git a/samples/client/petstore/go/store_api_test.go b/samples/client/petstore/go/store_api_test.go new file mode 100644 index 00000000000..0a0a70291e9 --- /dev/null +++ b/samples/client/petstore/go/store_api_test.go @@ -0,0 +1,29 @@ +package main + +import ( + "testing" + "time" + + sw "./go-petstore" + "golang.org/x/net/context" +) + +func TestPlaceOrder(t *testing.T) { + newOrder := sw.Order{ + Id: 0, + PetId: 0, + Quantity: 0, + ShipDate: time.Now().UTC(), + Status: "placed", + Complete: false} + + _, r, err := client.StoreApi.PlaceOrder(context.Background(), newOrder) + + if err != nil { + t.Errorf("Error while placing order") + t.Log(err) + } + if r.StatusCode != 200 { + t.Log(r) + } +} diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/JSON.java b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/JSON.java index d9bc6e301ef..f9f55a2d382 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/JSON.java +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/src/main/java/org/openapitools/client/JSON.java @@ -64,7 +64,8 @@ public class JSON { } }) ; - return fireBuilder.createGsonBuilder(); + GsonBuilder builder = fireBuilder.createGsonBuilder(); + return builder; } private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/JSON.java b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/JSON.java index d9bc6e301ef..f9f55a2d382 100644 --- a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/JSON.java +++ b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/JSON.java @@ -64,7 +64,8 @@ public class JSON { } }) ; - return fireBuilder.createGsonBuilder(); + GsonBuilder builder = fireBuilder.createGsonBuilder(); + return builder; } private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/JSON.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/JSON.java index d9bc6e301ef..f9f55a2d382 100644 --- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/JSON.java +++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/JSON.java @@ -64,7 +64,8 @@ public class JSON { } }) ; - return fireBuilder.createGsonBuilder(); + GsonBuilder builder = fireBuilder.createGsonBuilder(); + return builder; } private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { diff --git a/samples/client/petstore/javascript-es6/.openapi-generator/VERSION b/samples/client/petstore/javascript-es6/.openapi-generator/VERSION index f9f7450d135..1c00c518154 100644 --- a/samples/client/petstore/javascript-es6/.openapi-generator/VERSION +++ b/samples/client/petstore/javascript-es6/.openapi-generator/VERSION @@ -1 +1 @@ -2.3.0-SNAPSHOT \ No newline at end of file +3.0.2-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/javascript-es6/README.md b/samples/client/petstore/javascript-es6/README.md index bbf7a369ff4..9503c4fd15a 100644 --- a/samples/client/petstore/javascript-es6/README.md +++ b/samples/client/petstore/javascript-es6/README.md @@ -1,12 +1,12 @@ -# swagger_petstore +# open_api_petstore -SwaggerPetstore - JavaScript client for swagger_petstore +OpenApiPetstore - JavaScript client for open_api_petstore This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ -This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: +This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: - API version: 1.0.0 - Package version: 1.0.0 -- Build package: io.swagger.codegen.languages.JavascriptClientCodegen +- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen ## Installation @@ -20,7 +20,7 @@ please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.co Then install it via: ```shell -npm install swagger_petstore --save +npm install open_api_petstore --save ``` #### git @@ -68,13 +68,11 @@ module: { Please follow the [installation](#installation) instruction and execute the following JS code: ```javascript -var SwaggerPetstore = require('swagger_petstore'); - -var api = new SwaggerPetstore.AnotherFakeApi() - -var body = new SwaggerPetstore.Client(); // {Client} client model +var OpenApiPetstore = require('open_api_petstore'); +var api = new OpenApiPetstore.AnotherFakeApi() +var client = new OpenApiPetstore.Client(); // {Client} client model var callback = function(error, data, response) { if (error) { console.error(error); @@ -82,7 +80,7 @@ var callback = function(error, data, response) { console.log('API called successfully. Returned data: ' + data); } }; -api.testSpecialTags(body, callback); +api.testSpecialTags(client, callback); ``` @@ -92,77 +90,75 @@ All URIs are relative to *http://petstore.swagger.io:80/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*SwaggerPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags -*SwaggerPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | -*SwaggerPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | -*SwaggerPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | -*SwaggerPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | -*SwaggerPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model -*SwaggerPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 -*SwaggerPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters -*SwaggerPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties -*SwaggerPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data -*SwaggerPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case -*SwaggerPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store -*SwaggerPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet -*SwaggerPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status -*SwaggerPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags -*SwaggerPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID -*SwaggerPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet -*SwaggerPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data -*SwaggerPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image -*SwaggerPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID -*SwaggerPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status -*SwaggerPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID -*SwaggerPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet -*SwaggerPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user -*SwaggerPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array -*SwaggerPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array -*SwaggerPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user -*SwaggerPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name -*SwaggerPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system -*SwaggerPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session -*SwaggerPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user +*OpenApiPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags +*OpenApiPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | +*OpenApiPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | +*OpenApiPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | +*OpenApiPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | +*OpenApiPetstore.FakeApi* | [**testBodyWithQueryParams**](docs/FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | +*OpenApiPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model +*OpenApiPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 +*OpenApiPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters +*OpenApiPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties +*OpenApiPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data +*OpenApiPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case +*OpenApiPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store +*OpenApiPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet +*OpenApiPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status +*OpenApiPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags +*OpenApiPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID +*OpenApiPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet +*OpenApiPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data +*OpenApiPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image +*OpenApiPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID +*OpenApiPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status +*OpenApiPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID +*OpenApiPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet +*OpenApiPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user +*OpenApiPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array +*OpenApiPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array +*OpenApiPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user +*OpenApiPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name +*OpenApiPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system +*OpenApiPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session +*OpenApiPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user ## Documentation for Models - - [SwaggerPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md) - - [SwaggerPetstore.Animal](docs/Animal.md) - - [SwaggerPetstore.AnimalFarm](docs/AnimalFarm.md) - - [SwaggerPetstore.ApiResponse](docs/ApiResponse.md) - - [SwaggerPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md) - - [SwaggerPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) - - [SwaggerPetstore.ArrayTest](docs/ArrayTest.md) - - [SwaggerPetstore.Capitalization](docs/Capitalization.md) - - [SwaggerPetstore.Category](docs/Category.md) - - [SwaggerPetstore.ClassModel](docs/ClassModel.md) - - [SwaggerPetstore.Client](docs/Client.md) - - [SwaggerPetstore.EnumArrays](docs/EnumArrays.md) - - [SwaggerPetstore.EnumClass](docs/EnumClass.md) - - [SwaggerPetstore.EnumTest](docs/EnumTest.md) - - [SwaggerPetstore.FormatTest](docs/FormatTest.md) - - [SwaggerPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md) - - [SwaggerPetstore.List](docs/List.md) - - [SwaggerPetstore.MapTest](docs/MapTest.md) - - [SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md) - - [SwaggerPetstore.Model200Response](docs/Model200Response.md) - - [SwaggerPetstore.ModelReturn](docs/ModelReturn.md) - - [SwaggerPetstore.Name](docs/Name.md) - - [SwaggerPetstore.NumberOnly](docs/NumberOnly.md) - - [SwaggerPetstore.Order](docs/Order.md) - - [SwaggerPetstore.OuterBoolean](docs/OuterBoolean.md) - - [SwaggerPetstore.OuterComposite](docs/OuterComposite.md) - - [SwaggerPetstore.OuterEnum](docs/OuterEnum.md) - - [SwaggerPetstore.OuterNumber](docs/OuterNumber.md) - - [SwaggerPetstore.OuterString](docs/OuterString.md) - - [SwaggerPetstore.Pet](docs/Pet.md) - - [SwaggerPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md) - - [SwaggerPetstore.SpecialModelName](docs/SpecialModelName.md) - - [SwaggerPetstore.Tag](docs/Tag.md) - - [SwaggerPetstore.User](docs/User.md) - - [SwaggerPetstore.Cat](docs/Cat.md) - - [SwaggerPetstore.Dog](docs/Dog.md) + - [OpenApiPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md) + - [OpenApiPetstore.Animal](docs/Animal.md) + - [OpenApiPetstore.AnimalFarm](docs/AnimalFarm.md) + - [OpenApiPetstore.ApiResponse](docs/ApiResponse.md) + - [OpenApiPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md) + - [OpenApiPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) + - [OpenApiPetstore.ArrayTest](docs/ArrayTest.md) + - [OpenApiPetstore.Capitalization](docs/Capitalization.md) + - [OpenApiPetstore.Cat](docs/Cat.md) + - [OpenApiPetstore.Category](docs/Category.md) + - [OpenApiPetstore.ClassModel](docs/ClassModel.md) + - [OpenApiPetstore.Client](docs/Client.md) + - [OpenApiPetstore.Dog](docs/Dog.md) + - [OpenApiPetstore.EnumArrays](docs/EnumArrays.md) + - [OpenApiPetstore.EnumClass](docs/EnumClass.md) + - [OpenApiPetstore.EnumTest](docs/EnumTest.md) + - [OpenApiPetstore.FormatTest](docs/FormatTest.md) + - [OpenApiPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md) + - [OpenApiPetstore.List](docs/List.md) + - [OpenApiPetstore.MapTest](docs/MapTest.md) + - [OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md) + - [OpenApiPetstore.Model200Response](docs/Model200Response.md) + - [OpenApiPetstore.ModelReturn](docs/ModelReturn.md) + - [OpenApiPetstore.Name](docs/Name.md) + - [OpenApiPetstore.NumberOnly](docs/NumberOnly.md) + - [OpenApiPetstore.Order](docs/Order.md) + - [OpenApiPetstore.OuterComposite](docs/OuterComposite.md) + - [OpenApiPetstore.OuterEnum](docs/OuterEnum.md) + - [OpenApiPetstore.Pet](docs/Pet.md) + - [OpenApiPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md) + - [OpenApiPetstore.SpecialModelName](docs/SpecialModelName.md) + - [OpenApiPetstore.Tag](docs/Tag.md) + - [OpenApiPetstore.User](docs/User.md) ## Documentation for Authorization diff --git a/samples/client/petstore/javascript-es6/docs/AdditionalPropertiesClass.md b/samples/client/petstore/javascript-es6/docs/AdditionalPropertiesClass.md index 0ea13d4bb64..7df1c7b3394 100644 --- a/samples/client/petstore/javascript-es6/docs/AdditionalPropertiesClass.md +++ b/samples/client/petstore/javascript-es6/docs/AdditionalPropertiesClass.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.AdditionalPropertiesClass +# OpenApiPetstore.AdditionalPropertiesClass ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Animal.md b/samples/client/petstore/javascript-es6/docs/Animal.md index 3ae52d9db17..7bff0167581 100644 --- a/samples/client/petstore/javascript-es6/docs/Animal.md +++ b/samples/client/petstore/javascript-es6/docs/Animal.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Animal +# OpenApiPetstore.Animal ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/AnimalFarm.md b/samples/client/petstore/javascript-es6/docs/AnimalFarm.md index b72739a44c4..ab153513ca9 100644 --- a/samples/client/petstore/javascript-es6/docs/AnimalFarm.md +++ b/samples/client/petstore/javascript-es6/docs/AnimalFarm.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.AnimalFarm +# OpenApiPetstore.AnimalFarm ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/AnotherFakeApi.md b/samples/client/petstore/javascript-es6/docs/AnotherFakeApi.md index 5617fa29d63..c70f1769bf6 100644 --- a/samples/client/petstore/javascript-es6/docs/AnotherFakeApi.md +++ b/samples/client/petstore/javascript-es6/docs/AnotherFakeApi.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.AnotherFakeApi +# OpenApiPetstore.AnotherFakeApi All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -9,7 +9,7 @@ Method | HTTP request | Description # **testSpecialTags** -> Client testSpecialTags(body) +> Client testSpecialTags(client) To test special tags @@ -17,14 +17,11 @@ To test special tags ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.AnotherFakeApi(); - -let body = new SwaggerPetstore.Client(); // Client | client model - - -apiInstance.testSpecialTags(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.AnotherFakeApi(); +let client = new OpenApiPetstore.Client(); // Client | client model +apiInstance.testSpecialTags(client, (error, data, response) => { if (error) { console.error(error); } else { @@ -37,7 +34,7 @@ apiInstance.testSpecialTags(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Client**](Client.md)| client model | + **client** | [**Client**](Client.md)| client model | ### Return type diff --git a/samples/client/petstore/javascript-es6/docs/ApiResponse.md b/samples/client/petstore/javascript-es6/docs/ApiResponse.md index 7f023aff601..e60378fcbfc 100644 --- a/samples/client/petstore/javascript-es6/docs/ApiResponse.md +++ b/samples/client/petstore/javascript-es6/docs/ApiResponse.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ApiResponse +# OpenApiPetstore.ApiResponse ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/javascript-es6/docs/ArrayOfArrayOfNumberOnly.md index 1d38c9d2ed5..7a1426ef818 100644 --- a/samples/client/petstore/javascript-es6/docs/ArrayOfArrayOfNumberOnly.md +++ b/samples/client/petstore/javascript-es6/docs/ArrayOfArrayOfNumberOnly.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ArrayOfArrayOfNumberOnly +# OpenApiPetstore.ArrayOfArrayOfNumberOnly ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/ArrayOfNumberOnly.md b/samples/client/petstore/javascript-es6/docs/ArrayOfNumberOnly.md index 07a86a3cef6..7cec2e71d4b 100644 --- a/samples/client/petstore/javascript-es6/docs/ArrayOfNumberOnly.md +++ b/samples/client/petstore/javascript-es6/docs/ArrayOfNumberOnly.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ArrayOfNumberOnly +# OpenApiPetstore.ArrayOfNumberOnly ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/ArrayTest.md b/samples/client/petstore/javascript-es6/docs/ArrayTest.md index e6048e9ea91..5828f6ee75b 100644 --- a/samples/client/petstore/javascript-es6/docs/ArrayTest.md +++ b/samples/client/petstore/javascript-es6/docs/ArrayTest.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ArrayTest +# OpenApiPetstore.ArrayTest ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Capitalization.md b/samples/client/petstore/javascript-es6/docs/Capitalization.md index c223a4ee982..abeff984c62 100644 --- a/samples/client/petstore/javascript-es6/docs/Capitalization.md +++ b/samples/client/petstore/javascript-es6/docs/Capitalization.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Capitalization +# OpenApiPetstore.Capitalization ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Cat.md b/samples/client/petstore/javascript-es6/docs/Cat.md index 8cd391bc911..6dd0f057c85 100644 --- a/samples/client/petstore/javascript-es6/docs/Cat.md +++ b/samples/client/petstore/javascript-es6/docs/Cat.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Cat +# OpenApiPetstore.Cat ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Category.md b/samples/client/petstore/javascript-es6/docs/Category.md index 02b2488a27a..e3f934442ab 100644 --- a/samples/client/petstore/javascript-es6/docs/Category.md +++ b/samples/client/petstore/javascript-es6/docs/Category.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Category +# OpenApiPetstore.Category ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/ClassModel.md b/samples/client/petstore/javascript-es6/docs/ClassModel.md index bf8343b84b3..6fe9c501a5d 100644 --- a/samples/client/petstore/javascript-es6/docs/ClassModel.md +++ b/samples/client/petstore/javascript-es6/docs/ClassModel.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ClassModel +# OpenApiPetstore.ClassModel ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Client.md b/samples/client/petstore/javascript-es6/docs/Client.md index 6ba28319684..a6c7711e74e 100644 --- a/samples/client/petstore/javascript-es6/docs/Client.md +++ b/samples/client/petstore/javascript-es6/docs/Client.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Client +# OpenApiPetstore.Client ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Dog.md b/samples/client/petstore/javascript-es6/docs/Dog.md index 9253eace011..f35663407e8 100644 --- a/samples/client/petstore/javascript-es6/docs/Dog.md +++ b/samples/client/petstore/javascript-es6/docs/Dog.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Dog +# OpenApiPetstore.Dog ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/EnumArrays.md b/samples/client/petstore/javascript-es6/docs/EnumArrays.md index 449a96fdbbd..5f624e5db48 100644 --- a/samples/client/petstore/javascript-es6/docs/EnumArrays.md +++ b/samples/client/petstore/javascript-es6/docs/EnumArrays.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.EnumArrays +# OpenApiPetstore.EnumArrays ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/EnumClass.md b/samples/client/petstore/javascript-es6/docs/EnumClass.md index 04b89362941..cef9bb57a56 100644 --- a/samples/client/petstore/javascript-es6/docs/EnumClass.md +++ b/samples/client/petstore/javascript-es6/docs/EnumClass.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.EnumClass +# OpenApiPetstore.EnumClass ## Enum diff --git a/samples/client/petstore/javascript-es6/docs/EnumTest.md b/samples/client/petstore/javascript-es6/docs/EnumTest.md index 9d85a20016d..c9e7ce86fea 100644 --- a/samples/client/petstore/javascript-es6/docs/EnumTest.md +++ b/samples/client/petstore/javascript-es6/docs/EnumTest.md @@ -1,9 +1,10 @@ -# SwaggerPetstore.EnumTest +# OpenApiPetstore.EnumTest ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **enumString** | **String** | | [optional] +**enumStringRequired** | **String** | | **enumInteger** | **Number** | | [optional] **enumNumber** | **Number** | | [optional] **outerEnum** | [**OuterEnum**](OuterEnum.md) | | [optional] @@ -22,6 +23,19 @@ Name | Type | Description | Notes + +## Enum: EnumStringRequiredEnum + + +* `UPPER` (value: `"UPPER"`) + +* `lower` (value: `"lower"`) + +* `empty` (value: `""`) + + + + ## Enum: EnumIntegerEnum diff --git a/samples/client/petstore/javascript-es6/docs/FakeApi.md b/samples/client/petstore/javascript-es6/docs/FakeApi.md index f723e93e06c..3327bfce4e6 100644 --- a/samples/client/petstore/javascript-es6/docs/FakeApi.md +++ b/samples/client/petstore/javascript-es6/docs/FakeApi.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.FakeApi +# OpenApiPetstore.FakeApi All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -8,6 +8,7 @@ Method | HTTP request | Description [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | [**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | +[**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | [**testClientModel**](FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model [**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 [**testEnumParameters**](FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters @@ -17,7 +18,7 @@ Method | HTTP request | Description # **fakeOuterBooleanSerialize** -> OuterBoolean fakeOuterBooleanSerialize(opts) +> Boolean fakeOuterBooleanSerialize(opts) @@ -25,14 +26,12 @@ Test serialization of outer boolean types ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let opts = { - 'body': new SwaggerPetstore.OuterBoolean() // OuterBoolean | Input boolean as post body +let apiInstance = new OpenApiPetstore.FakeApi(); +let opts = { + 'body': true // Boolean | Input boolean as post body }; - apiInstance.fakeOuterBooleanSerialize(opts, (error, data, response) => { if (error) { console.error(error); @@ -46,11 +45,11 @@ apiInstance.fakeOuterBooleanSerialize(opts, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**OuterBoolean**](OuterBoolean.md)| Input boolean as post body | [optional] + **body** | **Boolean**| Input boolean as post body | [optional] ### Return type -[**OuterBoolean**](OuterBoolean.md) +**Boolean** ### Authorization @@ -59,7 +58,7 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: */* # **fakeOuterCompositeSerialize** @@ -71,14 +70,12 @@ Test serialization of object with outer number type ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let opts = { - 'body': new SwaggerPetstore.OuterComposite() // OuterComposite | Input composite as post body +let apiInstance = new OpenApiPetstore.FakeApi(); +let opts = { + 'outerComposite': new OpenApiPetstore.OuterComposite() // OuterComposite | Input composite as post body }; - apiInstance.fakeOuterCompositeSerialize(opts, (error, data, response) => { if (error) { console.error(error); @@ -92,7 +89,7 @@ apiInstance.fakeOuterCompositeSerialize(opts, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] + **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] ### Return type @@ -105,11 +102,11 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: */* # **fakeOuterNumberSerialize** -> OuterNumber fakeOuterNumberSerialize(opts) +> Number fakeOuterNumberSerialize(opts) @@ -117,14 +114,12 @@ Test serialization of outer number types ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let opts = { - 'body': new SwaggerPetstore.OuterNumber() // OuterNumber | Input number as post body +let apiInstance = new OpenApiPetstore.FakeApi(); +let opts = { + 'body': 3.4 // Number | Input number as post body }; - apiInstance.fakeOuterNumberSerialize(opts, (error, data, response) => { if (error) { console.error(error); @@ -138,11 +133,11 @@ apiInstance.fakeOuterNumberSerialize(opts, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**OuterNumber**](OuterNumber.md)| Input number as post body | [optional] + **body** | **Number**| Input number as post body | [optional] ### Return type -[**OuterNumber**](OuterNumber.md) +**Number** ### Authorization @@ -151,11 +146,11 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: */* # **fakeOuterStringSerialize** -> OuterString fakeOuterStringSerialize(opts) +> String fakeOuterStringSerialize(opts) @@ -163,14 +158,12 @@ Test serialization of outer string types ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let opts = { - 'body': new SwaggerPetstore.OuterString() // OuterString | Input string as post body +let apiInstance = new OpenApiPetstore.FakeApi(); +let opts = { + 'body': "body_example" // String | Input string as post body }; - apiInstance.fakeOuterStringSerialize(opts, (error, data, response) => { if (error) { console.error(error); @@ -184,11 +177,11 @@ apiInstance.fakeOuterStringSerialize(opts, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**OuterString**](OuterString.md)| Input string as post body | [optional] + **body** | **String**| Input string as post body | [optional] ### Return type -[**OuterString**](OuterString.md) +**String** ### Authorization @@ -197,11 +190,53 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined + - **Accept**: */* + + +# **testBodyWithQueryParams** +> testBodyWithQueryParams(query, user) + + + +### Example +```javascript +import OpenApiPetstore from 'open_api_petstore'; + +let apiInstance = new OpenApiPetstore.FakeApi(); +let query = "query_example"; // String | +let user = new OpenApiPetstore.User(); // User | +apiInstance.testBodyWithQueryParams(query, user, (error, data, response) => { + if (error) { + console.error(error); + } else { + console.log('API called successfully.'); + } +}); +``` + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **query** | **String**| | + **user** | [**User**](User.md)| | + +### Return type + +null (empty response body) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json - **Accept**: Not defined # **testClientModel** -> Client testClientModel(body) +> Client testClientModel(client) To test \"client\" model @@ -209,14 +244,11 @@ To test \"client\" model ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let body = new SwaggerPetstore.Client(); // Client | client model - - -apiInstance.testClientModel(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.FakeApi(); +let client = new OpenApiPetstore.Client(); // Client | client model +apiInstance.testClientModel(client, (error, data, response) => { if (error) { console.error(error); } else { @@ -229,7 +261,7 @@ apiInstance.testClientModel(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Client**](Client.md)| client model | + **client** | [**Client**](Client.md)| client model | ### Return type @@ -254,37 +286,31 @@ Fake endpoint for testing various parameters 假端點 偽のエンドポイン ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure HTTP basic authorization: http_basic_test let http_basic_test = defaultClient.authentications['http_basic_test']; http_basic_test.username = 'YOUR USERNAME'; http_basic_test.password = 'YOUR PASSWORD'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let _number = 8.14; // Number | None - -let _double = 1.2; // Number | None - +let apiInstance = new OpenApiPetstore.FakeApi(); +let _number = 3.4; // Number | None +let _double = 3.4; // Number | None let patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None - -let _byte = B; // Blob | None - -let opts = { +let _byte = null; // Blob | None +let opts = { 'integer': 56, // Number | None 'int32': 56, // Number | None 'int64': 789, // Number | None '_float': 3.4, // Number | None '_string': "_string_example", // String | None - 'binary': B, // Blob | None + 'binary': "/path/to/file", // File | None '_date': new Date("2013-10-20"), // Date | None 'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None 'password': "password_example", // String | None 'callback': "callback_example" // String | None }; - apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts, (error, data, response) => { if (error) { console.error(error); @@ -307,7 +333,7 @@ Name | Type | Description | Notes **int64** | **Number**| None | [optional] **_float** | **Number**| None | [optional] **_string** | **String**| None | [optional] - **binary** | **Blob**| None | [optional] + **binary** | **File**| None | [optional] **_date** | **Date**| None | [optional] **dateTime** | **Date**| None | [optional] **password** | **String**| None | [optional] @@ -323,8 +349,8 @@ null (empty response body) ### HTTP request headers - - **Content-Type**: application/xml; charset=utf-8, application/json; charset=utf-8 - - **Accept**: application/xml; charset=utf-8, application/json; charset=utf-8 + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined # **testEnumParameters** @@ -336,21 +362,19 @@ To test enum parameters ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let opts = { - 'enumFormStringArray': ["enumFormStringArray_example"], // [String] | Form parameter enum test (string array) - 'enumFormString': "-efg", // String | Form parameter enum test (string) - 'enumHeaderStringArray': ["enumHeaderStringArray_example"], // [String] | Header parameter enum test (string array) - 'enumHeaderString': "-efg", // String | Header parameter enum test (string) - 'enumQueryStringArray': ["enumQueryStringArray_example"], // [String] | Query parameter enum test (string array) - 'enumQueryString': "-efg", // String | Query parameter enum test (string) +let apiInstance = new OpenApiPetstore.FakeApi(); +let opts = { + 'enumHeaderStringArray': ["'$'"], // [String] | Header parameter enum test (string array) + 'enumHeaderString': "'-efg'", // String | Header parameter enum test (string) + 'enumQueryStringArray': ["'$'"], // [String] | Query parameter enum test (string array) + 'enumQueryString': "'-efg'", // String | Query parameter enum test (string) 'enumQueryInteger': 56, // Number | Query parameter enum test (double) - 'enumQueryDouble': 1.2 // Number | Query parameter enum test (double) + 'enumQueryDouble': 3.4, // Number | Query parameter enum test (double) + 'enumFormStringArray': "'$'", // [String] | Form parameter enum test (string array) + 'enumFormString': "'-efg'" // String | Form parameter enum test (string) }; - apiInstance.testEnumParameters(opts, (error, data, response) => { if (error) { console.error(error); @@ -364,14 +388,14 @@ apiInstance.testEnumParameters(opts, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] - **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to -efg] **enumHeaderStringArray** | [**[String]**](String.md)| Header parameter enum test (string array) | [optional] - **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to -efg] + **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to '-efg'] **enumQueryStringArray** | [**[String]**](String.md)| Query parameter enum test (string array) | [optional] - **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to -efg] + **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to '-efg'] **enumQueryInteger** | **Number**| Query parameter enum test (double) | [optional] **enumQueryDouble** | **Number**| Query parameter enum test (double) | [optional] + **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] [default to '$'] + **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to '-efg'] ### Return type @@ -383,27 +407,22 @@ No authorization required ### HTTP request headers - - **Content-Type**: */* - - **Accept**: */* + - **Content-Type**: application/x-www-form-urlencoded + - **Accept**: Not defined # **testInlineAdditionalProperties** -> testInlineAdditionalProperties(param) +> testInlineAdditionalProperties(requestBody) test inline additionalProperties - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.FakeApi(); - -let param = null; // Object | request body - - -apiInstance.testInlineAdditionalProperties(param, (error, data, response) => { +let apiInstance = new OpenApiPetstore.FakeApi(); +let requestBody = {key: "inner_example"}; // {String: String} | request body +apiInstance.testInlineAdditionalProperties(requestBody, (error, data, response) => { if (error) { console.error(error); } else { @@ -416,7 +435,7 @@ apiInstance.testInlineAdditionalProperties(param, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **param** | **Object**| request body | + **requestBody** | [**{String: String}**](String.md)| request body | ### Return type @@ -437,19 +456,13 @@ No authorization required test json serialization of form data - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.FakeApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.FakeApi(); let param = "param_example"; // String | field1 - let param2 = "param2_example"; // String | field2 - - apiInstance.testJsonFormData(param, param2, (error, data, response) => { if (error) { console.error(error); @@ -476,6 +489,6 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json + - **Content-Type**: application/x-www-form-urlencoded - **Accept**: Not defined diff --git a/samples/client/petstore/javascript-es6/docs/FakeClassnameTags123Api.md b/samples/client/petstore/javascript-es6/docs/FakeClassnameTags123Api.md index 9b2c6dcd418..7414f66e70c 100644 --- a/samples/client/petstore/javascript-es6/docs/FakeClassnameTags123Api.md +++ b/samples/client/petstore/javascript-es6/docs/FakeClassnameTags123Api.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.FakeClassnameTags123Api +# OpenApiPetstore.FakeClassnameTags123Api All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -9,14 +9,16 @@ Method | HTTP request | Description # **testClassname** -> Client testClassname(body) +> Client testClassname(client) + +To test class name in snake case To test class name in snake case ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure API key authorization: api_key_query let api_key_query = defaultClient.authentications['api_key_query']; @@ -24,12 +26,9 @@ api_key_query.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key_query.apiKeyPrefix = 'Token'; -let apiInstance = new SwaggerPetstore.FakeClassnameTags123Api(); - -let body = new SwaggerPetstore.Client(); // Client | client model - - -apiInstance.testClassname(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.FakeClassnameTags123Api(); +let client = new OpenApiPetstore.Client(); // Client | client model +apiInstance.testClassname(client, (error, data, response) => { if (error) { console.error(error); } else { @@ -42,7 +41,7 @@ apiInstance.testClassname(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Client**](Client.md)| client model | + **client** | [**Client**](Client.md)| client model | ### Return type diff --git a/samples/client/petstore/javascript-es6/docs/FormatTest.md b/samples/client/petstore/javascript-es6/docs/FormatTest.md index cb5b11416fa..0f4a8405449 100644 --- a/samples/client/petstore/javascript-es6/docs/FormatTest.md +++ b/samples/client/petstore/javascript-es6/docs/FormatTest.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.FormatTest +# OpenApiPetstore.FormatTest ## Properties Name | Type | Description | Notes @@ -11,7 +11,7 @@ Name | Type | Description | Notes **_double** | **Number** | | [optional] **_string** | **String** | | [optional] **_byte** | **Blob** | | -**binary** | **Blob** | | [optional] +**binary** | **File** | | [optional] **_date** | **Date** | | **dateTime** | **Date** | | [optional] **uuid** | **String** | | [optional] diff --git a/samples/client/petstore/javascript-es6/docs/HasOnlyReadOnly.md b/samples/client/petstore/javascript-es6/docs/HasOnlyReadOnly.md index b9b975fced0..abc4ce62184 100644 --- a/samples/client/petstore/javascript-es6/docs/HasOnlyReadOnly.md +++ b/samples/client/petstore/javascript-es6/docs/HasOnlyReadOnly.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.HasOnlyReadOnly +# OpenApiPetstore.HasOnlyReadOnly ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/List.md b/samples/client/petstore/javascript-es6/docs/List.md index 12166562e89..3a9555e34e0 100644 --- a/samples/client/petstore/javascript-es6/docs/List.md +++ b/samples/client/petstore/javascript-es6/docs/List.md @@ -1,8 +1,8 @@ -# SwaggerPetstore.List +# OpenApiPetstore.List ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**_123List** | **String** | | [optional] +**_123list** | **String** | | [optional] diff --git a/samples/client/petstore/javascript-es6/docs/MapTest.md b/samples/client/petstore/javascript-es6/docs/MapTest.md index 8550252a3f1..4a128da00fd 100644 --- a/samples/client/petstore/javascript-es6/docs/MapTest.md +++ b/samples/client/petstore/javascript-es6/docs/MapTest.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.MapTest +# OpenApiPetstore.MapTest ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/javascript-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md index 31bf8b314ca..051f771930e 100644 --- a/samples/client/petstore/javascript-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md +++ b/samples/client/petstore/javascript-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass +# OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Model200Response.md b/samples/client/petstore/javascript-es6/docs/Model200Response.md index f18f963c96d..0a0d02cc32e 100644 --- a/samples/client/petstore/javascript-es6/docs/Model200Response.md +++ b/samples/client/petstore/javascript-es6/docs/Model200Response.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Model200Response +# OpenApiPetstore.Model200Response ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/ModelReturn.md b/samples/client/petstore/javascript-es6/docs/ModelReturn.md index b602b39b0c5..9ce6e203878 100644 --- a/samples/client/petstore/javascript-es6/docs/ModelReturn.md +++ b/samples/client/petstore/javascript-es6/docs/ModelReturn.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ModelReturn +# OpenApiPetstore.ModelReturn ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Name.md b/samples/client/petstore/javascript-es6/docs/Name.md index 51dad9ca578..8dfcc460361 100644 --- a/samples/client/petstore/javascript-es6/docs/Name.md +++ b/samples/client/petstore/javascript-es6/docs/Name.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Name +# OpenApiPetstore.Name ## Properties Name | Type | Description | Notes @@ -6,6 +6,6 @@ Name | Type | Description | Notes **name** | **Number** | | **snakeCase** | **Number** | | [optional] **property** | **String** | | [optional] -**_123Number** | **Number** | | [optional] +**_123number** | **Number** | | [optional] diff --git a/samples/client/petstore/javascript-es6/docs/NumberOnly.md b/samples/client/petstore/javascript-es6/docs/NumberOnly.md index f7bf0abd425..cf84674ed4e 100644 --- a/samples/client/petstore/javascript-es6/docs/NumberOnly.md +++ b/samples/client/petstore/javascript-es6/docs/NumberOnly.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.NumberOnly +# OpenApiPetstore.NumberOnly ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/Order.md b/samples/client/petstore/javascript-es6/docs/Order.md index 6dc0b19cd25..987992caa70 100644 --- a/samples/client/petstore/javascript-es6/docs/Order.md +++ b/samples/client/petstore/javascript-es6/docs/Order.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Order +# OpenApiPetstore.Order ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/OuterComposite.md b/samples/client/petstore/javascript-es6/docs/OuterComposite.md index e4cb57f35af..c49b32ff329 100644 --- a/samples/client/petstore/javascript-es6/docs/OuterComposite.md +++ b/samples/client/petstore/javascript-es6/docs/OuterComposite.md @@ -1,10 +1,10 @@ -# SwaggerPetstore.OuterComposite +# OpenApiPetstore.OuterComposite ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**myNumber** | [**OuterNumber**](OuterNumber.md) | | [optional] -**myString** | [**OuterString**](OuterString.md) | | [optional] -**myBoolean** | [**OuterBoolean**](OuterBoolean.md) | | [optional] +**myNumber** | **Number** | | [optional] +**myString** | **String** | | [optional] +**myBoolean** | **Boolean** | | [optional] diff --git a/samples/client/petstore/javascript-es6/docs/OuterEnum.md b/samples/client/petstore/javascript-es6/docs/OuterEnum.md index 4caf04ae09d..445d3f4074c 100644 --- a/samples/client/petstore/javascript-es6/docs/OuterEnum.md +++ b/samples/client/petstore/javascript-es6/docs/OuterEnum.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.OuterEnum +# OpenApiPetstore.OuterEnum ## Enum diff --git a/samples/client/petstore/javascript-es6/docs/Pet.md b/samples/client/petstore/javascript-es6/docs/Pet.md index cae89de06d4..e91ae688aad 100644 --- a/samples/client/petstore/javascript-es6/docs/Pet.md +++ b/samples/client/petstore/javascript-es6/docs/Pet.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Pet +# OpenApiPetstore.Pet ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/PetApi.md b/samples/client/petstore/javascript-es6/docs/PetApi.md index 9901993bf12..324ecfbe867 100644 --- a/samples/client/petstore/javascript-es6/docs/PetApi.md +++ b/samples/client/petstore/javascript-es6/docs/PetApi.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.PetApi +# OpenApiPetstore.PetApi All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -16,27 +16,22 @@ Method | HTTP request | Description # **addPet** -> addPet(body) +> addPet(pet) Add a new pet to the store - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - -let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store - - -apiInstance.addPet(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.PetApi(); +let pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store +apiInstance.addPet(pet, (error, data, response) => { if (error) { console.error(error); } else { @@ -49,7 +44,7 @@ apiInstance.addPet(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | ### Return type @@ -62,7 +57,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: application/json, application/xml - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **deletePet** @@ -70,25 +65,20 @@ null (empty response body) Deletes a pet - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - +let apiInstance = new OpenApiPetstore.PetApi(); let petId = 789; // Number | Pet id to delete - -let opts = { +let opts = { 'apiKey': "apiKey_example" // String | }; - apiInstance.deletePet(petId, opts, (error, data, response) => { if (error) { console.error(error); @@ -116,7 +106,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **findPetsByStatus** @@ -128,18 +118,15 @@ Multiple status values can be provided with comma separated strings ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - -let status = ["status_example"]; // [String] | Status values that need to be considered for filter - - +let apiInstance = new OpenApiPetstore.PetApi(); +let status = ["'available'"]; // [String] | Status values that need to be considered for filter apiInstance.findPetsByStatus(status, (error, data, response) => { if (error) { console.error(error); @@ -178,18 +165,15 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - -let tags = ["tags_example"]; // [String] | Tags to filter by - - +let apiInstance = new OpenApiPetstore.PetApi(); +let tags = ["inner_example"]; // [String] | Tags to filter by apiInstance.findPetsByTags(tags, (error, data, response) => { if (error) { console.error(error); @@ -228,8 +212,8 @@ Returns a single pet ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure API key authorization: api_key let api_key = defaultClient.authentications['api_key']; @@ -237,11 +221,8 @@ api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -let apiInstance = new SwaggerPetstore.PetApi(); - +let apiInstance = new OpenApiPetstore.PetApi(); let petId = 789; // Number | ID of pet to return - - apiInstance.getPetById(petId, (error, data, response) => { if (error) { console.error(error); @@ -272,27 +253,22 @@ Name | Type | Description | Notes # **updatePet** -> updatePet(body) +> updatePet(pet) Update an existing pet - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - -let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store - - -apiInstance.updatePet(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.PetApi(); +let pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store +apiInstance.updatePet(pet, (error, data, response) => { if (error) { console.error(error); } else { @@ -305,7 +281,7 @@ apiInstance.updatePet(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | + **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | ### Return type @@ -318,7 +294,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: application/json, application/xml - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **updatePetWithForm** @@ -326,26 +302,21 @@ null (empty response body) Updates a pet in the store with form data - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - +let apiInstance = new OpenApiPetstore.PetApi(); let petId = 789; // Number | ID of pet that needs to be updated - -let opts = { +let opts = { 'name': "name_example", // String | Updated name of the pet 'status': "status_example" // String | Updated status of the pet }; - apiInstance.updatePetWithForm(petId, opts, (error, data, response) => { if (error) { console.error(error); @@ -374,7 +345,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: application/x-www-form-urlencoded - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **uploadFile** @@ -382,26 +353,21 @@ null (empty response body) uploads an image - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure OAuth2 access token for authorization: petstore_auth let petstore_auth = defaultClient.authentications['petstore_auth']; petstore_auth.accessToken = 'YOUR ACCESS TOKEN'; -let apiInstance = new SwaggerPetstore.PetApi(); - +let apiInstance = new OpenApiPetstore.PetApi(); let petId = 789; // Number | ID of pet to update - -let opts = { +let opts = { 'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server - 'file': "/path/to/file.txt" // File | file to upload + 'file': "/path/to/file" // File | file to upload }; - apiInstance.uploadFile(petId, opts, (error, data, response) => { if (error) { console.error(error); diff --git a/samples/client/petstore/javascript-es6/docs/ReadOnlyFirst.md b/samples/client/petstore/javascript-es6/docs/ReadOnlyFirst.md index 5a16f8acce0..671280fba33 100644 --- a/samples/client/petstore/javascript-es6/docs/ReadOnlyFirst.md +++ b/samples/client/petstore/javascript-es6/docs/ReadOnlyFirst.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.ReadOnlyFirst +# OpenApiPetstore.ReadOnlyFirst ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/SpecialModelName.md b/samples/client/petstore/javascript-es6/docs/SpecialModelName.md index a204af143a5..6039f53de36 100644 --- a/samples/client/petstore/javascript-es6/docs/SpecialModelName.md +++ b/samples/client/petstore/javascript-es6/docs/SpecialModelName.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.SpecialModelName +# OpenApiPetstore.SpecialModelName ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/StoreApi.md b/samples/client/petstore/javascript-es6/docs/StoreApi.md index 2581dc0b7d3..0f099a740da 100644 --- a/samples/client/petstore/javascript-es6/docs/StoreApi.md +++ b/samples/client/petstore/javascript-es6/docs/StoreApi.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.StoreApi +# OpenApiPetstore.StoreApi All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -20,13 +20,10 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.StoreApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.StoreApi(); let orderId = "orderId_example"; // String | ID of the order that needs to be deleted - - apiInstance.deleteOrder(orderId, (error, data, response) => { if (error) { console.error(error); @@ -53,11 +50,11 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **getInventory** -> {'String': 'Number'} getInventory() +> {String: Number} getInventory() Returns pet inventories by status @@ -65,8 +62,8 @@ Returns a map of status codes to quantities ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; -let defaultClient = SwaggerPetstore.ApiClient.instance; +import OpenApiPetstore from 'open_api_petstore'; +let defaultClient = OpenApiPetstore.ApiClient.instance; // Configure API key authorization: api_key let api_key = defaultClient.authentications['api_key']; @@ -74,8 +71,7 @@ api_key.apiKey = 'YOUR API KEY'; // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) //api_key.apiKeyPrefix = 'Token'; -let apiInstance = new SwaggerPetstore.StoreApi(); - +let apiInstance = new OpenApiPetstore.StoreApi(); apiInstance.getInventory((error, data, response) => { if (error) { console.error(error); @@ -90,7 +86,7 @@ This endpoint does not need any parameter. ### Return type -**{'String': 'Number'}** +**{String: Number}** ### Authorization @@ -111,13 +107,10 @@ For valid response try integer IDs with value <= 5 or > 10. Other val ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.StoreApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.StoreApi(); let orderId = 789; // Number | ID of pet that needs to be fetched - - apiInstance.getOrderById(orderId, (error, data, response) => { if (error) { console.error(error); @@ -148,22 +141,17 @@ No authorization required # **placeOrder** -> Order placeOrder(body) +> Order placeOrder(order) Place an order for a pet - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.StoreApi(); - -let body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet - - -apiInstance.placeOrder(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.StoreApi(); +let order = new OpenApiPetstore.Order(); // Order | order placed for purchasing the pet +apiInstance.placeOrder(order, (error, data, response) => { if (error) { console.error(error); } else { @@ -176,7 +164,7 @@ apiInstance.placeOrder(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**Order**](Order.md)| order placed for purchasing the pet | + **order** | [**Order**](Order.md)| order placed for purchasing the pet | ### Return type diff --git a/samples/client/petstore/javascript-es6/docs/Tag.md b/samples/client/petstore/javascript-es6/docs/Tag.md index c0277cae8ff..a53941e80e0 100644 --- a/samples/client/petstore/javascript-es6/docs/Tag.md +++ b/samples/client/petstore/javascript-es6/docs/Tag.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.Tag +# OpenApiPetstore.Tag ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/User.md b/samples/client/petstore/javascript-es6/docs/User.md index 2cac604cfa0..2e86dd378bf 100644 --- a/samples/client/petstore/javascript-es6/docs/User.md +++ b/samples/client/petstore/javascript-es6/docs/User.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.User +# OpenApiPetstore.User ## Properties Name | Type | Description | Notes diff --git a/samples/client/petstore/javascript-es6/docs/UserApi.md b/samples/client/petstore/javascript-es6/docs/UserApi.md index d77e8413fd3..14feafae45f 100644 --- a/samples/client/petstore/javascript-es6/docs/UserApi.md +++ b/samples/client/petstore/javascript-es6/docs/UserApi.md @@ -1,4 +1,4 @@ -# SwaggerPetstore.UserApi +# OpenApiPetstore.UserApi All URIs are relative to *http://petstore.swagger.io:80/v2* @@ -16,7 +16,7 @@ Method | HTTP request | Description # **createUser** -> createUser(body) +> createUser(user) Create user @@ -24,14 +24,11 @@ This can only be done by the logged in user. ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.UserApi(); - -let body = new SwaggerPetstore.User(); // User | Created user object - - -apiInstance.createUser(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.UserApi(); +let user = new OpenApiPetstore.User(); // User | Created user object +apiInstance.createUser(user, (error, data, response) => { if (error) { console.error(error); } else { @@ -44,7 +41,7 @@ apiInstance.createUser(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**User**](User.md)| Created user object | + **user** | [**User**](User.md)| Created user object | ### Return type @@ -57,26 +54,21 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **createUsersWithArrayInput** -> createUsersWithArrayInput(body) +> createUsersWithArrayInput(user) Creates list of users with given input array - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.UserApi(); - -let body = [new SwaggerPetstore.User()]; // [User] | List of user object - - -apiInstance.createUsersWithArrayInput(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.UserApi(); +let user = [new OpenApiPetstore.User()]; // [User] | List of user object +apiInstance.createUsersWithArrayInput(user, (error, data, response) => { if (error) { console.error(error); } else { @@ -89,7 +81,7 @@ apiInstance.createUsersWithArrayInput(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**[User]**](User.md)| List of user object | + **user** | [**[User]**](Array.md)| List of user object | ### Return type @@ -102,26 +94,21 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **createUsersWithListInput** -> createUsersWithListInput(body) +> createUsersWithListInput(user) Creates list of users with given input array - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; +import OpenApiPetstore from 'open_api_petstore'; -let apiInstance = new SwaggerPetstore.UserApi(); - -let body = [new SwaggerPetstore.User()]; // [User] | List of user object - - -apiInstance.createUsersWithListInput(body, (error, data, response) => { +let apiInstance = new OpenApiPetstore.UserApi(); +let user = [new OpenApiPetstore.User()]; // [User] | List of user object +apiInstance.createUsersWithListInput(user, (error, data, response) => { if (error) { console.error(error); } else { @@ -134,7 +121,7 @@ apiInstance.createUsersWithListInput(body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **body** | [**[User]**](User.md)| List of user object | + **user** | [**[User]**](Array.md)| List of user object | ### Return type @@ -147,7 +134,7 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **deleteUser** @@ -159,13 +146,10 @@ This can only be done by the logged in user. ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.UserApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.UserApi(); let username = "username_example"; // String | The name that needs to be deleted - - apiInstance.deleteUser(username, (error, data, response) => { if (error) { console.error(error); @@ -192,7 +176,7 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **getUserByName** @@ -200,17 +184,12 @@ No authorization required Get user by user name - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.UserApi(); - -let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. - +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.UserApi(); +let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. apiInstance.getUserByName(username, (error, data, response) => { if (error) { console.error(error); @@ -224,7 +203,7 @@ apiInstance.getUserByName(username, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **username** | **String**| The name that needs to be fetched. Use user1 for testing. | + **username** | **String**| The name that needs to be fetched. Use user1 for testing. | ### Return type @@ -241,23 +220,17 @@ No authorization required # **loginUser** -> 'String' loginUser(username, password) +> String loginUser(username, password) Logs user into the system - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.UserApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.UserApi(); let username = "username_example"; // String | The user name for login - let password = "password_example"; // String | The password for login in clear text - - apiInstance.loginUser(username, password, (error, data, response) => { if (error) { console.error(error); @@ -276,7 +249,7 @@ Name | Type | Description | Notes ### Return type -**'String'** +**String** ### Authorization @@ -293,14 +266,11 @@ No authorization required Logs out current logged in user session - - ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.UserApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.UserApi(); apiInstance.logoutUser((error, data, response) => { if (error) { console.error(error); @@ -324,11 +294,11 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined # **updateUser** -> updateUser(username, body) +> updateUser(username, user) Updated user @@ -336,16 +306,12 @@ This can only be done by the logged in user. ### Example ```javascript -import SwaggerPetstore from 'swagger_petstore'; - -let apiInstance = new SwaggerPetstore.UserApi(); +import OpenApiPetstore from 'open_api_petstore'; +let apiInstance = new OpenApiPetstore.UserApi(); let username = "username_example"; // String | name that need to be deleted - -let body = new SwaggerPetstore.User(); // User | Updated user object - - -apiInstance.updateUser(username, body, (error, data, response) => { +let user = new OpenApiPetstore.User(); // User | Updated user object +apiInstance.updateUser(username, user, (error, data, response) => { if (error) { console.error(error); } else { @@ -359,7 +325,7 @@ apiInstance.updateUser(username, body, (error, data, response) => { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **username** | **String**| name that need to be deleted | - **body** | [**User**](User.md)| Updated user object | + **user** | [**User**](User.md)| Updated user object | ### Return type @@ -372,5 +338,5 @@ No authorization required ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/xml, application/json + - **Accept**: Not defined diff --git a/samples/client/petstore/javascript-es6/git_push.sh b/samples/client/petstore/javascript-es6/git_push.sh index 0d041ad0ba4..04dd5df38e8 100644 --- a/samples/client/petstore/javascript-es6/git_push.sh +++ b/samples/client/petstore/javascript-es6/git_push.sh @@ -1,7 +1,7 @@ #!/bin/sh # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ # -# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" +# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" git_user_id=$1 git_repo_id=$2 diff --git a/samples/client/petstore/javascript-es6/package.json b/samples/client/petstore/javascript-es6/package.json index afb99e8a97a..df2fea63d60 100644 --- a/samples/client/petstore/javascript-es6/package.json +++ b/samples/client/petstore/javascript-es6/package.json @@ -1,5 +1,5 @@ { - "name": "swagger_petstore", + "name": "open_api_petstore", "version": "1.0.0", "description": "This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__", "license": "Apache-2.0", diff --git a/samples/client/petstore/javascript-es6/src/ApiClient.js b/samples/client/petstore/javascript-es6/src/ApiClient.js index 11497febbe9..50a32ae9d6e 100644 --- a/samples/client/petstore/javascript-es6/src/ApiClient.js +++ b/samples/client/petstore/javascript-es6/src/ApiClient.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -490,7 +490,7 @@ export default class ApiClient { * @returns {Date} The parsed date object. */ static parseDate(str) { - return new Date(str.replace(/T/i, ' ')); + return new Date(str); } /** diff --git a/samples/client/petstore/javascript-es6/src/api/AnotherFakeApi.js b/samples/client/petstore/javascript-es6/src/api/AnotherFakeApi.js index ed170379f3b..601a54725e3 100644 --- a/samples/client/petstore/javascript-es6/src/api/AnotherFakeApi.js +++ b/samples/client/petstore/javascript-es6/src/api/AnotherFakeApi.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -45,16 +45,16 @@ export default class AnotherFakeApi { /** * To test special tags * To test special tags - * @param {module:model/Client} body client model + * @param {module:model/Client} client client model * @param {module:api/AnotherFakeApi~testSpecialTagsCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Client} */ - testSpecialTags(body, callback) { - let postBody = body; + testSpecialTags(client, callback) { + let postBody = client; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling testSpecialTags"); + // verify the required parameter 'client' is set + if (client === undefined || client === null) { + throw new Error("Missing the required parameter 'client' when calling testSpecialTags"); } diff --git a/samples/client/petstore/javascript-es6/src/api/FakeApi.js b/samples/client/petstore/javascript-es6/src/api/FakeApi.js index 1a5f16e94bc..a05dd72606c 100644 --- a/samples/client/petstore/javascript-es6/src/api/FakeApi.js +++ b/samples/client/petstore/javascript-es6/src/api/FakeApi.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -14,10 +14,8 @@ import ApiClient from "../ApiClient"; import Client from '../model/Client'; -import OuterBoolean from '../model/OuterBoolean'; import OuterComposite from '../model/OuterComposite'; -import OuterNumber from '../model/OuterNumber'; -import OuterString from '../model/OuterString'; +import User from '../model/User'; /** * Fake service. @@ -42,16 +40,16 @@ export default class FakeApi { * Callback function to receive the result of the fakeOuterBooleanSerialize operation. * @callback module:api/FakeApi~fakeOuterBooleanSerializeCallback * @param {String} error Error message, if any. - * @param {module:model/OuterBoolean} data The data returned by the service call. + * @param {Boolean} data The data returned by the service call. * @param {String} response The complete HTTP response. */ /** * Test serialization of outer boolean types * @param {Object} opts Optional parameters - * @param {module:model/OuterBoolean} opts.body Input boolean as post body + * @param {Boolean} opts.body Input boolean as post body * @param {module:api/FakeApi~fakeOuterBooleanSerializeCallback} callback The callback function, accepting three arguments: error, data, response - * data is of type: {@link module:model/OuterBoolean} + * data is of type: {@link Boolean} */ fakeOuterBooleanSerialize(opts, callback) { opts = opts || {}; @@ -69,8 +67,8 @@ export default class FakeApi { let authNames = []; let contentTypes = []; - let accepts = []; - let returnType = OuterBoolean; + let accepts = ['*/*']; + let returnType = Boolean; return this.apiClient.callApi( '/fake/outer/boolean', 'POST', @@ -90,13 +88,13 @@ export default class FakeApi { /** * Test serialization of object with outer number type * @param {Object} opts Optional parameters - * @param {module:model/OuterComposite} opts.body Input composite as post body + * @param {module:model/OuterComposite} opts.outerComposite Input composite as post body * @param {module:api/FakeApi~fakeOuterCompositeSerializeCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/OuterComposite} */ fakeOuterCompositeSerialize(opts, callback) { opts = opts || {}; - let postBody = opts['body']; + let postBody = opts['outerComposite']; let pathParams = { @@ -110,7 +108,7 @@ export default class FakeApi { let authNames = []; let contentTypes = []; - let accepts = []; + let accepts = ['*/*']; let returnType = OuterComposite; return this.apiClient.callApi( @@ -124,16 +122,16 @@ export default class FakeApi { * Callback function to receive the result of the fakeOuterNumberSerialize operation. * @callback module:api/FakeApi~fakeOuterNumberSerializeCallback * @param {String} error Error message, if any. - * @param {module:model/OuterNumber} data The data returned by the service call. + * @param {Number} data The data returned by the service call. * @param {String} response The complete HTTP response. */ /** * Test serialization of outer number types * @param {Object} opts Optional parameters - * @param {module:model/OuterNumber} opts.body Input number as post body + * @param {Number} opts.body Input number as post body * @param {module:api/FakeApi~fakeOuterNumberSerializeCallback} callback The callback function, accepting three arguments: error, data, response - * data is of type: {@link module:model/OuterNumber} + * data is of type: {@link Number} */ fakeOuterNumberSerialize(opts, callback) { opts = opts || {}; @@ -151,8 +149,8 @@ export default class FakeApi { let authNames = []; let contentTypes = []; - let accepts = []; - let returnType = OuterNumber; + let accepts = ['*/*']; + let returnType = Number; return this.apiClient.callApi( '/fake/outer/number', 'POST', @@ -165,16 +163,16 @@ export default class FakeApi { * Callback function to receive the result of the fakeOuterStringSerialize operation. * @callback module:api/FakeApi~fakeOuterStringSerializeCallback * @param {String} error Error message, if any. - * @param {module:model/OuterString} data The data returned by the service call. + * @param {String} data The data returned by the service call. * @param {String} response The complete HTTP response. */ /** * Test serialization of outer string types * @param {Object} opts Optional parameters - * @param {module:model/OuterString} opts.body Input string as post body + * @param {String} opts.body Input string as post body * @param {module:api/FakeApi~fakeOuterStringSerializeCallback} callback The callback function, accepting three arguments: error, data, response - * data is of type: {@link module:model/OuterString} + * data is of type: {@link String} */ fakeOuterStringSerialize(opts, callback) { opts = opts || {}; @@ -192,8 +190,8 @@ export default class FakeApi { let authNames = []; let contentTypes = []; - let accepts = []; - let returnType = OuterString; + let accepts = ['*/*']; + let returnType = String; return this.apiClient.callApi( '/fake/outer/string', 'POST', @@ -202,6 +200,55 @@ export default class FakeApi { ); } + /** + * Callback function to receive the result of the testBodyWithQueryParams operation. + * @callback module:api/FakeApi~testBodyWithQueryParamsCallback + * @param {String} error Error message, if any. + * @param data This operation does not return a value. + * @param {String} response The complete HTTP response. + */ + + /** + * @param {String} query + * @param {module:model/User} user + * @param {module:api/FakeApi~testBodyWithQueryParamsCallback} callback The callback function, accepting three arguments: error, data, response + */ + testBodyWithQueryParams(query, user, callback) { + let postBody = user; + + // verify the required parameter 'query' is set + if (query === undefined || query === null) { + throw new Error("Missing the required parameter 'query' when calling testBodyWithQueryParams"); + } + + // verify the required parameter 'user' is set + if (user === undefined || user === null) { + throw new Error("Missing the required parameter 'user' when calling testBodyWithQueryParams"); + } + + + let pathParams = { + }; + let queryParams = { + 'query': query + }; + let headerParams = { + }; + let formParams = { + }; + + let authNames = []; + let contentTypes = ['application/json']; + let accepts = []; + let returnType = null; + + return this.apiClient.callApi( + '/fake/body-with-query-params', 'PUT', + pathParams, queryParams, headerParams, formParams, postBody, + authNames, contentTypes, accepts, returnType, callback + ); + } + /** * Callback function to receive the result of the testClientModel operation. * @callback module:api/FakeApi~testClientModelCallback @@ -213,16 +260,16 @@ export default class FakeApi { /** * To test \"client\" model * To test \"client\" model - * @param {module:model/Client} body client model + * @param {module:model/Client} client client model * @param {module:api/FakeApi~testClientModelCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Client} */ - testClientModel(body, callback) { - let postBody = body; + testClientModel(client, callback) { + let postBody = client; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling testClientModel"); + // verify the required parameter 'client' is set + if (client === undefined || client === null) { + throw new Error("Missing the required parameter 'client' when calling testClientModel"); } @@ -268,7 +315,7 @@ export default class FakeApi { * @param {Number} opts.int64 None * @param {Number} opts._float None * @param {String} opts._string None - * @param {Blob} opts.binary None + * @param {File} opts.binary None * @param {Date} opts._date None * @param {Date} opts.dateTime None * @param {String} opts.password None @@ -324,8 +371,8 @@ export default class FakeApi { }; let authNames = ['http_basic_test']; - let contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; - let accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8']; + let contentTypes = ['application/x-www-form-urlencoded']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -347,14 +394,14 @@ export default class FakeApi { * To test enum parameters * To test enum parameters * @param {Object} opts Optional parameters - * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) - * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to -efg) * @param {Array.} opts.enumHeaderStringArray Header parameter enum test (string array) - * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg) + * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to '-efg') * @param {Array.} opts.enumQueryStringArray Query parameter enum test (string array) - * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg) + * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to '-efg') * @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double) * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double) + * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) (default to '$') + * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to '-efg') * @param {module:api/FakeApi~testEnumParametersCallback} callback The callback function, accepting three arguments: error, data, response */ testEnumParameters(opts, callback) { @@ -367,7 +414,8 @@ export default class FakeApi { let queryParams = { 'enum_query_string_array': this.apiClient.buildCollectionParam(opts['enumQueryStringArray'], 'csv'), 'enum_query_string': opts['enumQueryString'], - 'enum_query_integer': opts['enumQueryInteger'] + 'enum_query_integer': opts['enumQueryInteger'], + 'enum_query_double': opts['enumQueryDouble'] }; let headerParams = { 'enum_header_string_array': opts['enumHeaderStringArray'], @@ -375,13 +423,12 @@ export default class FakeApi { }; let formParams = { 'enum_form_string_array': this.apiClient.buildCollectionParam(opts['enumFormStringArray'], 'csv'), - 'enum_form_string': opts['enumFormString'], - 'enum_query_double': opts['enumQueryDouble'] + 'enum_form_string': opts['enumFormString'] }; let authNames = []; - let contentTypes = ['*/*']; - let accepts = ['*/*']; + let contentTypes = ['application/x-www-form-urlencoded']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -401,16 +448,15 @@ export default class FakeApi { /** * test inline additionalProperties - * - * @param {Object} param request body + * @param {Object.} requestBody request body * @param {module:api/FakeApi~testInlineAdditionalPropertiesCallback} callback The callback function, accepting three arguments: error, data, response */ - testInlineAdditionalProperties(param, callback) { - let postBody = param; + testInlineAdditionalProperties(requestBody, callback) { + let postBody = requestBody; - // verify the required parameter 'param' is set - if (param === undefined || param === null) { - throw new Error("Missing the required parameter 'param' when calling testInlineAdditionalProperties"); + // verify the required parameter 'requestBody' is set + if (requestBody === undefined || requestBody === null) { + throw new Error("Missing the required parameter 'requestBody' when calling testInlineAdditionalProperties"); } @@ -445,7 +491,6 @@ export default class FakeApi { /** * test json serialization of form data - * * @param {String} param field1 * @param {String} param2 field2 * @param {module:api/FakeApi~testJsonFormDataCallback} callback The callback function, accepting three arguments: error, data, response @@ -476,7 +521,7 @@ export default class FakeApi { }; let authNames = []; - let contentTypes = ['application/json']; + let contentTypes = ['application/x-www-form-urlencoded']; let accepts = []; let returnType = null; diff --git a/samples/client/petstore/javascript-es6/src/api/FakeClassnameTags123Api.js b/samples/client/petstore/javascript-es6/src/api/FakeClassnameTags123Api.js index 11ece0534a7..32ab1cadb52 100644 --- a/samples/client/petstore/javascript-es6/src/api/FakeClassnameTags123Api.js +++ b/samples/client/petstore/javascript-es6/src/api/FakeClassnameTags123Api.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -44,16 +44,17 @@ export default class FakeClassnameTags123Api { /** * To test class name in snake case - * @param {module:model/Client} body client model + * To test class name in snake case + * @param {module:model/Client} client client model * @param {module:api/FakeClassnameTags123Api~testClassnameCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Client} */ - testClassname(body, callback) { - let postBody = body; + testClassname(client, callback) { + let postBody = client; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling testClassname"); + // verify the required parameter 'client' is set + if (client === undefined || client === null) { + throw new Error("Missing the required parameter 'client' when calling testClassname"); } diff --git a/samples/client/petstore/javascript-es6/src/api/PetApi.js b/samples/client/petstore/javascript-es6/src/api/PetApi.js index aea4c0049b2..d6b39c8671b 100644 --- a/samples/client/petstore/javascript-es6/src/api/PetApi.js +++ b/samples/client/petstore/javascript-es6/src/api/PetApi.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -45,16 +45,15 @@ export default class PetApi { /** * Add a new pet to the store - * - * @param {module:model/Pet} body Pet object that needs to be added to the store + * @param {module:model/Pet} pet Pet object that needs to be added to the store * @param {module:api/PetApi~addPetCallback} callback The callback function, accepting three arguments: error, data, response */ - addPet(body, callback) { - let postBody = body; + addPet(pet, callback) { + let postBody = pet; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling addPet"); + // verify the required parameter 'pet' is set + if (pet === undefined || pet === null) { + throw new Error("Missing the required parameter 'pet' when calling addPet"); } @@ -69,7 +68,7 @@ export default class PetApi { let authNames = ['petstore_auth']; let contentTypes = ['application/json', 'application/xml']; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -89,7 +88,6 @@ export default class PetApi { /** * Deletes a pet - * * @param {Number} petId Pet id to delete * @param {Object} opts Optional parameters * @param {String} opts.apiKey @@ -118,7 +116,7 @@ export default class PetApi { let authNames = ['petstore_auth']; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -276,16 +274,15 @@ export default class PetApi { /** * Update an existing pet - * - * @param {module:model/Pet} body Pet object that needs to be added to the store + * @param {module:model/Pet} pet Pet object that needs to be added to the store * @param {module:api/PetApi~updatePetCallback} callback The callback function, accepting three arguments: error, data, response */ - updatePet(body, callback) { - let postBody = body; + updatePet(pet, callback) { + let postBody = pet; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling updatePet"); + // verify the required parameter 'pet' is set + if (pet === undefined || pet === null) { + throw new Error("Missing the required parameter 'pet' when calling updatePet"); } @@ -300,7 +297,7 @@ export default class PetApi { let authNames = ['petstore_auth']; let contentTypes = ['application/json', 'application/xml']; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -320,7 +317,6 @@ export default class PetApi { /** * Updates a pet in the store with form data - * * @param {Number} petId ID of pet that needs to be updated * @param {Object} opts Optional parameters * @param {String} opts.name Updated name of the pet @@ -351,7 +347,7 @@ export default class PetApi { let authNames = ['petstore_auth']; let contentTypes = ['application/x-www-form-urlencoded']; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -371,7 +367,6 @@ export default class PetApi { /** * uploads an image - * * @param {Number} petId ID of pet to update * @param {Object} opts Optional parameters * @param {String} opts.additionalMetadata Additional data to pass to server diff --git a/samples/client/petstore/javascript-es6/src/api/StoreApi.js b/samples/client/petstore/javascript-es6/src/api/StoreApi.js index 28fe086c2e4..33029258885 100644 --- a/samples/client/petstore/javascript-es6/src/api/StoreApi.js +++ b/samples/client/petstore/javascript-es6/src/api/StoreApi.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -69,7 +69,7 @@ export default class StoreApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -83,7 +83,7 @@ export default class StoreApi { * Callback function to receive the result of the getInventory operation. * @callback module:api/StoreApi~getInventoryCallback * @param {String} error Error message, if any. - * @param {Object.} data The data returned by the service call. + * @param {Object.} data The data returned by the service call. * @param {String} response The complete HTTP response. */ @@ -91,7 +91,7 @@ export default class StoreApi { * Returns pet inventories by status * Returns a map of status codes to quantities * @param {module:api/StoreApi~getInventoryCallback} callback The callback function, accepting three arguments: error, data, response - * data is of type: {@link Object.} + * data is of type: {@link Object.} */ getInventory(callback) { let postBody = null; @@ -109,7 +109,7 @@ export default class StoreApi { let authNames = ['api_key']; let contentTypes = []; let accepts = ['application/json']; - let returnType = {'String': 'Number'}; + let returnType = {String: Number}; return this.apiClient.callApi( '/store/inventory', 'GET', @@ -174,17 +174,16 @@ export default class StoreApi { /** * Place an order for a pet - * - * @param {module:model/Order} body order placed for purchasing the pet + * @param {module:model/Order} order order placed for purchasing the pet * @param {module:api/StoreApi~placeOrderCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/Order} */ - placeOrder(body, callback) { - let postBody = body; + placeOrder(order, callback) { + let postBody = order; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling placeOrder"); + // verify the required parameter 'order' is set + if (order === undefined || order === null) { + throw new Error("Missing the required parameter 'order' when calling placeOrder"); } diff --git a/samples/client/petstore/javascript-es6/src/api/UserApi.js b/samples/client/petstore/javascript-es6/src/api/UserApi.js index 600ca5f4200..314e8db8f99 100644 --- a/samples/client/petstore/javascript-es6/src/api/UserApi.js +++ b/samples/client/petstore/javascript-es6/src/api/UserApi.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -45,15 +45,15 @@ export default class UserApi { /** * Create user * This can only be done by the logged in user. - * @param {module:model/User} body Created user object + * @param {module:model/User} user Created user object * @param {module:api/UserApi~createUserCallback} callback The callback function, accepting three arguments: error, data, response */ - createUser(body, callback) { - let postBody = body; + createUser(user, callback) { + let postBody = user; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling createUser"); + // verify the required parameter 'user' is set + if (user === undefined || user === null) { + throw new Error("Missing the required parameter 'user' when calling createUser"); } @@ -68,7 +68,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -88,16 +88,15 @@ export default class UserApi { /** * Creates list of users with given input array - * - * @param {Array.} body List of user object + * @param {Array.} user List of user object * @param {module:api/UserApi~createUsersWithArrayInputCallback} callback The callback function, accepting three arguments: error, data, response */ - createUsersWithArrayInput(body, callback) { - let postBody = body; + createUsersWithArrayInput(user, callback) { + let postBody = user; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling createUsersWithArrayInput"); + // verify the required parameter 'user' is set + if (user === undefined || user === null) { + throw new Error("Missing the required parameter 'user' when calling createUsersWithArrayInput"); } @@ -112,7 +111,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -132,16 +131,15 @@ export default class UserApi { /** * Creates list of users with given input array - * - * @param {Array.} body List of user object + * @param {Array.} user List of user object * @param {module:api/UserApi~createUsersWithListInputCallback} callback The callback function, accepting three arguments: error, data, response */ - createUsersWithListInput(body, callback) { - let postBody = body; + createUsersWithListInput(user, callback) { + let postBody = user; - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling createUsersWithListInput"); + // verify the required parameter 'user' is set + if (user === undefined || user === null) { + throw new Error("Missing the required parameter 'user' when calling createUsersWithListInput"); } @@ -156,7 +154,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -201,7 +199,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -221,8 +219,7 @@ export default class UserApi { /** * Get user by user name - * - * @param {String} username The name that needs to be fetched. Use user1 for testing. + * @param {String} username The name that needs to be fetched. Use user1 for testing. * @param {module:api/UserApi~getUserByNameCallback} callback The callback function, accepting three arguments: error, data, response * data is of type: {@link module:model/User} */ @@ -261,17 +258,16 @@ export default class UserApi { * Callback function to receive the result of the loginUser operation. * @callback module:api/UserApi~loginUserCallback * @param {String} error Error message, if any. - * @param {'String'} data The data returned by the service call. + * @param {String} data The data returned by the service call. * @param {String} response The complete HTTP response. */ /** * Logs user into the system - * * @param {String} username The user name for login * @param {String} password The password for login in clear text * @param {module:api/UserApi~loginUserCallback} callback The callback function, accepting three arguments: error, data, response - * data is of type: {@link 'String'} + * data is of type: {@link String} */ loginUser(username, password, callback) { let postBody = null; @@ -301,7 +297,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; let accepts = ['application/xml', 'application/json']; - let returnType = 'String'; + let returnType = String; return this.apiClient.callApi( '/user/login', 'GET', @@ -320,7 +316,6 @@ export default class UserApi { /** * Logs out current logged in user session - * * @param {module:api/UserApi~logoutUserCallback} callback The callback function, accepting three arguments: error, data, response */ logoutUser(callback) { @@ -338,7 +333,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( @@ -360,20 +355,20 @@ export default class UserApi { * Updated user * This can only be done by the logged in user. * @param {String} username name that need to be deleted - * @param {module:model/User} body Updated user object + * @param {module:model/User} user Updated user object * @param {module:api/UserApi~updateUserCallback} callback The callback function, accepting three arguments: error, data, response */ - updateUser(username, body, callback) { - let postBody = body; + updateUser(username, user, callback) { + let postBody = user; // verify the required parameter 'username' is set if (username === undefined || username === null) { throw new Error("Missing the required parameter 'username' when calling updateUser"); } - // verify the required parameter 'body' is set - if (body === undefined || body === null) { - throw new Error("Missing the required parameter 'body' when calling updateUser"); + // verify the required parameter 'user' is set + if (user === undefined || user === null) { + throw new Error("Missing the required parameter 'user' when calling updateUser"); } @@ -389,7 +384,7 @@ export default class UserApi { let authNames = []; let contentTypes = []; - let accepts = ['application/xml', 'application/json']; + let accepts = []; let returnType = null; return this.apiClient.callApi( diff --git a/samples/client/petstore/javascript-es6/src/index.js b/samples/client/petstore/javascript-es6/src/index.js index ebcad866e7a..95bcba6b5d5 100644 --- a/samples/client/petstore/javascript-es6/src/index.js +++ b/samples/client/petstore/javascript-es6/src/index.js @@ -1,12 +1,12 @@ /** - * Swagger Petstore + * OpenAPI Petstore * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ * * OpenAPI spec version: 1.0.0 - * Contact: apiteam@swagger.io + * * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech * Do not edit the class manually. * */ @@ -21,9 +21,11 @@ import ArrayOfArrayOfNumberOnly from './model/ArrayOfArrayOfNumberOnly'; import ArrayOfNumberOnly from './model/ArrayOfNumberOnly'; import ArrayTest from './model/ArrayTest'; import Capitalization from './model/Capitalization'; +import Cat from './model/Cat'; import Category from './model/Category'; import ClassModel from './model/ClassModel'; import Client from './model/Client'; +import Dog from './model/Dog'; import EnumArrays from './model/EnumArrays'; import EnumClass from './model/EnumClass'; import EnumTest from './model/EnumTest'; @@ -37,18 +39,13 @@ import ModelReturn from './model/ModelReturn'; import Name from './model/Name'; import NumberOnly from './model/NumberOnly'; import Order from './model/Order'; -import OuterBoolean from './model/OuterBoolean'; import OuterComposite from './model/OuterComposite'; import OuterEnum from './model/OuterEnum'; -import OuterNumber from './model/OuterNumber'; -import OuterString from './model/OuterString'; import Pet from './model/Pet'; import ReadOnlyFirst from './model/ReadOnlyFirst'; import SpecialModelName from './model/SpecialModelName'; import Tag from './model/Tag'; import User from './model/User'; -import Cat from './model/Cat'; -import Dog from './model/Dog'; import AnotherFakeApi from './api/AnotherFakeApi'; import FakeApi from './api/FakeApi'; import FakeClassnameTags123Api from './api/FakeClassnameTags123Api'; @@ -63,9 +60,9 @@ import UserApi from './api/UserApi'; *

* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: *

-* var SwaggerPetstore = require('index'); // See note below*.
-* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-* var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* var OpenApiPetstore = require('index'); // See note below*.
+* var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyyModel = new OpenApiPetstore.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -77,8 +74,8 @@ import UserApi from './api/UserApi';
 * 

* A non-AMD browser application (discouraged) might do something like this: *

-* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-* var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyy = new OpenApiPetstore.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -143,6 +140,12 @@ export {
      */
     Capitalization,
 
+    /**
+     * The Cat model constructor.
+     * @property {module:model/Cat}
+     */
+    Cat,
+
     /**
      * The Category model constructor.
      * @property {module:model/Category}
@@ -161,6 +164,12 @@ export {
      */
     Client,
 
+    /**
+     * The Dog model constructor.
+     * @property {module:model/Dog}
+     */
+    Dog,
+
     /**
      * The EnumArrays model constructor.
      * @property {module:model/EnumArrays}
@@ -239,12 +248,6 @@ export {
      */
     Order,
 
-    /**
-     * The OuterBoolean model constructor.
-     * @property {module:model/OuterBoolean}
-     */
-    OuterBoolean,
-
     /**
      * The OuterComposite model constructor.
      * @property {module:model/OuterComposite}
@@ -257,18 +260,6 @@ export {
      */
     OuterEnum,
 
-    /**
-     * The OuterNumber model constructor.
-     * @property {module:model/OuterNumber}
-     */
-    OuterNumber,
-
-    /**
-     * The OuterString model constructor.
-     * @property {module:model/OuterString}
-     */
-    OuterString,
-
     /**
      * The Pet model constructor.
      * @property {module:model/Pet}
@@ -299,18 +290,6 @@ export {
      */
     User,
 
-    /**
-     * The Cat model constructor.
-     * @property {module:model/Cat}
-     */
-    Cat,
-
-    /**
-     * The Dog model constructor.
-     * @property {module:model/Dog}
-     */
-    Dog,
-
     /**
     * The AnotherFakeApi service constructor.
     * @property {module:api/AnotherFakeApi}
diff --git a/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js
index 088cbb29b35..227fb797557 100644
--- a/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-es6/src/model/AdditionalPropertiesClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Animal.js b/samples/client/petstore/javascript-es6/src/model/Animal.js
index b3fb1a63f32..dce658d7016 100644
--- a/samples/client/petstore/javascript-es6/src/model/Animal.js
+++ b/samples/client/petstore/javascript-es6/src/model/Animal.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js b/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js
index eb9a14b1b44..c0663cd1fa6 100644
--- a/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js
+++ b/samples/client/petstore/javascript-es6/src/model/AnimalFarm.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ApiResponse.js b/samples/client/petstore/javascript-es6/src/model/ApiResponse.js
index 49ddd1ac27f..48142ded09d 100644
--- a/samples/client/petstore/javascript-es6/src/model/ApiResponse.js
+++ b/samples/client/petstore/javascript-es6/src/model/ApiResponse.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js
index 1dfd4487c62..acfac49ce0d 100644
--- a/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-es6/src/model/ArrayOfArrayOfNumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js
index 379a19ba3ff..28a47d0bb7a 100644
--- a/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-es6/src/model/ArrayOfNumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ArrayTest.js b/samples/client/petstore/javascript-es6/src/model/ArrayTest.js
index 58e9ac58840..eff8b23dd82 100644
--- a/samples/client/petstore/javascript-es6/src/model/ArrayTest.js
+++ b/samples/client/petstore/javascript-es6/src/model/ArrayTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Capitalization.js b/samples/client/petstore/javascript-es6/src/model/Capitalization.js
index 12f3f3f5593..41c6ff9af30 100644
--- a/samples/client/petstore/javascript-es6/src/model/Capitalization.js
+++ b/samples/client/petstore/javascript-es6/src/model/Capitalization.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Cat.js b/samples/client/petstore/javascript-es6/src/model/Cat.js
index da946664d08..cc759099886 100644
--- a/samples/client/petstore/javascript-es6/src/model/Cat.js
+++ b/samples/client/petstore/javascript-es6/src/model/Cat.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -30,14 +30,15 @@ export default class Cat {
     * @alias module:model/Cat
     * @class
     * @extends module:model/Animal
-    * @param className {String} 
+    * @implements module:model/Animal
+    * @param className {} 
     */
 
     constructor(className) {
         
 
         Animal.call(this, className);
-        
+        Animal.call(this, className);
 
         
 
@@ -58,7 +59,7 @@ export default class Cat {
             
 
             Animal.constructFromObject(data, obj);
-            
+            Animal.constructFromObject(data, obj);
 
             if (data.hasOwnProperty('declawed')) {
                 obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean');
@@ -73,6 +74,17 @@ export default class Cat {
     declawed = undefined;
 
 
+    // Implement Animal interface:
+    /**
+    * @member {String} className
+    */
+    className = undefined;
+/**
+    * @member {String} color
+    * @default 'red'
+    */
+    color = 'red';
+
 
 
 
diff --git a/samples/client/petstore/javascript-es6/src/model/Category.js b/samples/client/petstore/javascript-es6/src/model/Category.js
index a281817b72f..cdd487022d0 100644
--- a/samples/client/petstore/javascript-es6/src/model/Category.js
+++ b/samples/client/petstore/javascript-es6/src/model/Category.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ClassModel.js b/samples/client/petstore/javascript-es6/src/model/ClassModel.js
index 6a558444ade..c9c39c22fff 100644
--- a/samples/client/petstore/javascript-es6/src/model/ClassModel.js
+++ b/samples/client/petstore/javascript-es6/src/model/ClassModel.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Client.js b/samples/client/petstore/javascript-es6/src/model/Client.js
index a4f9b235154..82dca1732b3 100644
--- a/samples/client/petstore/javascript-es6/src/model/Client.js
+++ b/samples/client/petstore/javascript-es6/src/model/Client.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Dog.js b/samples/client/petstore/javascript-es6/src/model/Dog.js
index e5bc0d3cecf..92168904822 100644
--- a/samples/client/petstore/javascript-es6/src/model/Dog.js
+++ b/samples/client/petstore/javascript-es6/src/model/Dog.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -30,14 +30,15 @@ export default class Dog {
     * @alias module:model/Dog
     * @class
     * @extends module:model/Animal
-    * @param className {String} 
+    * @implements module:model/Animal
+    * @param className {} 
     */
 
     constructor(className) {
         
 
         Animal.call(this, className);
-        
+        Animal.call(this, className);
 
         
 
@@ -58,7 +59,7 @@ export default class Dog {
             
 
             Animal.constructFromObject(data, obj);
-            
+            Animal.constructFromObject(data, obj);
 
             if (data.hasOwnProperty('breed')) {
                 obj['breed'] = ApiClient.convertToType(data['breed'], 'String');
@@ -73,6 +74,17 @@ export default class Dog {
     breed = undefined;
 
 
+    // Implement Animal interface:
+    /**
+    * @member {String} className
+    */
+    className = undefined;
+/**
+    * @member {String} color
+    * @default 'red'
+    */
+    color = 'red';
+
 
 
 
diff --git a/samples/client/petstore/javascript-es6/src/model/EnumArrays.js b/samples/client/petstore/javascript-es6/src/model/EnumArrays.js
index 20a74f0d883..f017d9a5396 100644
--- a/samples/client/petstore/javascript-es6/src/model/EnumArrays.js
+++ b/samples/client/petstore/javascript-es6/src/model/EnumArrays.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/EnumClass.js b/samples/client/petstore/javascript-es6/src/model/EnumClass.js
index eeb08ca2864..feb022bc831 100644
--- a/samples/client/petstore/javascript-es6/src/model/EnumClass.js
+++ b/samples/client/petstore/javascript-es6/src/model/EnumClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/EnumTest.js b/samples/client/petstore/javascript-es6/src/model/EnumTest.js
index b1f9b0b6c69..eaf874922b5 100644
--- a/samples/client/petstore/javascript-es6/src/model/EnumTest.js
+++ b/samples/client/petstore/javascript-es6/src/model/EnumTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -29,15 +29,16 @@ export default class EnumTest {
     * Constructs a new EnumTest.
     * @alias module:model/EnumTest
     * @class
+    * @param enumStringRequired {module:model/EnumTest.EnumStringRequiredEnum} 
     */
 
-    constructor() {
+    constructor(enumStringRequired) {
         
 
         
         
 
-        
+        this['enum_string_required'] = enumStringRequired;
 
         
     }
@@ -60,6 +61,9 @@ export default class EnumTest {
             if (data.hasOwnProperty('enum_string')) {
                 obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String');
             }
+            if (data.hasOwnProperty('enum_string_required')) {
+                obj['enum_string_required'] = ApiClient.convertToType(data['enum_string_required'], 'String');
+            }
             if (data.hasOwnProperty('enum_integer')) {
                 obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number');
             }
@@ -78,6 +82,10 @@ export default class EnumTest {
     */
     enum_string = undefined;
     /**
+    * @member {module:model/EnumTest.EnumStringRequiredEnum} enum_string_required
+    */
+    enum_string_required = undefined;
+    /**
     * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer
     */
     enum_integer = undefined;
@@ -121,6 +129,32 @@ export default class EnumTest {
         "empty": ""    
     };
 
+    /**
+    * Allowed values for the enum_string_required property.
+    * @enum {String}
+    * @readonly
+    */
+    static EnumStringRequiredEnum = {
+    
+        /**
+         * value: "UPPER"
+         * @const
+         */
+        "UPPER": "UPPER",
+    
+        /**
+         * value: "lower"
+         * @const
+         */
+        "lower": "lower",
+    
+        /**
+         * value: ""
+         * @const
+         */
+        "empty": ""    
+    };
+
     /**
     * Allowed values for the enum_integer property.
     * @enum {Number}
diff --git a/samples/client/petstore/javascript-es6/src/model/FormatTest.js b/samples/client/petstore/javascript-es6/src/model/FormatTest.js
index 8773a3a7755..7d04ffd26d3 100644
--- a/samples/client/petstore/javascript-es6/src/model/FormatTest.js
+++ b/samples/client/petstore/javascript-es6/src/model/FormatTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -85,7 +85,7 @@ export default class FormatTest {
                 obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob');
             }
             if (data.hasOwnProperty('binary')) {
-                obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob');
+                obj['binary'] = ApiClient.convertToType(data['binary'], File);
             }
             if (data.hasOwnProperty('date')) {
                 obj['date'] = ApiClient.convertToType(data['date'], 'Date');
@@ -136,7 +136,7 @@ export default class FormatTest {
     */
     byte = undefined;
     /**
-    * @member {Blob} binary
+    * @member {File} binary
     */
     binary = undefined;
     /**
diff --git a/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js
index cb859fe3e50..e5f746c32ba 100644
--- a/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js
+++ b/samples/client/petstore/javascript-es6/src/model/HasOnlyReadOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/List.js b/samples/client/petstore/javascript-es6/src/model/List.js
index 513acd45aff..67d6d9ef144 100644
--- a/samples/client/petstore/javascript-es6/src/model/List.js
+++ b/samples/client/petstore/javascript-es6/src/model/List.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/MapTest.js b/samples/client/petstore/javascript-es6/src/model/MapTest.js
index b7a60cd8d9d..e4be468e253 100644
--- a/samples/client/petstore/javascript-es6/src/model/MapTest.js
+++ b/samples/client/petstore/javascript-es6/src/model/MapTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
index 6d912ceeb9b..17ea09bd69a 100644
--- a/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Model200Response.js b/samples/client/petstore/javascript-es6/src/model/Model200Response.js
index df4d957df7c..3dbecac1336 100644
--- a/samples/client/petstore/javascript-es6/src/model/Model200Response.js
+++ b/samples/client/petstore/javascript-es6/src/model/Model200Response.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ModelReturn.js b/samples/client/petstore/javascript-es6/src/model/ModelReturn.js
index 88fd97ab85f..0f287b72281 100644
--- a/samples/client/petstore/javascript-es6/src/model/ModelReturn.js
+++ b/samples/client/petstore/javascript-es6/src/model/ModelReturn.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Name.js b/samples/client/petstore/javascript-es6/src/model/Name.js
index f355fbdd403..0da2f21ca4c 100644
--- a/samples/client/petstore/javascript-es6/src/model/Name.js
+++ b/samples/client/petstore/javascript-es6/src/model/Name.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/NumberOnly.js b/samples/client/petstore/javascript-es6/src/model/NumberOnly.js
index bee66870891..e1f7978f7f6 100644
--- a/samples/client/petstore/javascript-es6/src/model/NumberOnly.js
+++ b/samples/client/petstore/javascript-es6/src/model/NumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Order.js b/samples/client/petstore/javascript-es6/src/model/Order.js
index ff704900bbc..fb8bdd4ab9f 100644
--- a/samples/client/petstore/javascript-es6/src/model/Order.js
+++ b/samples/client/petstore/javascript-es6/src/model/Order.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/OuterComposite.js b/samples/client/petstore/javascript-es6/src/model/OuterComposite.js
index 327e303467a..ebacb2837d8 100644
--- a/samples/client/petstore/javascript-es6/src/model/OuterComposite.js
+++ b/samples/client/petstore/javascript-es6/src/model/OuterComposite.js
@@ -1,21 +1,18 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
 
 
 import ApiClient from '../ApiClient';
-import OuterBoolean from './OuterBoolean';
-import OuterNumber from './OuterNumber';
-import OuterString from './OuterString';
 
 
 
@@ -60,28 +57,28 @@ export default class OuterComposite {
             
 
             if (data.hasOwnProperty('my_number')) {
-                obj['my_number'] = OuterNumber.constructFromObject(data['my_number']);
+                obj['my_number'] = 'Number'.constructFromObject(data['my_number']);
             }
             if (data.hasOwnProperty('my_string')) {
-                obj['my_string'] = OuterString.constructFromObject(data['my_string']);
+                obj['my_string'] = 'String'.constructFromObject(data['my_string']);
             }
             if (data.hasOwnProperty('my_boolean')) {
-                obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']);
+                obj['my_boolean'] = 'Boolean'.constructFromObject(data['my_boolean']);
             }
         }
         return obj;
     }
 
     /**
-    * @member {module:model/OuterNumber} my_number
+    * @member {Number} my_number
     */
     my_number = undefined;
     /**
-    * @member {module:model/OuterString} my_string
+    * @member {String} my_string
     */
     my_string = undefined;
     /**
-    * @member {module:model/OuterBoolean} my_boolean
+    * @member {Boolean} my_boolean
     */
     my_boolean = undefined;
 
diff --git a/samples/client/petstore/javascript-es6/src/model/OuterEnum.js b/samples/client/petstore/javascript-es6/src/model/OuterEnum.js
index bf264fd8f64..a31e00b729d 100644
--- a/samples/client/petstore/javascript-es6/src/model/OuterEnum.js
+++ b/samples/client/petstore/javascript-es6/src/model/OuterEnum.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Pet.js b/samples/client/petstore/javascript-es6/src/model/Pet.js
index bb849152027..4edbd6e3d75 100644
--- a/samples/client/petstore/javascript-es6/src/model/Pet.js
+++ b/samples/client/petstore/javascript-es6/src/model/Pet.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js
index 143b34f3eb1..5aee0fce320 100644
--- a/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js
+++ b/samples/client/petstore/javascript-es6/src/model/ReadOnlyFirst.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js b/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js
index 4e0dd379b19..c00da7303e9 100644
--- a/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js
+++ b/samples/client/petstore/javascript-es6/src/model/SpecialModelName.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/Tag.js b/samples/client/petstore/javascript-es6/src/model/Tag.js
index 759b3fa04e3..994da23e2a7 100644
--- a/samples/client/petstore/javascript-es6/src/model/Tag.js
+++ b/samples/client/petstore/javascript-es6/src/model/Tag.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-es6/src/model/User.js b/samples/client/petstore/javascript-es6/src/model/User.js
index 36311e75938..c0f5ef56e6f 100644
--- a/samples/client/petstore/javascript-es6/src/model/User.js
+++ b/samples/client/petstore/javascript-es6/src/model/User.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/.openapi-generator/VERSION b/samples/client/petstore/javascript-promise-es6/.openapi-generator/VERSION
index f9f7450d135..1c00c518154 100644
--- a/samples/client/petstore/javascript-promise-es6/.openapi-generator/VERSION
+++ b/samples/client/petstore/javascript-promise-es6/.openapi-generator/VERSION
@@ -1 +1 @@
-2.3.0-SNAPSHOT
\ No newline at end of file
+3.0.2-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/javascript-promise-es6/README.md b/samples/client/petstore/javascript-promise-es6/README.md
index 67af003b88d..fa41841dab2 100644
--- a/samples/client/petstore/javascript-promise-es6/README.md
+++ b/samples/client/petstore/javascript-promise-es6/README.md
@@ -1,12 +1,12 @@
-# swagger_petstore
+# open_api_petstore
 
-SwaggerPetstore - JavaScript client for swagger_petstore
+OpenApiPetstore - JavaScript client for open_api_petstore
 This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
-This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
+This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
 
 - API version: 1.0.0
 - Package version: 1.0.0
-- Build package: io.swagger.codegen.languages.JavascriptClientCodegen
+- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen
 
 ## Installation
 
@@ -20,7 +20,7 @@ please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.co
 Then install it via:
 
 ```shell
-npm install swagger_petstore --save
+npm install open_api_petstore --save
 ```
 
 #### git
@@ -68,13 +68,12 @@ module: {
 Please follow the [installation](#installation) instruction and execute the following JS code:
 
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var api = new SwaggerPetstore.AnotherFakeApi()
 
-var body = new SwaggerPetstore.Client(); // {Client} client model
-
-api.testSpecialTags(body).then(function(data) {
+var api = new OpenApiPetstore.AnotherFakeApi()
+var client = new OpenApiPetstore.Client(); // {Client} client model
+api.testSpecialTags(client).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -89,77 +88,75 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
-*SwaggerPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
-*SwaggerPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
-*SwaggerPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
-*SwaggerPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-*SwaggerPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
-*SwaggerPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
-*SwaggerPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
-*SwaggerPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
-*SwaggerPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
-*SwaggerPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
-*SwaggerPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
-*SwaggerPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags
-*SwaggerPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID
-*SwaggerPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
-*SwaggerPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
-*SwaggerPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
-*SwaggerPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
-*SwaggerPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
-*SwaggerPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
-*SwaggerPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
-*SwaggerPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
-*SwaggerPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
-*SwaggerPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array
-*SwaggerPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user
-*SwaggerPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name
-*SwaggerPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system
-*SwaggerPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session
-*SwaggerPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user
+*OpenApiPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
+*OpenApiPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
+*OpenApiPetstore.FakeApi* | [**testBodyWithQueryParams**](docs/FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | 
+*OpenApiPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
+*OpenApiPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
+*OpenApiPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
+*OpenApiPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+*OpenApiPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
+*OpenApiPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
+*OpenApiPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
+*OpenApiPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
+*OpenApiPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
+*OpenApiPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags
+*OpenApiPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID
+*OpenApiPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
+*OpenApiPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
+*OpenApiPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
+*OpenApiPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+*OpenApiPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
+*OpenApiPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
+*OpenApiPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
+*OpenApiPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
+*OpenApiPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
+*OpenApiPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array
+*OpenApiPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user
+*OpenApiPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name
+*OpenApiPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system
+*OpenApiPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session
+*OpenApiPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user
 
 
 ## Documentation for Models
 
- - [SwaggerPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
- - [SwaggerPetstore.Animal](docs/Animal.md)
- - [SwaggerPetstore.AnimalFarm](docs/AnimalFarm.md)
- - [SwaggerPetstore.ApiResponse](docs/ApiResponse.md)
- - [SwaggerPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
- - [SwaggerPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
- - [SwaggerPetstore.ArrayTest](docs/ArrayTest.md)
- - [SwaggerPetstore.Capitalization](docs/Capitalization.md)
- - [SwaggerPetstore.Category](docs/Category.md)
- - [SwaggerPetstore.ClassModel](docs/ClassModel.md)
- - [SwaggerPetstore.Client](docs/Client.md)
- - [SwaggerPetstore.EnumArrays](docs/EnumArrays.md)
- - [SwaggerPetstore.EnumClass](docs/EnumClass.md)
- - [SwaggerPetstore.EnumTest](docs/EnumTest.md)
- - [SwaggerPetstore.FormatTest](docs/FormatTest.md)
- - [SwaggerPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
- - [SwaggerPetstore.List](docs/List.md)
- - [SwaggerPetstore.MapTest](docs/MapTest.md)
- - [SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
- - [SwaggerPetstore.Model200Response](docs/Model200Response.md)
- - [SwaggerPetstore.ModelReturn](docs/ModelReturn.md)
- - [SwaggerPetstore.Name](docs/Name.md)
- - [SwaggerPetstore.NumberOnly](docs/NumberOnly.md)
- - [SwaggerPetstore.Order](docs/Order.md)
- - [SwaggerPetstore.OuterBoolean](docs/OuterBoolean.md)
- - [SwaggerPetstore.OuterComposite](docs/OuterComposite.md)
- - [SwaggerPetstore.OuterEnum](docs/OuterEnum.md)
- - [SwaggerPetstore.OuterNumber](docs/OuterNumber.md)
- - [SwaggerPetstore.OuterString](docs/OuterString.md)
- - [SwaggerPetstore.Pet](docs/Pet.md)
- - [SwaggerPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md)
- - [SwaggerPetstore.SpecialModelName](docs/SpecialModelName.md)
- - [SwaggerPetstore.Tag](docs/Tag.md)
- - [SwaggerPetstore.User](docs/User.md)
- - [SwaggerPetstore.Cat](docs/Cat.md)
- - [SwaggerPetstore.Dog](docs/Dog.md)
+ - [OpenApiPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
+ - [OpenApiPetstore.Animal](docs/Animal.md)
+ - [OpenApiPetstore.AnimalFarm](docs/AnimalFarm.md)
+ - [OpenApiPetstore.ApiResponse](docs/ApiResponse.md)
+ - [OpenApiPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
+ - [OpenApiPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
+ - [OpenApiPetstore.ArrayTest](docs/ArrayTest.md)
+ - [OpenApiPetstore.Capitalization](docs/Capitalization.md)
+ - [OpenApiPetstore.Cat](docs/Cat.md)
+ - [OpenApiPetstore.Category](docs/Category.md)
+ - [OpenApiPetstore.ClassModel](docs/ClassModel.md)
+ - [OpenApiPetstore.Client](docs/Client.md)
+ - [OpenApiPetstore.Dog](docs/Dog.md)
+ - [OpenApiPetstore.EnumArrays](docs/EnumArrays.md)
+ - [OpenApiPetstore.EnumClass](docs/EnumClass.md)
+ - [OpenApiPetstore.EnumTest](docs/EnumTest.md)
+ - [OpenApiPetstore.FormatTest](docs/FormatTest.md)
+ - [OpenApiPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
+ - [OpenApiPetstore.List](docs/List.md)
+ - [OpenApiPetstore.MapTest](docs/MapTest.md)
+ - [OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
+ - [OpenApiPetstore.Model200Response](docs/Model200Response.md)
+ - [OpenApiPetstore.ModelReturn](docs/ModelReturn.md)
+ - [OpenApiPetstore.Name](docs/Name.md)
+ - [OpenApiPetstore.NumberOnly](docs/NumberOnly.md)
+ - [OpenApiPetstore.Order](docs/Order.md)
+ - [OpenApiPetstore.OuterComposite](docs/OuterComposite.md)
+ - [OpenApiPetstore.OuterEnum](docs/OuterEnum.md)
+ - [OpenApiPetstore.Pet](docs/Pet.md)
+ - [OpenApiPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md)
+ - [OpenApiPetstore.SpecialModelName](docs/SpecialModelName.md)
+ - [OpenApiPetstore.Tag](docs/Tag.md)
+ - [OpenApiPetstore.User](docs/User.md)
 
 
 ## Documentation for Authorization
diff --git a/samples/client/petstore/javascript-promise-es6/docs/AdditionalPropertiesClass.md b/samples/client/petstore/javascript-promise-es6/docs/AdditionalPropertiesClass.md
index 0ea13d4bb64..7df1c7b3394 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/AdditionalPropertiesClass.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/AdditionalPropertiesClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AdditionalPropertiesClass
+# OpenApiPetstore.AdditionalPropertiesClass
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Animal.md b/samples/client/petstore/javascript-promise-es6/docs/Animal.md
index 3ae52d9db17..7bff0167581 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Animal.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Animal.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Animal
+# OpenApiPetstore.Animal
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/AnimalFarm.md b/samples/client/petstore/javascript-promise-es6/docs/AnimalFarm.md
index b72739a44c4..ab153513ca9 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/AnimalFarm.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/AnimalFarm.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AnimalFarm
+# OpenApiPetstore.AnimalFarm
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/AnotherFakeApi.md b/samples/client/petstore/javascript-promise-es6/docs/AnotherFakeApi.md
index e6e6f0bf9f9..2eccfe5f479 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/AnotherFakeApi.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/AnotherFakeApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AnotherFakeApi
+# OpenApiPetstore.AnotherFakeApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -9,7 +9,7 @@ Method | HTTP request | Description
 
 
 # **testSpecialTags**
-> Client testSpecialTags(body)
+> Client testSpecialTags(client)
 
 To test special tags
 
@@ -17,13 +17,11 @@ To test special tags
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.AnotherFakeApi();
-
-let body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testSpecialTags(body).then((data) => {
+let apiInstance = new OpenApiPetstore.AnotherFakeApi();
+let client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testSpecialTags(client).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
   console.error(error);
@@ -35,7 +33,7 @@ apiInstance.testSpecialTags(body).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ApiResponse.md b/samples/client/petstore/javascript-promise-es6/docs/ApiResponse.md
index 7f023aff601..e60378fcbfc 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ApiResponse.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ApiResponse.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ApiResponse
+# OpenApiPetstore.ApiResponse
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/javascript-promise-es6/docs/ArrayOfArrayOfNumberOnly.md
index 1d38c9d2ed5..7a1426ef818 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ArrayOfArrayOfNumberOnly.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ArrayOfArrayOfNumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayOfArrayOfNumberOnly
+# OpenApiPetstore.ArrayOfArrayOfNumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ArrayOfNumberOnly.md b/samples/client/petstore/javascript-promise-es6/docs/ArrayOfNumberOnly.md
index 07a86a3cef6..7cec2e71d4b 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ArrayOfNumberOnly.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ArrayOfNumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayOfNumberOnly
+# OpenApiPetstore.ArrayOfNumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ArrayTest.md b/samples/client/petstore/javascript-promise-es6/docs/ArrayTest.md
index e6048e9ea91..5828f6ee75b 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ArrayTest.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ArrayTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayTest
+# OpenApiPetstore.ArrayTest
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Capitalization.md b/samples/client/petstore/javascript-promise-es6/docs/Capitalization.md
index c223a4ee982..abeff984c62 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Capitalization.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Capitalization.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Capitalization
+# OpenApiPetstore.Capitalization
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Cat.md b/samples/client/petstore/javascript-promise-es6/docs/Cat.md
index 8cd391bc911..6dd0f057c85 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Cat.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Cat.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Cat
+# OpenApiPetstore.Cat
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Category.md b/samples/client/petstore/javascript-promise-es6/docs/Category.md
index 02b2488a27a..e3f934442ab 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Category.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Category.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Category
+# OpenApiPetstore.Category
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ClassModel.md b/samples/client/petstore/javascript-promise-es6/docs/ClassModel.md
index bf8343b84b3..6fe9c501a5d 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ClassModel.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ClassModel.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ClassModel
+# OpenApiPetstore.ClassModel
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Client.md b/samples/client/petstore/javascript-promise-es6/docs/Client.md
index 6ba28319684..a6c7711e74e 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Client.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Client.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Client
+# OpenApiPetstore.Client
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Dog.md b/samples/client/petstore/javascript-promise-es6/docs/Dog.md
index 9253eace011..f35663407e8 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Dog.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Dog.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Dog
+# OpenApiPetstore.Dog
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/EnumArrays.md b/samples/client/petstore/javascript-promise-es6/docs/EnumArrays.md
index 449a96fdbbd..5f624e5db48 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/EnumArrays.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/EnumArrays.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.EnumArrays
+# OpenApiPetstore.EnumArrays
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/EnumClass.md b/samples/client/petstore/javascript-promise-es6/docs/EnumClass.md
index 04b89362941..cef9bb57a56 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/EnumClass.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/EnumClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.EnumClass
+# OpenApiPetstore.EnumClass
 
 ## Enum
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/EnumTest.md b/samples/client/petstore/javascript-promise-es6/docs/EnumTest.md
index 9d85a20016d..c9e7ce86fea 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/EnumTest.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/EnumTest.md
@@ -1,9 +1,10 @@
-# SwaggerPetstore.EnumTest
+# OpenApiPetstore.EnumTest
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **enumString** | **String** |  | [optional] 
+**enumStringRequired** | **String** |  | 
 **enumInteger** | **Number** |  | [optional] 
 **enumNumber** | **Number** |  | [optional] 
 **outerEnum** | [**OuterEnum**](OuterEnum.md) |  | [optional] 
@@ -22,6 +23,19 @@ Name | Type | Description | Notes
 
 
 
+
+## Enum: EnumStringRequiredEnum
+
+
+* `UPPER` (value: `"UPPER"`)
+
+* `lower` (value: `"lower"`)
+
+* `empty` (value: `""`)
+
+
+
+
 
 ## Enum: EnumIntegerEnum
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md b/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md
index 51f2a77b8fd..8a2a57c8b66 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/FakeApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FakeApi
+# OpenApiPetstore.FakeApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -8,6 +8,7 @@ Method | HTTP request | Description
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
 [**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
+[**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | 
 [**testClientModel**](FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
 [**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
 [**testEnumParameters**](FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
@@ -17,7 +18,7 @@ Method | HTTP request | Description
 
 
 # **fakeOuterBooleanSerialize**
-> OuterBoolean fakeOuterBooleanSerialize(opts)
+> Boolean fakeOuterBooleanSerialize(opts)
 
 
 
@@ -25,12 +26,11 @@ Test serialization of outer boolean types
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let opts = { 
-  'body': new SwaggerPetstore.OuterBoolean() // OuterBoolean | Input boolean as post body
+let apiInstance = new OpenApiPetstore.FakeApi();
+let opts = {
+  'body': true // Boolean | Input boolean as post body
 };
 apiInstance.fakeOuterBooleanSerialize(opts).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
@@ -44,11 +44,11 @@ apiInstance.fakeOuterBooleanSerialize(opts).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterBoolean**](OuterBoolean.md)| Input boolean as post body | [optional] 
+ **body** | **Boolean**| Input boolean as post body | [optional] 
 
 ### Return type
 
-[**OuterBoolean**](OuterBoolean.md)
+**Boolean**
 
 ### Authorization
 
@@ -57,7 +57,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterCompositeSerialize**
@@ -69,12 +69,11 @@ Test serialization of object with outer number type
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let opts = { 
-  'body': new SwaggerPetstore.OuterComposite() // OuterComposite | Input composite as post body
+let apiInstance = new OpenApiPetstore.FakeApi();
+let opts = {
+  'outerComposite': new OpenApiPetstore.OuterComposite() // OuterComposite | Input composite as post body
 };
 apiInstance.fakeOuterCompositeSerialize(opts).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
@@ -88,7 +87,7 @@ apiInstance.fakeOuterCompositeSerialize(opts).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
+ **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
 
 ### Return type
 
@@ -101,11 +100,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterNumberSerialize**
-> OuterNumber fakeOuterNumberSerialize(opts)
+> Number fakeOuterNumberSerialize(opts)
 
 
 
@@ -113,12 +112,11 @@ Test serialization of outer number types
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let opts = { 
-  'body': new SwaggerPetstore.OuterNumber() // OuterNumber | Input number as post body
+let apiInstance = new OpenApiPetstore.FakeApi();
+let opts = {
+  'body': 3.4 // Number | Input number as post body
 };
 apiInstance.fakeOuterNumberSerialize(opts).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
@@ -132,11 +130,11 @@ apiInstance.fakeOuterNumberSerialize(opts).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterNumber**](OuterNumber.md)| Input number as post body | [optional] 
+ **body** | **Number**| Input number as post body | [optional] 
 
 ### Return type
 
-[**OuterNumber**](OuterNumber.md)
+**Number**
 
 ### Authorization
 
@@ -145,11 +143,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterStringSerialize**
-> OuterString fakeOuterStringSerialize(opts)
+> String fakeOuterStringSerialize(opts)
 
 
 
@@ -157,12 +155,11 @@ Test serialization of outer string types
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let opts = { 
-  'body': new SwaggerPetstore.OuterString() // OuterString | Input string as post body
+let apiInstance = new OpenApiPetstore.FakeApi();
+let opts = {
+  'body': "body_example" // String | Input string as post body
 };
 apiInstance.fakeOuterStringSerialize(opts).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
@@ -176,11 +173,11 @@ apiInstance.fakeOuterStringSerialize(opts).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterString**](OuterString.md)| Input string as post body | [optional] 
+ **body** | **String**| Input string as post body | [optional] 
 
 ### Return type
 
-[**OuterString**](OuterString.md)
+**String**
 
 ### Authorization
 
@@ -189,11 +186,52 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **testBodyWithQueryParams**
+> testBodyWithQueryParams(query, user)
+
+
+
+### Example
+```javascript
+import OpenApiPetstore from 'open_api_petstore';
+
+let apiInstance = new OpenApiPetstore.FakeApi();
+let query = "query_example"; // String | 
+let user = new OpenApiPetstore.User(); // User | 
+apiInstance.testBodyWithQueryParams(query, user).then(() => {
+  console.log('API called successfully.');
+}, (error) => {
+  console.error(error);
+});
+
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **String**|  | 
+ **user** | [**User**](User.md)|  | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
  - **Accept**: Not defined
 
 
 # **testClientModel**
-> Client testClientModel(body)
+> Client testClientModel(client)
 
 To test \"client\" model
 
@@ -201,13 +239,11 @@ To test \"client\" model
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testClientModel(body).then((data) => {
+let apiInstance = new OpenApiPetstore.FakeApi();
+let client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testClientModel(client).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
   console.error(error);
@@ -219,7 +255,7 @@ apiInstance.testClientModel(body).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
@@ -244,31 +280,26 @@ Fake endpoint for testing various parameters 假端點 偽のエンドポイン
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure HTTP basic authorization: http_basic_test
 let http_basic_test = defaultClient.authentications['http_basic_test'];
 http_basic_test.username = 'YOUR USERNAME';
 http_basic_test.password = 'YOUR PASSWORD';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let _number = 8.14; // Number | None
-
-let _double = 1.2; // Number | None
-
+let apiInstance = new OpenApiPetstore.FakeApi();
+let _number = 3.4; // Number | None
+let _double = 3.4; // Number | None
 let patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None
-
-let _byte = B; // Blob | None
-
-let opts = { 
+let _byte = null; // Blob | None
+let opts = {
   'integer': 56, // Number | None
   'int32': 56, // Number | None
   'int64': 789, // Number | None
   '_float': 3.4, // Number | None
   '_string': "_string_example", // String | None
-  'binary': B, // Blob | None
+  'binary': "/path/to/file", // File | None
   '_date': new Date("2013-10-20"), // Date | None
   'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None
   'password': "password_example", // String | None
@@ -295,7 +326,7 @@ Name | Type | Description  | Notes
  **int64** | **Number**| None | [optional] 
  **_float** | **Number**| None | [optional] 
  **_string** | **String**| None | [optional] 
- **binary** | **Blob**| None | [optional] 
+ **binary** | **File**| None | [optional] 
  **_date** | **Date**| None | [optional] 
  **dateTime** | **Date**| None | [optional] 
  **password** | **String**| None | [optional] 
@@ -311,8 +342,8 @@ null (empty response body)
 
 ### HTTP request headers
 
- - **Content-Type**: application/xml; charset=utf-8, application/json; charset=utf-8
- - **Accept**: application/xml; charset=utf-8, application/json; charset=utf-8
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
 
 
 # **testEnumParameters**
@@ -324,19 +355,18 @@ To test enum parameters
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let opts = { 
-  'enumFormStringArray': ["enumFormStringArray_example"], // [String] | Form parameter enum test (string array)
-  'enumFormString': "-efg", // String | Form parameter enum test (string)
-  'enumHeaderStringArray': ["enumHeaderStringArray_example"], // [String] | Header parameter enum test (string array)
-  'enumHeaderString': "-efg", // String | Header parameter enum test (string)
-  'enumQueryStringArray': ["enumQueryStringArray_example"], // [String] | Query parameter enum test (string array)
-  'enumQueryString': "-efg", // String | Query parameter enum test (string)
+let apiInstance = new OpenApiPetstore.FakeApi();
+let opts = {
+  'enumHeaderStringArray': ["'$'"], // [String] | Header parameter enum test (string array)
+  'enumHeaderString': "'-efg'", // String | Header parameter enum test (string)
+  'enumQueryStringArray': ["'$'"], // [String] | Query parameter enum test (string array)
+  'enumQueryString': "'-efg'", // String | Query parameter enum test (string)
   'enumQueryInteger': 56, // Number | Query parameter enum test (double)
-  'enumQueryDouble': 1.2 // Number | Query parameter enum test (double)
+  'enumQueryDouble': 3.4, // Number | Query parameter enum test (double)
+  'enumFormStringArray': "'$'", // [String] | Form parameter enum test (string array)
+  'enumFormString': "'-efg'" // String | Form parameter enum test (string)
 };
 apiInstance.testEnumParameters(opts).then(() => {
   console.log('API called successfully.');
@@ -350,14 +380,14 @@ apiInstance.testEnumParameters(opts).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] 
- **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to -efg]
  **enumHeaderStringArray** | [**[String]**](String.md)| Header parameter enum test (string array) | [optional] 
- **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to -efg]
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to '-efg']
  **enumQueryStringArray** | [**[String]**](String.md)| Query parameter enum test (string array) | [optional] 
- **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to -efg]
+ **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to '-efg']
  **enumQueryInteger** | **Number**| Query parameter enum test (double) | [optional] 
  **enumQueryDouble** | **Number**| Query parameter enum test (double) | [optional] 
+ **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] [default to '$']
+ **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to '-efg']
 
 ### Return type
 
@@ -369,26 +399,22 @@ No authorization required
 
 ### HTTP request headers
 
- - **Content-Type**: */*
- - **Accept**: */*
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
 
 
 # **testInlineAdditionalProperties**
-> testInlineAdditionalProperties(param)
+> testInlineAdditionalProperties(requestBody)
 
 test inline additionalProperties
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.FakeApi();
-
-let param = null; // Object | request body
-
-apiInstance.testInlineAdditionalProperties(param).then(() => {
+let apiInstance = new OpenApiPetstore.FakeApi();
+let requestBody = {key: "inner_example"}; // {String: String} | request body
+apiInstance.testInlineAdditionalProperties(requestBody).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -400,7 +426,7 @@ apiInstance.testInlineAdditionalProperties(param).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **param** | **Object**| request body | 
+ **requestBody** | [**{String: String}**](String.md)| request body | 
 
 ### Return type
 
@@ -421,18 +447,13 @@ No authorization required
 
 test json serialization of form data
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.FakeApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.FakeApi();
 let param = "param_example"; // String | field1
-
 let param2 = "param2_example"; // String | field2
-
 apiInstance.testJsonFormData(param, param2).then(() => {
   console.log('API called successfully.');
 }, (error) => {
@@ -458,6 +479,6 @@ No authorization required
 
 ### HTTP request headers
 
- - **Content-Type**: application/json
+ - **Content-Type**: application/x-www-form-urlencoded
  - **Accept**: Not defined
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/FakeClassnameTags123Api.md b/samples/client/petstore/javascript-promise-es6/docs/FakeClassnameTags123Api.md
index 1595c9b35f4..08b9458b0e6 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/FakeClassnameTags123Api.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/FakeClassnameTags123Api.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FakeClassnameTags123Api
+# OpenApiPetstore.FakeClassnameTags123Api
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -9,14 +9,16 @@ Method | HTTP request | Description
 
 
 # **testClassname**
-> Client testClassname(body)
+> Client testClassname(client)
+
+To test class name in snake case
 
 To test class name in snake case
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure API key authorization: api_key_query
 let api_key_query = defaultClient.authentications['api_key_query'];
@@ -24,11 +26,9 @@ api_key_query.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key_query.apiKeyPrefix = 'Token';
 
-let apiInstance = new SwaggerPetstore.FakeClassnameTags123Api();
-
-let body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testClassname(body).then((data) => {
+let apiInstance = new OpenApiPetstore.FakeClassnameTags123Api();
+let client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testClassname(client).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
   console.error(error);
@@ -40,7 +40,7 @@ apiInstance.testClassname(body).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/FormatTest.md b/samples/client/petstore/javascript-promise-es6/docs/FormatTest.md
index cb5b11416fa..0f4a8405449 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/FormatTest.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/FormatTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FormatTest
+# OpenApiPetstore.FormatTest
 
 ## Properties
 Name | Type | Description | Notes
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
 **_double** | **Number** |  | [optional] 
 **_string** | **String** |  | [optional] 
 **_byte** | **Blob** |  | 
-**binary** | **Blob** |  | [optional] 
+**binary** | **File** |  | [optional] 
 **_date** | **Date** |  | 
 **dateTime** | **Date** |  | [optional] 
 **uuid** | **String** |  | [optional] 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/HasOnlyReadOnly.md b/samples/client/petstore/javascript-promise-es6/docs/HasOnlyReadOnly.md
index b9b975fced0..abc4ce62184 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/HasOnlyReadOnly.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/HasOnlyReadOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.HasOnlyReadOnly
+# OpenApiPetstore.HasOnlyReadOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/List.md b/samples/client/petstore/javascript-promise-es6/docs/List.md
index 12166562e89..3a9555e34e0 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/List.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/List.md
@@ -1,8 +1,8 @@
-# SwaggerPetstore.List
+# OpenApiPetstore.List
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**_123List** | **String** |  | [optional] 
+**_123list** | **String** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/MapTest.md b/samples/client/petstore/javascript-promise-es6/docs/MapTest.md
index 8550252a3f1..4a128da00fd 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/MapTest.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/MapTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.MapTest
+# OpenApiPetstore.MapTest
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/javascript-promise-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md
index 31bf8b314ca..051f771930e 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass
+# OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Model200Response.md b/samples/client/petstore/javascript-promise-es6/docs/Model200Response.md
index f18f963c96d..0a0d02cc32e 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Model200Response.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Model200Response.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Model200Response
+# OpenApiPetstore.Model200Response
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ModelReturn.md b/samples/client/petstore/javascript-promise-es6/docs/ModelReturn.md
index b602b39b0c5..9ce6e203878 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ModelReturn.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ModelReturn.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ModelReturn
+# OpenApiPetstore.ModelReturn
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Name.md b/samples/client/petstore/javascript-promise-es6/docs/Name.md
index 51dad9ca578..8dfcc460361 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Name.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Name.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Name
+# OpenApiPetstore.Name
 
 ## Properties
 Name | Type | Description | Notes
@@ -6,6 +6,6 @@ Name | Type | Description | Notes
 **name** | **Number** |  | 
 **snakeCase** | **Number** |  | [optional] 
 **property** | **String** |  | [optional] 
-**_123Number** | **Number** |  | [optional] 
+**_123number** | **Number** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/NumberOnly.md b/samples/client/petstore/javascript-promise-es6/docs/NumberOnly.md
index f7bf0abd425..cf84674ed4e 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/NumberOnly.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/NumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.NumberOnly
+# OpenApiPetstore.NumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Order.md b/samples/client/petstore/javascript-promise-es6/docs/Order.md
index 6dc0b19cd25..987992caa70 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Order.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Order.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Order
+# OpenApiPetstore.Order
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/OuterComposite.md b/samples/client/petstore/javascript-promise-es6/docs/OuterComposite.md
index e4cb57f35af..c49b32ff329 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/OuterComposite.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/OuterComposite.md
@@ -1,10 +1,10 @@
-# SwaggerPetstore.OuterComposite
+# OpenApiPetstore.OuterComposite
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**myNumber** | [**OuterNumber**](OuterNumber.md) |  | [optional] 
-**myString** | [**OuterString**](OuterString.md) |  | [optional] 
-**myBoolean** | [**OuterBoolean**](OuterBoolean.md) |  | [optional] 
+**myNumber** | **Number** |  | [optional] 
+**myString** | **String** |  | [optional] 
+**myBoolean** | **Boolean** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/OuterEnum.md b/samples/client/petstore/javascript-promise-es6/docs/OuterEnum.md
index 4caf04ae09d..445d3f4074c 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/OuterEnum.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/OuterEnum.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.OuterEnum
+# OpenApiPetstore.OuterEnum
 
 ## Enum
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Pet.md b/samples/client/petstore/javascript-promise-es6/docs/Pet.md
index cae89de06d4..e91ae688aad 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Pet.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Pet.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Pet
+# OpenApiPetstore.Pet
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/PetApi.md b/samples/client/petstore/javascript-promise-es6/docs/PetApi.md
index 1d5d78f6d7a..3a402233a9e 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/PetApi.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/PetApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.PetApi
+# OpenApiPetstore.PetApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -16,26 +16,22 @@ Method | HTTP request | Description
 
 
 # **addPet**
-> addPet(body)
+> addPet(pet)
 
 Add a new pet to the store
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
-let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store
-
-apiInstance.addPet(body).then(() => {
+let apiInstance = new OpenApiPetstore.PetApi();
+let pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+apiInstance.addPet(pet).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -47,7 +43,7 @@ apiInstance.addPet(body).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -60,7 +56,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/json, application/xml
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **deletePet**
@@ -68,22 +64,18 @@ null (empty response body)
 
 Deletes a pet
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
+let apiInstance = new OpenApiPetstore.PetApi();
 let petId = 789; // Number | Pet id to delete
-
-let opts = { 
+let opts = {
   'apiKey': "apiKey_example" // String | 
 };
 apiInstance.deletePet(petId, opts).then(() => {
@@ -112,7 +104,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **findPetsByStatus**
@@ -124,17 +116,15 @@ Multiple status values can be provided with comma separated strings
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
-let status = ["status_example"]; // [String] | Status values that need to be considered for filter
-
+let apiInstance = new OpenApiPetstore.PetApi();
+let status = ["'available'"]; // [String] | Status values that need to be considered for filter
 apiInstance.findPetsByStatus(status).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -172,17 +162,15 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
-let tags = ["tags_example"]; // [String] | Tags to filter by
-
+let apiInstance = new OpenApiPetstore.PetApi();
+let tags = ["inner_example"]; // [String] | Tags to filter by
 apiInstance.findPetsByTags(tags).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -220,8 +208,8 @@ Returns a single pet
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure API key authorization: api_key
 let api_key = defaultClient.authentications['api_key'];
@@ -229,10 +217,8 @@ api_key.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key.apiKeyPrefix = 'Token';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
+let apiInstance = new OpenApiPetstore.PetApi();
 let petId = 789; // Number | ID of pet to return
-
 apiInstance.getPetById(petId).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -262,26 +248,22 @@ Name | Type | Description  | Notes
 
 
 # **updatePet**
-> updatePet(body)
+> updatePet(pet)
 
 Update an existing pet
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
-let body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store
-
-apiInstance.updatePet(body).then(() => {
+let apiInstance = new OpenApiPetstore.PetApi();
+let pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+apiInstance.updatePet(pet).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -293,7 +275,7 @@ apiInstance.updatePet(body).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -306,7 +288,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/json, application/xml
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **updatePetWithForm**
@@ -314,22 +296,18 @@ null (empty response body)
 
 Updates a pet in the store with form data
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
+let apiInstance = new OpenApiPetstore.PetApi();
 let petId = 789; // Number | ID of pet that needs to be updated
-
-let opts = { 
+let opts = {
   'name': "name_example", // String | Updated name of the pet
   'status': "status_example" // String | Updated status of the pet
 };
@@ -360,7 +338,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/x-www-form-urlencoded
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **uploadFile**
@@ -368,24 +346,20 @@ null (empty response body)
 
 uploads an image
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure OAuth2 access token for authorization: petstore_auth
 let petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-let apiInstance = new SwaggerPetstore.PetApi();
-
+let apiInstance = new OpenApiPetstore.PetApi();
 let petId = 789; // Number | ID of pet to update
-
-let opts = { 
+let opts = {
   'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server
-  'file': "/path/to/file.txt" // File | file to upload
+  'file': "/path/to/file" // File | file to upload
 };
 apiInstance.uploadFile(petId, opts).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
diff --git a/samples/client/petstore/javascript-promise-es6/docs/ReadOnlyFirst.md b/samples/client/petstore/javascript-promise-es6/docs/ReadOnlyFirst.md
index 5a16f8acce0..671280fba33 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/ReadOnlyFirst.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/ReadOnlyFirst.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ReadOnlyFirst
+# OpenApiPetstore.ReadOnlyFirst
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/SpecialModelName.md b/samples/client/petstore/javascript-promise-es6/docs/SpecialModelName.md
index a204af143a5..6039f53de36 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/SpecialModelName.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/SpecialModelName.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.SpecialModelName
+# OpenApiPetstore.SpecialModelName
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md b/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md
index 9f931097e03..01725c88e55 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/StoreApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.StoreApi
+# OpenApiPetstore.StoreApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -20,12 +20,10 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.StoreApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.StoreApi();
 let orderId = "orderId_example"; // String | ID of the order that needs to be deleted
-
 apiInstance.deleteOrder(orderId).then(() => {
   console.log('API called successfully.');
 }, (error) => {
@@ -51,11 +49,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **getInventory**
-> {'String': 'Number'} getInventory()
+> {String: Number} getInventory()
 
 Returns pet inventories by status
 
@@ -63,8 +61,8 @@ Returns a map of status codes to quantities
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-let defaultClient = SwaggerPetstore.ApiClient.instance;
+import OpenApiPetstore from 'open_api_petstore';
+let defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure API key authorization: api_key
 let api_key = defaultClient.authentications['api_key'];
@@ -72,7 +70,7 @@ api_key.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key.apiKeyPrefix = 'Token';
 
-let apiInstance = new SwaggerPetstore.StoreApi();
+let apiInstance = new OpenApiPetstore.StoreApi();
 apiInstance.getInventory().then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -86,7 +84,7 @@ This endpoint does not need any parameter.
 
 ### Return type
 
-**{'String': 'Number'}**
+**{String: Number}**
 
 ### Authorization
 
@@ -107,12 +105,10 @@ For valid response try integer IDs with value <= 5 or > 10. Other val
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.StoreApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.StoreApi();
 let orderId = 789; // Number | ID of pet that needs to be fetched
-
 apiInstance.getOrderById(orderId).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -142,21 +138,17 @@ No authorization required
 
 
 # **placeOrder**
-> Order placeOrder(body)
+> Order placeOrder(order)
 
 Place an order for a pet
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.StoreApi();
-
-let body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet
-
-apiInstance.placeOrder(body).then((data) => {
+let apiInstance = new OpenApiPetstore.StoreApi();
+let order = new OpenApiPetstore.Order(); // Order | order placed for purchasing the pet
+apiInstance.placeOrder(order).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
   console.error(error);
@@ -168,7 +160,7 @@ apiInstance.placeOrder(body).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Order**](Order.md)| order placed for purchasing the pet | 
+ **order** | [**Order**](Order.md)| order placed for purchasing the pet | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise-es6/docs/Tag.md b/samples/client/petstore/javascript-promise-es6/docs/Tag.md
index c0277cae8ff..a53941e80e0 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/Tag.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/Tag.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Tag
+# OpenApiPetstore.Tag
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/User.md b/samples/client/petstore/javascript-promise-es6/docs/User.md
index 2cac604cfa0..2e86dd378bf 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/User.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/User.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.User
+# OpenApiPetstore.User
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise-es6/docs/UserApi.md b/samples/client/petstore/javascript-promise-es6/docs/UserApi.md
index df53e06d15b..7513a886c7b 100644
--- a/samples/client/petstore/javascript-promise-es6/docs/UserApi.md
+++ b/samples/client/petstore/javascript-promise-es6/docs/UserApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.UserApi
+# OpenApiPetstore.UserApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -16,7 +16,7 @@ Method | HTTP request | Description
 
 
 # **createUser**
-> createUser(body)
+> createUser(user)
 
 Create user
 
@@ -24,13 +24,11 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.UserApi();
-
-let body = new SwaggerPetstore.User(); // User | Created user object
-
-apiInstance.createUser(body).then(() => {
+let apiInstance = new OpenApiPetstore.UserApi();
+let user = new OpenApiPetstore.User(); // User | Created user object
+apiInstance.createUser(user).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -42,7 +40,7 @@ apiInstance.createUser(body).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**User**](User.md)| Created user object | 
+ **user** | [**User**](User.md)| Created user object | 
 
 ### Return type
 
@@ -55,25 +53,21 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **createUsersWithArrayInput**
-> createUsersWithArrayInput(body)
+> createUsersWithArrayInput(user)
 
 Creates list of users with given input array
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.UserApi();
-
-let body = [new SwaggerPetstore.User()]; // [User] | List of user object
-
-apiInstance.createUsersWithArrayInput(body).then(() => {
+let apiInstance = new OpenApiPetstore.UserApi();
+let user = [new OpenApiPetstore.User()]; // [User] | List of user object
+apiInstance.createUsersWithArrayInput(user).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -85,7 +79,7 @@ apiInstance.createUsersWithArrayInput(body).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**[User]**](User.md)| List of user object | 
+ **user** | [**[User]**](Array.md)| List of user object | 
 
 ### Return type
 
@@ -98,25 +92,21 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **createUsersWithListInput**
-> createUsersWithListInput(body)
+> createUsersWithListInput(user)
 
 Creates list of users with given input array
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.UserApi();
-
-let body = [new SwaggerPetstore.User()]; // [User] | List of user object
-
-apiInstance.createUsersWithListInput(body).then(() => {
+let apiInstance = new OpenApiPetstore.UserApi();
+let user = [new OpenApiPetstore.User()]; // [User] | List of user object
+apiInstance.createUsersWithListInput(user).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -128,7 +118,7 @@ apiInstance.createUsersWithListInput(body).then(() => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**[User]**](User.md)| List of user object | 
+ **user** | [**[User]**](Array.md)| List of user object | 
 
 ### Return type
 
@@ -141,7 +131,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **deleteUser**
@@ -153,12 +143,10 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.UserApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.UserApi();
 let username = "username_example"; // String | The name that needs to be deleted
-
 apiInstance.deleteUser(username).then(() => {
   console.log('API called successfully.');
 }, (error) => {
@@ -184,7 +172,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **getUserByName**
@@ -192,16 +180,12 @@ No authorization required
 
 Get user by user name
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.UserApi();
-
-let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. 
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.UserApi();
+let username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing.
 apiInstance.getUserByName(username).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -214,7 +198,7 @@ apiInstance.getUserByName(username).then((data) => {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **username** | **String**| The name that needs to be fetched. Use user1 for testing.  | 
+ **username** | **String**| The name that needs to be fetched. Use user1 for testing. | 
 
 ### Return type
 
@@ -231,22 +215,17 @@ No authorization required
 
 
 # **loginUser**
-> 'String' loginUser(username, password)
+> String loginUser(username, password)
 
 Logs user into the system
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.UserApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.UserApi();
 let username = "username_example"; // String | The user name for login
-
 let password = "password_example"; // String | The password for login in clear text
-
 apiInstance.loginUser(username, password).then((data) => {
   console.log('API called successfully. Returned data: ' + data);
 }, (error) => {
@@ -264,7 +243,7 @@ Name | Type | Description  | Notes
 
 ### Return type
 
-**'String'**
+**String**
 
 ### Authorization
 
@@ -281,13 +260,11 @@ No authorization required
 
 Logs out current logged in user session
 
-
-
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
+import OpenApiPetstore from 'open_api_petstore';
 
-let apiInstance = new SwaggerPetstore.UserApi();
+let apiInstance = new OpenApiPetstore.UserApi();
 apiInstance.logoutUser().then(() => {
   console.log('API called successfully.');
 }, (error) => {
@@ -310,11 +287,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **updateUser**
-> updateUser(username, body)
+> updateUser(username, user)
 
 Updated user
 
@@ -322,15 +299,12 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-import SwaggerPetstore from 'swagger_petstore';
-
-let apiInstance = new SwaggerPetstore.UserApi();
+import OpenApiPetstore from 'open_api_petstore';
 
+let apiInstance = new OpenApiPetstore.UserApi();
 let username = "username_example"; // String | name that need to be deleted
-
-let body = new SwaggerPetstore.User(); // User | Updated user object
-
-apiInstance.updateUser(username, body).then(() => {
+let user = new OpenApiPetstore.User(); // User | Updated user object
+apiInstance.updateUser(username, user).then(() => {
   console.log('API called successfully.');
 }, (error) => {
   console.error(error);
@@ -343,7 +317,7 @@ apiInstance.updateUser(username, body).then(() => {
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **username** | **String**| name that need to be deleted | 
- **body** | [**User**](User.md)| Updated user object | 
+ **user** | [**User**](User.md)| Updated user object | 
 
 ### Return type
 
@@ -356,5 +330,5 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
diff --git a/samples/client/petstore/javascript-promise-es6/git_push.sh b/samples/client/petstore/javascript-promise-es6/git_push.sh
index 0d041ad0ba4..04dd5df38e8 100644
--- a/samples/client/petstore/javascript-promise-es6/git_push.sh
+++ b/samples/client/petstore/javascript-promise-es6/git_push.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
 #
-# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
 
 git_user_id=$1
 git_repo_id=$2
diff --git a/samples/client/petstore/javascript-promise-es6/package.json b/samples/client/petstore/javascript-promise-es6/package.json
index afb99e8a97a..df2fea63d60 100644
--- a/samples/client/petstore/javascript-promise-es6/package.json
+++ b/samples/client/petstore/javascript-promise-es6/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "swagger_petstore",
+  "name": "open_api_petstore",
   "version": "1.0.0",
   "description": "This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__",
   "license": "Apache-2.0",
diff --git a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js
index a6a1dddd8ef..2bb0139797c 100644
--- a/samples/client/petstore/javascript-promise-es6/src/ApiClient.js
+++ b/samples/client/petstore/javascript-promise-es6/src/ApiClient.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -482,7 +482,7 @@ export default class ApiClient {
     * @returns {Date} The parsed date object.
     */
     static parseDate(str) {
-        return new Date(str.replace(/T/i, ' '));
+        return new Date(str);
     }
 
     /**
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/AnotherFakeApi.js b/samples/client/petstore/javascript-promise-es6/src/api/AnotherFakeApi.js
index 94185c14bc3..a9a409d6336 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/AnotherFakeApi.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/AnotherFakeApi.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -38,15 +38,15 @@ export default class AnotherFakeApi {
     /**
      * To test special tags
      * To test special tags
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    testSpecialTagsWithHttpInfo(body) {
-      let postBody = body;
+    testSpecialTagsWithHttpInfo(client) {
+      let postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testSpecialTags");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testSpecialTags");
       }
 
 
@@ -74,11 +74,11 @@ export default class AnotherFakeApi {
     /**
      * To test special tags
      * To test special tags
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    testSpecialTags(body) {
-      return this.testSpecialTagsWithHttpInfo(body)
+    testSpecialTags(client) {
+      return this.testSpecialTagsWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js b/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js
index 0b0b8a1a816..d347940fffb 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/FakeApi.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -14,10 +14,8 @@
 
 import ApiClient from "../ApiClient";
 import Client from '../model/Client';
-import OuterBoolean from '../model/OuterBoolean';
 import OuterComposite from '../model/OuterComposite';
-import OuterNumber from '../model/OuterNumber';
-import OuterString from '../model/OuterString';
+import User from '../model/User';
 
 /**
 * Fake service.
@@ -42,8 +40,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer boolean types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterBoolean} opts.body Input boolean as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterBoolean} and HTTP response
+     * @param {Boolean} opts.body Input boolean as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Boolean} and HTTP response
      */
     fakeOuterBooleanSerializeWithHttpInfo(opts) {
       opts = opts || {};
@@ -61,8 +59,8 @@ export default class FakeApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = [];
-      let returnType = OuterBoolean;
+      let accepts = ['*/*'];
+      let returnType = Boolean;
 
       return this.apiClient.callApi(
         '/fake/outer/boolean', 'POST',
@@ -74,8 +72,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer boolean types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterBoolean} opts.body Input boolean as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterBoolean}
+     * @param {Boolean} opts.body Input boolean as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Boolean}
      */
     fakeOuterBooleanSerialize(opts) {
       return this.fakeOuterBooleanSerializeWithHttpInfo(opts)
@@ -88,12 +86,12 @@ export default class FakeApi {
     /**
      * Test serialization of object with outer number type
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterComposite} opts.body Input composite as post body
+     * @param {module:model/OuterComposite} opts.outerComposite Input composite as post body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterComposite} and HTTP response
      */
     fakeOuterCompositeSerializeWithHttpInfo(opts) {
       opts = opts || {};
-      let postBody = opts['body'];
+      let postBody = opts['outerComposite'];
 
 
       let pathParams = {
@@ -107,7 +105,7 @@ export default class FakeApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = [];
+      let accepts = ['*/*'];
       let returnType = OuterComposite;
 
       return this.apiClient.callApi(
@@ -120,7 +118,7 @@ export default class FakeApi {
     /**
      * Test serialization of object with outer number type
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterComposite} opts.body Input composite as post body
+     * @param {module:model/OuterComposite} opts.outerComposite Input composite as post body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterComposite}
      */
     fakeOuterCompositeSerialize(opts) {
@@ -134,8 +132,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer number types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterNumber} opts.body Input number as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterNumber} and HTTP response
+     * @param {Number} opts.body Input number as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Number} and HTTP response
      */
     fakeOuterNumberSerializeWithHttpInfo(opts) {
       opts = opts || {};
@@ -153,8 +151,8 @@ export default class FakeApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = [];
-      let returnType = OuterNumber;
+      let accepts = ['*/*'];
+      let returnType = Number;
 
       return this.apiClient.callApi(
         '/fake/outer/number', 'POST',
@@ -166,8 +164,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer number types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterNumber} opts.body Input number as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterNumber}
+     * @param {Number} opts.body Input number as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Number}
      */
     fakeOuterNumberSerialize(opts) {
       return this.fakeOuterNumberSerializeWithHttpInfo(opts)
@@ -180,8 +178,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer string types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterString} opts.body Input string as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterString} and HTTP response
+     * @param {String} opts.body Input string as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link String} and HTTP response
      */
     fakeOuterStringSerializeWithHttpInfo(opts) {
       opts = opts || {};
@@ -199,8 +197,8 @@ export default class FakeApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = [];
-      let returnType = OuterString;
+      let accepts = ['*/*'];
+      let returnType = String;
 
       return this.apiClient.callApi(
         '/fake/outer/string', 'POST',
@@ -212,8 +210,8 @@ export default class FakeApi {
     /**
      * Test serialization of outer string types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterString} opts.body Input string as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterString}
+     * @param {String} opts.body Input string as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link String}
      */
     fakeOuterStringSerialize(opts) {
       return this.fakeOuterStringSerializeWithHttpInfo(opts)
@@ -223,18 +221,72 @@ export default class FakeApi {
     }
 
 
+    /**
+     * @param {String} query 
+     * @param {module:model/User} user 
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
+     */
+    testBodyWithQueryParamsWithHttpInfo(query, user) {
+      let postBody = user;
+
+      // verify the required parameter 'query' is set
+      if (query === undefined || query === null) {
+        throw new Error("Missing the required parameter 'query' when calling testBodyWithQueryParams");
+      }
+
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling testBodyWithQueryParams");
+      }
+
+
+      let pathParams = {
+      };
+      let queryParams = {
+        'query': query
+      };
+      let headerParams = {
+      };
+      let formParams = {
+      };
+
+      let authNames = [];
+      let contentTypes = ['application/json'];
+      let accepts = [];
+      let returnType = null;
+
+      return this.apiClient.callApi(
+        '/fake/body-with-query-params', 'PUT',
+        pathParams, queryParams, headerParams, formParams, postBody,
+        authNames, contentTypes, accepts, returnType
+      );
+    }
+
+    /**
+     * @param {String} query 
+     * @param {module:model/User} user 
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}
+     */
+    testBodyWithQueryParams(query, user) {
+      return this.testBodyWithQueryParamsWithHttpInfo(query, user)
+        .then(function(response_and_data) {
+          return response_and_data.data;
+        });
+    }
+
+
     /**
      * To test \"client\" model
      * To test \"client\" model
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    testClientModelWithHttpInfo(body) {
-      let postBody = body;
+    testClientModelWithHttpInfo(client) {
+      let postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testClientModel");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testClientModel");
       }
 
 
@@ -262,11 +314,11 @@ export default class FakeApi {
     /**
      * To test \"client\" model
      * To test \"client\" model
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    testClientModel(body) {
-      return this.testClientModelWithHttpInfo(body)
+    testClientModel(client) {
+      return this.testClientModelWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -286,7 +338,7 @@ export default class FakeApi {
      * @param {Number} opts.int64 None
      * @param {Number} opts._float None
      * @param {String} opts._string None
-     * @param {Blob} opts.binary None
+     * @param {File} opts.binary None
      * @param {Date} opts._date None
      * @param {Date} opts.dateTime None
      * @param {String} opts.password None
@@ -342,8 +394,8 @@ export default class FakeApi {
       };
 
       let authNames = ['http_basic_test'];
-      let contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8'];
-      let accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8'];
+      let contentTypes = ['application/x-www-form-urlencoded'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -366,7 +418,7 @@ export default class FakeApi {
      * @param {Number} opts.int64 None
      * @param {Number} opts._float None
      * @param {String} opts._string None
-     * @param {Blob} opts.binary None
+     * @param {File} opts.binary None
      * @param {Date} opts._date None
      * @param {Date} opts.dateTime None
      * @param {String} opts.password None
@@ -385,14 +437,14 @@ export default class FakeApi {
      * To test enum parameters
      * To test enum parameters
      * @param {Object} opts Optional parameters
-     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array)
-     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to -efg)
      * @param {Array.} opts.enumHeaderStringArray Header parameter enum test (string array)
-     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to '-efg')
      * @param {Array.} opts.enumQueryStringArray Query parameter enum test (string array)
-     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to '-efg')
      * @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
      * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double)
+     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) (default to '$')
+     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to '-efg')
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
     testEnumParametersWithHttpInfo(opts) {
@@ -405,7 +457,8 @@ export default class FakeApi {
       let queryParams = {
         'enum_query_string_array': this.apiClient.buildCollectionParam(opts['enumQueryStringArray'], 'csv'),
         'enum_query_string': opts['enumQueryString'],
-        'enum_query_integer': opts['enumQueryInteger']
+        'enum_query_integer': opts['enumQueryInteger'],
+        'enum_query_double': opts['enumQueryDouble']
       };
       let headerParams = {
         'enum_header_string_array': opts['enumHeaderStringArray'],
@@ -413,13 +466,12 @@ export default class FakeApi {
       };
       let formParams = {
         'enum_form_string_array': this.apiClient.buildCollectionParam(opts['enumFormStringArray'], 'csv'),
-        'enum_form_string': opts['enumFormString'],
-        'enum_query_double': opts['enumQueryDouble']
+        'enum_form_string': opts['enumFormString']
       };
 
       let authNames = [];
-      let contentTypes = ['*/*'];
-      let accepts = ['*/*'];
+      let contentTypes = ['application/x-www-form-urlencoded'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -433,14 +485,14 @@ export default class FakeApi {
      * To test enum parameters
      * To test enum parameters
      * @param {Object} opts Optional parameters
-     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array)
-     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to -efg)
      * @param {Array.} opts.enumHeaderStringArray Header parameter enum test (string array)
-     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to '-efg')
      * @param {Array.} opts.enumQueryStringArray Query parameter enum test (string array)
-     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to '-efg')
      * @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
      * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double)
+     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) (default to '$')
+     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to '-efg')
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
     testEnumParameters(opts) {
@@ -453,16 +505,15 @@ export default class FakeApi {
 
     /**
      * test inline additionalProperties
-     * 
-     * @param {Object} param request body
+     * @param {Object.} requestBody request body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    testInlineAdditionalPropertiesWithHttpInfo(param) {
-      let postBody = param;
+    testInlineAdditionalPropertiesWithHttpInfo(requestBody) {
+      let postBody = requestBody;
 
-      // verify the required parameter 'param' is set
-      if (param === undefined || param === null) {
-        throw new Error("Missing the required parameter 'param' when calling testInlineAdditionalProperties");
+      // verify the required parameter 'requestBody' is set
+      if (requestBody === undefined || requestBody === null) {
+        throw new Error("Missing the required parameter 'requestBody' when calling testInlineAdditionalProperties");
       }
 
 
@@ -489,12 +540,11 @@ export default class FakeApi {
 
     /**
      * test inline additionalProperties
-     * 
-     * @param {Object} param request body
+     * @param {Object.} requestBody request body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    testInlineAdditionalProperties(param) {
-      return this.testInlineAdditionalPropertiesWithHttpInfo(param)
+    testInlineAdditionalProperties(requestBody) {
+      return this.testInlineAdditionalPropertiesWithHttpInfo(requestBody)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -503,7 +553,6 @@ export default class FakeApi {
 
     /**
      * test json serialization of form data
-     * 
      * @param {String} param field1
      * @param {String} param2 field2
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
@@ -534,7 +583,7 @@ export default class FakeApi {
       };
 
       let authNames = [];
-      let contentTypes = ['application/json'];
+      let contentTypes = ['application/x-www-form-urlencoded'];
       let accepts = [];
       let returnType = null;
 
@@ -547,7 +596,6 @@ export default class FakeApi {
 
     /**
      * test json serialization of form data
-     * 
      * @param {String} param field1
      * @param {String} param2 field2
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/FakeClassnameTags123Api.js b/samples/client/petstore/javascript-promise-es6/src/api/FakeClassnameTags123Api.js
index 89dddfd7a92..11e8a471209 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/FakeClassnameTags123Api.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/FakeClassnameTags123Api.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -37,15 +37,16 @@ export default class FakeClassnameTags123Api {
 
     /**
      * To test class name in snake case
-     * @param {module:model/Client} body client model
+     * To test class name in snake case
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    testClassnameWithHttpInfo(body) {
-      let postBody = body;
+    testClassnameWithHttpInfo(client) {
+      let postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testClassname");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testClassname");
       }
 
 
@@ -72,11 +73,12 @@ export default class FakeClassnameTags123Api {
 
     /**
      * To test class name in snake case
-     * @param {module:model/Client} body client model
+     * To test class name in snake case
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    testClassname(body) {
-      return this.testClassnameWithHttpInfo(body)
+    testClassname(client) {
+      return this.testClassnameWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js b/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js
index 7e79f14a48f..a8a8d91c950 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/PetApi.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -38,16 +38,15 @@ export default class PetApi {
 
     /**
      * Add a new pet to the store
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    addPetWithHttpInfo(body) {
-      let postBody = body;
+    addPetWithHttpInfo(pet) {
+      let postBody = pet;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling addPet");
+      // verify the required parameter 'pet' is set
+      if (pet === undefined || pet === null) {
+        throw new Error("Missing the required parameter 'pet' when calling addPet");
       }
 
 
@@ -62,7 +61,7 @@ export default class PetApi {
 
       let authNames = ['petstore_auth'];
       let contentTypes = ['application/json', 'application/xml'];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -74,12 +73,11 @@ export default class PetApi {
 
     /**
      * Add a new pet to the store
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    addPet(body) {
-      return this.addPetWithHttpInfo(body)
+    addPet(pet) {
+      return this.addPetWithHttpInfo(pet)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -88,7 +86,6 @@ export default class PetApi {
 
     /**
      * Deletes a pet
-     * 
      * @param {Number} petId Pet id to delete
      * @param {Object} opts Optional parameters
      * @param {String} opts.apiKey 
@@ -117,7 +114,7 @@ export default class PetApi {
 
       let authNames = ['petstore_auth'];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -129,7 +126,6 @@ export default class PetApi {
 
     /**
      * Deletes a pet
-     * 
      * @param {Number} petId Pet id to delete
      * @param {Object} opts Optional parameters
      * @param {String} opts.apiKey 
@@ -298,16 +294,15 @@ export default class PetApi {
 
     /**
      * Update an existing pet
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    updatePetWithHttpInfo(body) {
-      let postBody = body;
+    updatePetWithHttpInfo(pet) {
+      let postBody = pet;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling updatePet");
+      // verify the required parameter 'pet' is set
+      if (pet === undefined || pet === null) {
+        throw new Error("Missing the required parameter 'pet' when calling updatePet");
       }
 
 
@@ -322,7 +317,7 @@ export default class PetApi {
 
       let authNames = ['petstore_auth'];
       let contentTypes = ['application/json', 'application/xml'];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -334,12 +329,11 @@ export default class PetApi {
 
     /**
      * Update an existing pet
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    updatePet(body) {
-      return this.updatePetWithHttpInfo(body)
+    updatePet(pet) {
+      return this.updatePetWithHttpInfo(pet)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -348,7 +342,6 @@ export default class PetApi {
 
     /**
      * Updates a pet in the store with form data
-     * 
      * @param {Number} petId ID of pet that needs to be updated
      * @param {Object} opts Optional parameters
      * @param {String} opts.name Updated name of the pet
@@ -379,7 +372,7 @@ export default class PetApi {
 
       let authNames = ['petstore_auth'];
       let contentTypes = ['application/x-www-form-urlencoded'];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -391,7 +384,6 @@ export default class PetApi {
 
     /**
      * Updates a pet in the store with form data
-     * 
      * @param {Number} petId ID of pet that needs to be updated
      * @param {Object} opts Optional parameters
      * @param {String} opts.name Updated name of the pet
@@ -408,7 +400,6 @@ export default class PetApi {
 
     /**
      * uploads an image
-     * 
      * @param {Number} petId ID of pet to update
      * @param {Object} opts Optional parameters
      * @param {String} opts.additionalMetadata Additional data to pass to server
@@ -451,7 +442,6 @@ export default class PetApi {
 
     /**
      * uploads an image
-     * 
      * @param {Number} petId ID of pet to update
      * @param {Object} opts Optional parameters
      * @param {String} opts.additionalMetadata Additional data to pass to server
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js b/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js
index 689d4ffb638..f21f9822eeb 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/StoreApi.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -62,7 +62,7 @@ export default class StoreApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -89,7 +89,7 @@ export default class StoreApi {
     /**
      * Returns pet inventories by status
      * Returns a map of status codes to quantities
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Object.} and HTTP response
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Object.} and HTTP response
      */
     getInventoryWithHttpInfo() {
       let postBody = null;
@@ -107,7 +107,7 @@ export default class StoreApi {
       let authNames = ['api_key'];
       let contentTypes = [];
       let accepts = ['application/json'];
-      let returnType = {'String': 'Number'};
+      let returnType = {String: Number};
 
       return this.apiClient.callApi(
         '/store/inventory', 'GET',
@@ -119,7 +119,7 @@ export default class StoreApi {
     /**
      * Returns pet inventories by status
      * Returns a map of status codes to quantities
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Object.}
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Object.}
      */
     getInventory() {
       return this.getInventoryWithHttpInfo()
@@ -182,16 +182,15 @@ export default class StoreApi {
 
     /**
      * Place an order for a pet
-     * 
-     * @param {module:model/Order} body order placed for purchasing the pet
+     * @param {module:model/Order} order order placed for purchasing the pet
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Order} and HTTP response
      */
-    placeOrderWithHttpInfo(body) {
-      let postBody = body;
+    placeOrderWithHttpInfo(order) {
+      let postBody = order;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling placeOrder");
+      // verify the required parameter 'order' is set
+      if (order === undefined || order === null) {
+        throw new Error("Missing the required parameter 'order' when calling placeOrder");
       }
 
 
@@ -218,12 +217,11 @@ export default class StoreApi {
 
     /**
      * Place an order for a pet
-     * 
-     * @param {module:model/Order} body order placed for purchasing the pet
+     * @param {module:model/Order} order order placed for purchasing the pet
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Order}
      */
-    placeOrder(body) {
-      return this.placeOrderWithHttpInfo(body)
+    placeOrder(order) {
+      return this.placeOrderWithHttpInfo(order)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js b/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js
index c2c19d2f311..98100f61564 100644
--- a/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js
+++ b/samples/client/petstore/javascript-promise-es6/src/api/UserApi.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -38,15 +38,15 @@ export default class UserApi {
     /**
      * Create user
      * This can only be done by the logged in user.
-     * @param {module:model/User} body Created user object
+     * @param {module:model/User} user Created user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    createUserWithHttpInfo(body) {
-      let postBody = body;
+    createUserWithHttpInfo(user) {
+      let postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUser");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUser");
       }
 
 
@@ -61,7 +61,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -74,11 +74,11 @@ export default class UserApi {
     /**
      * Create user
      * This can only be done by the logged in user.
-     * @param {module:model/User} body Created user object
+     * @param {module:model/User} user Created user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    createUser(body) {
-      return this.createUserWithHttpInfo(body)
+    createUser(user) {
+      return this.createUserWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -87,16 +87,15 @@ export default class UserApi {
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    createUsersWithArrayInputWithHttpInfo(body) {
-      let postBody = body;
+    createUsersWithArrayInputWithHttpInfo(user) {
+      let postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUsersWithArrayInput");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUsersWithArrayInput");
       }
 
 
@@ -111,7 +110,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -123,12 +122,11 @@ export default class UserApi {
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    createUsersWithArrayInput(body) {
-      return this.createUsersWithArrayInputWithHttpInfo(body)
+    createUsersWithArrayInput(user) {
+      return this.createUsersWithArrayInputWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -137,16 +135,15 @@ export default class UserApi {
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    createUsersWithListInputWithHttpInfo(body) {
-      let postBody = body;
+    createUsersWithListInputWithHttpInfo(user) {
+      let postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUsersWithListInput");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUsersWithListInput");
       }
 
 
@@ -161,7 +158,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -173,12 +170,11 @@ export default class UserApi {
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    createUsersWithListInput(body) {
-      return this.createUsersWithListInputWithHttpInfo(body)
+    createUsersWithListInput(user) {
+      return this.createUsersWithListInputWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -212,7 +208,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -238,8 +234,7 @@ export default class UserApi {
 
     /**
      * Get user by user name
-     * 
-     * @param {String} username The name that needs to be fetched. Use user1 for testing. 
+     * @param {String} username The name that needs to be fetched. Use user1 for testing.
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/User} and HTTP response
      */
     getUserByNameWithHttpInfo(username) {
@@ -275,8 +270,7 @@ export default class UserApi {
 
     /**
      * Get user by user name
-     * 
-     * @param {String} username The name that needs to be fetched. Use user1 for testing. 
+     * @param {String} username The name that needs to be fetched. Use user1 for testing.
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/User}
      */
     getUserByName(username) {
@@ -289,10 +283,9 @@ export default class UserApi {
 
     /**
      * Logs user into the system
-     * 
      * @param {String} username The user name for login
      * @param {String} password The password for login in clear text
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link 'String'} and HTTP response
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link String} and HTTP response
      */
     loginUserWithHttpInfo(username, password) {
       let postBody = null;
@@ -322,7 +315,7 @@ export default class UserApi {
       let authNames = [];
       let contentTypes = [];
       let accepts = ['application/xml', 'application/json'];
-      let returnType = 'String';
+      let returnType = String;
 
       return this.apiClient.callApi(
         '/user/login', 'GET',
@@ -333,10 +326,9 @@ export default class UserApi {
 
     /**
      * Logs user into the system
-     * 
      * @param {String} username The user name for login
      * @param {String} password The password for login in clear text
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link 'String'}
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link String}
      */
     loginUser(username, password) {
       return this.loginUserWithHttpInfo(username, password)
@@ -348,7 +340,6 @@ export default class UserApi {
 
     /**
      * Logs out current logged in user session
-     * 
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
     logoutUserWithHttpInfo() {
@@ -366,7 +357,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -378,7 +369,6 @@ export default class UserApi {
 
     /**
      * Logs out current logged in user session
-     * 
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
     logoutUser() {
@@ -393,20 +383,20 @@ export default class UserApi {
      * Updated user
      * This can only be done by the logged in user.
      * @param {String} username name that need to be deleted
-     * @param {module:model/User} body Updated user object
+     * @param {module:model/User} user Updated user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    updateUserWithHttpInfo(username, body) {
-      let postBody = body;
+    updateUserWithHttpInfo(username, user) {
+      let postBody = user;
 
       // verify the required parameter 'username' is set
       if (username === undefined || username === null) {
         throw new Error("Missing the required parameter 'username' when calling updateUser");
       }
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling updateUser");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling updateUser");
       }
 
 
@@ -422,7 +412,7 @@ export default class UserApi {
 
       let authNames = [];
       let contentTypes = [];
-      let accepts = ['application/xml', 'application/json'];
+      let accepts = [];
       let returnType = null;
 
       return this.apiClient.callApi(
@@ -436,11 +426,11 @@ export default class UserApi {
      * Updated user
      * This can only be done by the logged in user.
      * @param {String} username name that need to be deleted
-     * @param {module:model/User} body Updated user object
+     * @param {module:model/User} user Updated user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    updateUser(username, body) {
-      return this.updateUserWithHttpInfo(username, body)
+    updateUser(username, user) {
+      return this.updateUserWithHttpInfo(username, user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise-es6/src/index.js b/samples/client/petstore/javascript-promise-es6/src/index.js
index ebcad866e7a..95bcba6b5d5 100644
--- a/samples/client/petstore/javascript-promise-es6/src/index.js
+++ b/samples/client/petstore/javascript-promise-es6/src/index.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -21,9 +21,11 @@ import ArrayOfArrayOfNumberOnly from './model/ArrayOfArrayOfNumberOnly';
 import ArrayOfNumberOnly from './model/ArrayOfNumberOnly';
 import ArrayTest from './model/ArrayTest';
 import Capitalization from './model/Capitalization';
+import Cat from './model/Cat';
 import Category from './model/Category';
 import ClassModel from './model/ClassModel';
 import Client from './model/Client';
+import Dog from './model/Dog';
 import EnumArrays from './model/EnumArrays';
 import EnumClass from './model/EnumClass';
 import EnumTest from './model/EnumTest';
@@ -37,18 +39,13 @@ import ModelReturn from './model/ModelReturn';
 import Name from './model/Name';
 import NumberOnly from './model/NumberOnly';
 import Order from './model/Order';
-import OuterBoolean from './model/OuterBoolean';
 import OuterComposite from './model/OuterComposite';
 import OuterEnum from './model/OuterEnum';
-import OuterNumber from './model/OuterNumber';
-import OuterString from './model/OuterString';
 import Pet from './model/Pet';
 import ReadOnlyFirst from './model/ReadOnlyFirst';
 import SpecialModelName from './model/SpecialModelName';
 import Tag from './model/Tag';
 import User from './model/User';
-import Cat from './model/Cat';
-import Dog from './model/Dog';
 import AnotherFakeApi from './api/AnotherFakeApi';
 import FakeApi from './api/FakeApi';
 import FakeClassnameTags123Api from './api/FakeClassnameTags123Api';
@@ -63,9 +60,9 @@ import UserApi from './api/UserApi';
 * 

* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: *

-* var SwaggerPetstore = require('index'); // See note below*.
-* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-* var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* var OpenApiPetstore = require('index'); // See note below*.
+* var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyyModel = new OpenApiPetstore.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -77,8 +74,8 @@ import UserApi from './api/UserApi';
 * 

* A non-AMD browser application (discouraged) might do something like this: *

-* var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-* var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
+* var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+* var yyy = new OpenApiPetstore.Yyy(); // Construct a model instance.
 * yyyModel.someProperty = 'someValue';
 * ...
 * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -143,6 +140,12 @@ export {
      */
     Capitalization,
 
+    /**
+     * The Cat model constructor.
+     * @property {module:model/Cat}
+     */
+    Cat,
+
     /**
      * The Category model constructor.
      * @property {module:model/Category}
@@ -161,6 +164,12 @@ export {
      */
     Client,
 
+    /**
+     * The Dog model constructor.
+     * @property {module:model/Dog}
+     */
+    Dog,
+
     /**
      * The EnumArrays model constructor.
      * @property {module:model/EnumArrays}
@@ -239,12 +248,6 @@ export {
      */
     Order,
 
-    /**
-     * The OuterBoolean model constructor.
-     * @property {module:model/OuterBoolean}
-     */
-    OuterBoolean,
-
     /**
      * The OuterComposite model constructor.
      * @property {module:model/OuterComposite}
@@ -257,18 +260,6 @@ export {
      */
     OuterEnum,
 
-    /**
-     * The OuterNumber model constructor.
-     * @property {module:model/OuterNumber}
-     */
-    OuterNumber,
-
-    /**
-     * The OuterString model constructor.
-     * @property {module:model/OuterString}
-     */
-    OuterString,
-
     /**
      * The Pet model constructor.
      * @property {module:model/Pet}
@@ -299,18 +290,6 @@ export {
      */
     User,
 
-    /**
-     * The Cat model constructor.
-     * @property {module:model/Cat}
-     */
-    Cat,
-
-    /**
-     * The Dog model constructor.
-     * @property {module:model/Dog}
-     */
-    Dog,
-
     /**
     * The AnotherFakeApi service constructor.
     * @property {module:api/AnotherFakeApi}
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js
index 088cbb29b35..227fb797557 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/AdditionalPropertiesClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Animal.js b/samples/client/petstore/javascript-promise-es6/src/model/Animal.js
index b3fb1a63f32..dce658d7016 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Animal.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Animal.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js b/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js
index eb9a14b1b44..c0663cd1fa6 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/AnimalFarm.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js b/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js
index 49ddd1ac27f..48142ded09d 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ApiResponse.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js
index 1dfd4487c62..acfac49ce0d 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfArrayOfNumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js
index 379a19ba3ff..28a47d0bb7a 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayOfNumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js b/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js
index 58e9ac58840..eff8b23dd82 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ArrayTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js b/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js
index 12f3f3f5593..41c6ff9af30 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Capitalization.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Cat.js b/samples/client/petstore/javascript-promise-es6/src/model/Cat.js
index da946664d08..cc759099886 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Cat.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Cat.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -30,14 +30,15 @@ export default class Cat {
     * @alias module:model/Cat
     * @class
     * @extends module:model/Animal
-    * @param className {String} 
+    * @implements module:model/Animal
+    * @param className {} 
     */
 
     constructor(className) {
         
 
         Animal.call(this, className);
-        
+        Animal.call(this, className);
 
         
 
@@ -58,7 +59,7 @@ export default class Cat {
             
 
             Animal.constructFromObject(data, obj);
-            
+            Animal.constructFromObject(data, obj);
 
             if (data.hasOwnProperty('declawed')) {
                 obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean');
@@ -73,6 +74,17 @@ export default class Cat {
     declawed = undefined;
 
 
+    // Implement Animal interface:
+    /**
+    * @member {String} className
+    */
+    className = undefined;
+/**
+    * @member {String} color
+    * @default 'red'
+    */
+    color = 'red';
+
 
 
 
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Category.js b/samples/client/petstore/javascript-promise-es6/src/model/Category.js
index a281817b72f..cdd487022d0 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Category.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Category.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js b/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js
index 6a558444ade..c9c39c22fff 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ClassModel.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Client.js b/samples/client/petstore/javascript-promise-es6/src/model/Client.js
index a4f9b235154..82dca1732b3 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Client.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Client.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Dog.js b/samples/client/petstore/javascript-promise-es6/src/model/Dog.js
index e5bc0d3cecf..92168904822 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Dog.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Dog.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -30,14 +30,15 @@ export default class Dog {
     * @alias module:model/Dog
     * @class
     * @extends module:model/Animal
-    * @param className {String} 
+    * @implements module:model/Animal
+    * @param className {} 
     */
 
     constructor(className) {
         
 
         Animal.call(this, className);
-        
+        Animal.call(this, className);
 
         
 
@@ -58,7 +59,7 @@ export default class Dog {
             
 
             Animal.constructFromObject(data, obj);
-            
+            Animal.constructFromObject(data, obj);
 
             if (data.hasOwnProperty('breed')) {
                 obj['breed'] = ApiClient.convertToType(data['breed'], 'String');
@@ -73,6 +74,17 @@ export default class Dog {
     breed = undefined;
 
 
+    // Implement Animal interface:
+    /**
+    * @member {String} className
+    */
+    className = undefined;
+/**
+    * @member {String} color
+    * @default 'red'
+    */
+    color = 'red';
+
 
 
 
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js
index 20a74f0d883..f017d9a5396 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumArrays.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js
index eeb08ca2864..feb022bc831 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js b/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js
index b1f9b0b6c69..eaf874922b5 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/EnumTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -29,15 +29,16 @@ export default class EnumTest {
     * Constructs a new EnumTest.
     * @alias module:model/EnumTest
     * @class
+    * @param enumStringRequired {module:model/EnumTest.EnumStringRequiredEnum} 
     */
 
-    constructor() {
+    constructor(enumStringRequired) {
         
 
         
         
 
-        
+        this['enum_string_required'] = enumStringRequired;
 
         
     }
@@ -60,6 +61,9 @@ export default class EnumTest {
             if (data.hasOwnProperty('enum_string')) {
                 obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String');
             }
+            if (data.hasOwnProperty('enum_string_required')) {
+                obj['enum_string_required'] = ApiClient.convertToType(data['enum_string_required'], 'String');
+            }
             if (data.hasOwnProperty('enum_integer')) {
                 obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number');
             }
@@ -78,6 +82,10 @@ export default class EnumTest {
     */
     enum_string = undefined;
     /**
+    * @member {module:model/EnumTest.EnumStringRequiredEnum} enum_string_required
+    */
+    enum_string_required = undefined;
+    /**
     * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer
     */
     enum_integer = undefined;
@@ -121,6 +129,32 @@ export default class EnumTest {
         "empty": ""    
     };
 
+    /**
+    * Allowed values for the enum_string_required property.
+    * @enum {String}
+    * @readonly
+    */
+    static EnumStringRequiredEnum = {
+    
+        /**
+         * value: "UPPER"
+         * @const
+         */
+        "UPPER": "UPPER",
+    
+        /**
+         * value: "lower"
+         * @const
+         */
+        "lower": "lower",
+    
+        /**
+         * value: ""
+         * @const
+         */
+        "empty": ""    
+    };
+
     /**
     * Allowed values for the enum_integer property.
     * @enum {Number}
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js b/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js
index 8773a3a7755..7d04ffd26d3 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/FormatTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
@@ -85,7 +85,7 @@ export default class FormatTest {
                 obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob');
             }
             if (data.hasOwnProperty('binary')) {
-                obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob');
+                obj['binary'] = ApiClient.convertToType(data['binary'], File);
             }
             if (data.hasOwnProperty('date')) {
                 obj['date'] = ApiClient.convertToType(data['date'], 'Date');
@@ -136,7 +136,7 @@ export default class FormatTest {
     */
     byte = undefined;
     /**
-    * @member {Blob} binary
+    * @member {File} binary
     */
     binary = undefined;
     /**
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js
index cb859fe3e50..e5f746c32ba 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/HasOnlyReadOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/List.js b/samples/client/petstore/javascript-promise-es6/src/model/List.js
index 513acd45aff..67d6d9ef144 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/List.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/List.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js b/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js
index b7a60cd8d9d..e4be468e253 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/MapTest.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
index 6d912ceeb9b..17ea09bd69a 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js b/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js
index df4d957df7c..3dbecac1336 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Model200Response.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js b/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js
index 88fd97ab85f..0f287b72281 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ModelReturn.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Name.js b/samples/client/petstore/javascript-promise-es6/src/model/Name.js
index f355fbdd403..0da2f21ca4c 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Name.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Name.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js b/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js
index bee66870891..e1f7978f7f6 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/NumberOnly.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Order.js b/samples/client/petstore/javascript-promise-es6/src/model/Order.js
index ff704900bbc..fb8bdd4ab9f 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Order.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Order.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js
index 327e303467a..ebacb2837d8 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterComposite.js
@@ -1,21 +1,18 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
 
 
 import ApiClient from '../ApiClient';
-import OuterBoolean from './OuterBoolean';
-import OuterNumber from './OuterNumber';
-import OuterString from './OuterString';
 
 
 
@@ -60,28 +57,28 @@ export default class OuterComposite {
             
 
             if (data.hasOwnProperty('my_number')) {
-                obj['my_number'] = OuterNumber.constructFromObject(data['my_number']);
+                obj['my_number'] = 'Number'.constructFromObject(data['my_number']);
             }
             if (data.hasOwnProperty('my_string')) {
-                obj['my_string'] = OuterString.constructFromObject(data['my_string']);
+                obj['my_string'] = 'String'.constructFromObject(data['my_string']);
             }
             if (data.hasOwnProperty('my_boolean')) {
-                obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']);
+                obj['my_boolean'] = 'Boolean'.constructFromObject(data['my_boolean']);
             }
         }
         return obj;
     }
 
     /**
-    * @member {module:model/OuterNumber} my_number
+    * @member {Number} my_number
     */
     my_number = undefined;
     /**
-    * @member {module:model/OuterString} my_string
+    * @member {String} my_string
     */
     my_string = undefined;
     /**
-    * @member {module:model/OuterBoolean} my_boolean
+    * @member {Boolean} my_boolean
     */
     my_boolean = undefined;
 
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js b/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js
index bf264fd8f64..a31e00b729d 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/OuterEnum.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Pet.js b/samples/client/petstore/javascript-promise-es6/src/model/Pet.js
index bb849152027..4edbd6e3d75 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Pet.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Pet.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js
index 143b34f3eb1..5aee0fce320 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/ReadOnlyFirst.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js b/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js
index 4e0dd379b19..c00da7303e9 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/SpecialModelName.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/Tag.js b/samples/client/petstore/javascript-promise-es6/src/model/Tag.js
index 759b3fa04e3..994da23e2a7 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/Tag.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/Tag.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise-es6/src/model/User.js b/samples/client/petstore/javascript-promise-es6/src/model/User.js
index 36311e75938..c0f5ef56e6f 100644
--- a/samples/client/petstore/javascript-promise-es6/src/model/User.js
+++ b/samples/client/petstore/javascript-promise-es6/src/model/User.js
@@ -1,12 +1,12 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
+ * 
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  * Do not edit the class manually.
  *
  */
diff --git a/samples/client/petstore/javascript-promise/.openapi-generator/VERSION b/samples/client/petstore/javascript-promise/.openapi-generator/VERSION
index f9f7450d135..1c00c518154 100644
--- a/samples/client/petstore/javascript-promise/.openapi-generator/VERSION
+++ b/samples/client/petstore/javascript-promise/.openapi-generator/VERSION
@@ -1 +1 @@
-2.3.0-SNAPSHOT
\ No newline at end of file
+3.0.2-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/javascript-promise/README.md b/samples/client/petstore/javascript-promise/README.md
index 3dbc2e674d8..a78275aee67 100644
--- a/samples/client/petstore/javascript-promise/README.md
+++ b/samples/client/petstore/javascript-promise/README.md
@@ -1,12 +1,12 @@
-# swagger_petstore
+# open_api_petstore
 
-SwaggerPetstore - JavaScript client for swagger_petstore
+OpenApiPetstore - JavaScript client for open_api_petstore
 This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
-This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
+This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
 
 - API version: 1.0.0
 - Package version: 1.0.0
-- Build package: io.swagger.codegen.languages.JavascriptClientCodegen
+- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen
 
 ## Installation
 
@@ -20,7 +20,7 @@ please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.co
 Then install it via:
 
 ```shell
-npm install swagger_petstore --save
+npm install open_api_petstore --save
 ```
 
 ##### Local development
@@ -38,13 +38,13 @@ Next, [link](https://docs.npmjs.com/cli/link) it globally in npm with the follow
 npm link
 ```
 
-Finally, switch to the directory you want to use your swagger_petstore from, and run:
+Finally, switch to the directory you want to use your open_api_petstore from, and run:
 
 ```shell
 npm link /path/to/
 ```
 
-You should now be able to `require('swagger_petstore')` in javascript files from the directory you ran the last 
+You should now be able to `require('open_api_petstore')` in javascript files from the directory you ran the last 
 command above from.
 
 #### git
@@ -93,13 +93,11 @@ module: {
 Please follow the [installation](#installation) instruction and execute the following JS code:
 
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var api = new SwaggerPetstore.AnotherFakeApi()
-
-var body = new SwaggerPetstore.Client(); // {Client} client model
-
-api.testSpecialTags(body).then(function(data) {
+var api = new OpenApiPetstore.AnotherFakeApi()
+var client = new OpenApiPetstore.Client(); // {Client} client model
+api.testSpecialTags(client).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -114,77 +112,75 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
 
 Class | Method | HTTP request | Description
 ------------ | ------------- | ------------- | -------------
-*SwaggerPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
-*SwaggerPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
-*SwaggerPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
-*SwaggerPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
-*SwaggerPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-*SwaggerPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
-*SwaggerPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
-*SwaggerPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
-*SwaggerPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
-*SwaggerPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
-*SwaggerPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
-*SwaggerPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
-*SwaggerPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags
-*SwaggerPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID
-*SwaggerPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
-*SwaggerPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
-*SwaggerPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
-*SwaggerPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
-*SwaggerPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
-*SwaggerPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
-*SwaggerPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
-*SwaggerPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
-*SwaggerPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
-*SwaggerPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array
-*SwaggerPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user
-*SwaggerPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name
-*SwaggerPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system
-*SwaggerPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session
-*SwaggerPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user
+*OpenApiPetstore.AnotherFakeApi* | [**testSpecialTags**](docs/AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
+*OpenApiPetstore.FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
+*OpenApiPetstore.FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
+*OpenApiPetstore.FakeApi* | [**testBodyWithQueryParams**](docs/FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | 
+*OpenApiPetstore.FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
+*OpenApiPetstore.FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
+*OpenApiPetstore.FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
+*OpenApiPetstore.FakeApi* | [**testInlineAdditionalProperties**](docs/FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+*OpenApiPetstore.FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
+*OpenApiPetstore.FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
+*OpenApiPetstore.PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
+*OpenApiPetstore.PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
+*OpenApiPetstore.PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
+*OpenApiPetstore.PetApi* | [**findPetsByTags**](docs/PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags
+*OpenApiPetstore.PetApi* | [**getPetById**](docs/PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID
+*OpenApiPetstore.PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
+*OpenApiPetstore.PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
+*OpenApiPetstore.PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
+*OpenApiPetstore.StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+*OpenApiPetstore.StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
+*OpenApiPetstore.StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
+*OpenApiPetstore.StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
+*OpenApiPetstore.UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
+*OpenApiPetstore.UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
+*OpenApiPetstore.UserApi* | [**createUsersWithListInput**](docs/UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array
+*OpenApiPetstore.UserApi* | [**deleteUser**](docs/UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user
+*OpenApiPetstore.UserApi* | [**getUserByName**](docs/UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name
+*OpenApiPetstore.UserApi* | [**loginUser**](docs/UserApi.md#loginUser) | **GET** /user/login | Logs user into the system
+*OpenApiPetstore.UserApi* | [**logoutUser**](docs/UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session
+*OpenApiPetstore.UserApi* | [**updateUser**](docs/UserApi.md#updateUser) | **PUT** /user/{username} | Updated user
 
 
 ## Documentation for Models
 
- - [SwaggerPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
- - [SwaggerPetstore.Animal](docs/Animal.md)
- - [SwaggerPetstore.AnimalFarm](docs/AnimalFarm.md)
- - [SwaggerPetstore.ApiResponse](docs/ApiResponse.md)
- - [SwaggerPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
- - [SwaggerPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
- - [SwaggerPetstore.ArrayTest](docs/ArrayTest.md)
- - [SwaggerPetstore.Capitalization](docs/Capitalization.md)
- - [SwaggerPetstore.Category](docs/Category.md)
- - [SwaggerPetstore.ClassModel](docs/ClassModel.md)
- - [SwaggerPetstore.Client](docs/Client.md)
- - [SwaggerPetstore.EnumArrays](docs/EnumArrays.md)
- - [SwaggerPetstore.EnumClass](docs/EnumClass.md)
- - [SwaggerPetstore.EnumTest](docs/EnumTest.md)
- - [SwaggerPetstore.FormatTest](docs/FormatTest.md)
- - [SwaggerPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
- - [SwaggerPetstore.List](docs/List.md)
- - [SwaggerPetstore.MapTest](docs/MapTest.md)
- - [SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
- - [SwaggerPetstore.Model200Response](docs/Model200Response.md)
- - [SwaggerPetstore.ModelReturn](docs/ModelReturn.md)
- - [SwaggerPetstore.Name](docs/Name.md)
- - [SwaggerPetstore.NumberOnly](docs/NumberOnly.md)
- - [SwaggerPetstore.Order](docs/Order.md)
- - [SwaggerPetstore.OuterBoolean](docs/OuterBoolean.md)
- - [SwaggerPetstore.OuterComposite](docs/OuterComposite.md)
- - [SwaggerPetstore.OuterEnum](docs/OuterEnum.md)
- - [SwaggerPetstore.OuterNumber](docs/OuterNumber.md)
- - [SwaggerPetstore.OuterString](docs/OuterString.md)
- - [SwaggerPetstore.Pet](docs/Pet.md)
- - [SwaggerPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md)
- - [SwaggerPetstore.SpecialModelName](docs/SpecialModelName.md)
- - [SwaggerPetstore.Tag](docs/Tag.md)
- - [SwaggerPetstore.User](docs/User.md)
- - [SwaggerPetstore.Cat](docs/Cat.md)
- - [SwaggerPetstore.Dog](docs/Dog.md)
+ - [OpenApiPetstore.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
+ - [OpenApiPetstore.Animal](docs/Animal.md)
+ - [OpenApiPetstore.AnimalFarm](docs/AnimalFarm.md)
+ - [OpenApiPetstore.ApiResponse](docs/ApiResponse.md)
+ - [OpenApiPetstore.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
+ - [OpenApiPetstore.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
+ - [OpenApiPetstore.ArrayTest](docs/ArrayTest.md)
+ - [OpenApiPetstore.Capitalization](docs/Capitalization.md)
+ - [OpenApiPetstore.Cat](docs/Cat.md)
+ - [OpenApiPetstore.Category](docs/Category.md)
+ - [OpenApiPetstore.ClassModel](docs/ClassModel.md)
+ - [OpenApiPetstore.Client](docs/Client.md)
+ - [OpenApiPetstore.Dog](docs/Dog.md)
+ - [OpenApiPetstore.EnumArrays](docs/EnumArrays.md)
+ - [OpenApiPetstore.EnumClass](docs/EnumClass.md)
+ - [OpenApiPetstore.EnumTest](docs/EnumTest.md)
+ - [OpenApiPetstore.FormatTest](docs/FormatTest.md)
+ - [OpenApiPetstore.HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
+ - [OpenApiPetstore.List](docs/List.md)
+ - [OpenApiPetstore.MapTest](docs/MapTest.md)
+ - [OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
+ - [OpenApiPetstore.Model200Response](docs/Model200Response.md)
+ - [OpenApiPetstore.ModelReturn](docs/ModelReturn.md)
+ - [OpenApiPetstore.Name](docs/Name.md)
+ - [OpenApiPetstore.NumberOnly](docs/NumberOnly.md)
+ - [OpenApiPetstore.Order](docs/Order.md)
+ - [OpenApiPetstore.OuterComposite](docs/OuterComposite.md)
+ - [OpenApiPetstore.OuterEnum](docs/OuterEnum.md)
+ - [OpenApiPetstore.Pet](docs/Pet.md)
+ - [OpenApiPetstore.ReadOnlyFirst](docs/ReadOnlyFirst.md)
+ - [OpenApiPetstore.SpecialModelName](docs/SpecialModelName.md)
+ - [OpenApiPetstore.Tag](docs/Tag.md)
+ - [OpenApiPetstore.User](docs/User.md)
 
 
 ## Documentation for Authorization
diff --git a/samples/client/petstore/javascript-promise/docs/AdditionalPropertiesClass.md b/samples/client/petstore/javascript-promise/docs/AdditionalPropertiesClass.md
index 0ea13d4bb64..7df1c7b3394 100644
--- a/samples/client/petstore/javascript-promise/docs/AdditionalPropertiesClass.md
+++ b/samples/client/petstore/javascript-promise/docs/AdditionalPropertiesClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AdditionalPropertiesClass
+# OpenApiPetstore.AdditionalPropertiesClass
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Animal.md b/samples/client/petstore/javascript-promise/docs/Animal.md
index 3ae52d9db17..7bff0167581 100644
--- a/samples/client/petstore/javascript-promise/docs/Animal.md
+++ b/samples/client/petstore/javascript-promise/docs/Animal.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Animal
+# OpenApiPetstore.Animal
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/AnimalFarm.md b/samples/client/petstore/javascript-promise/docs/AnimalFarm.md
index b72739a44c4..ab153513ca9 100644
--- a/samples/client/petstore/javascript-promise/docs/AnimalFarm.md
+++ b/samples/client/petstore/javascript-promise/docs/AnimalFarm.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AnimalFarm
+# OpenApiPetstore.AnimalFarm
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/AnotherFakeApi.md b/samples/client/petstore/javascript-promise/docs/AnotherFakeApi.md
index 34529644bba..6666cbc0df7 100644
--- a/samples/client/petstore/javascript-promise/docs/AnotherFakeApi.md
+++ b/samples/client/petstore/javascript-promise/docs/AnotherFakeApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.AnotherFakeApi
+# OpenApiPetstore.AnotherFakeApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -9,7 +9,7 @@ Method | HTTP request | Description
 
 
 # **testSpecialTags**
-> Client testSpecialTags(body)
+> Client testSpecialTags(client)
 
 To test special tags
 
@@ -17,13 +17,11 @@ To test special tags
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.AnotherFakeApi();
-
-var body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testSpecialTags(body).then(function(data) {
+var apiInstance = new OpenApiPetstore.AnotherFakeApi();
+var client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testSpecialTags(client).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -35,7 +33,7 @@ apiInstance.testSpecialTags(body).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise/docs/ApiResponse.md b/samples/client/petstore/javascript-promise/docs/ApiResponse.md
index 7f023aff601..e60378fcbfc 100644
--- a/samples/client/petstore/javascript-promise/docs/ApiResponse.md
+++ b/samples/client/petstore/javascript-promise/docs/ApiResponse.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ApiResponse
+# OpenApiPetstore.ApiResponse
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/javascript-promise/docs/ArrayOfArrayOfNumberOnly.md
index 1d38c9d2ed5..7a1426ef818 100644
--- a/samples/client/petstore/javascript-promise/docs/ArrayOfArrayOfNumberOnly.md
+++ b/samples/client/petstore/javascript-promise/docs/ArrayOfArrayOfNumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayOfArrayOfNumberOnly
+# OpenApiPetstore.ArrayOfArrayOfNumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/ArrayOfNumberOnly.md b/samples/client/petstore/javascript-promise/docs/ArrayOfNumberOnly.md
index 07a86a3cef6..7cec2e71d4b 100644
--- a/samples/client/petstore/javascript-promise/docs/ArrayOfNumberOnly.md
+++ b/samples/client/petstore/javascript-promise/docs/ArrayOfNumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayOfNumberOnly
+# OpenApiPetstore.ArrayOfNumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/ArrayTest.md b/samples/client/petstore/javascript-promise/docs/ArrayTest.md
index e6048e9ea91..5828f6ee75b 100644
--- a/samples/client/petstore/javascript-promise/docs/ArrayTest.md
+++ b/samples/client/petstore/javascript-promise/docs/ArrayTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ArrayTest
+# OpenApiPetstore.ArrayTest
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Capitalization.md b/samples/client/petstore/javascript-promise/docs/Capitalization.md
index c223a4ee982..abeff984c62 100644
--- a/samples/client/petstore/javascript-promise/docs/Capitalization.md
+++ b/samples/client/petstore/javascript-promise/docs/Capitalization.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Capitalization
+# OpenApiPetstore.Capitalization
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Cat.md b/samples/client/petstore/javascript-promise/docs/Cat.md
index 8cd391bc911..6dd0f057c85 100644
--- a/samples/client/petstore/javascript-promise/docs/Cat.md
+++ b/samples/client/petstore/javascript-promise/docs/Cat.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Cat
+# OpenApiPetstore.Cat
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Category.md b/samples/client/petstore/javascript-promise/docs/Category.md
index 02b2488a27a..e3f934442ab 100644
--- a/samples/client/petstore/javascript-promise/docs/Category.md
+++ b/samples/client/petstore/javascript-promise/docs/Category.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Category
+# OpenApiPetstore.Category
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/ClassModel.md b/samples/client/petstore/javascript-promise/docs/ClassModel.md
index bf8343b84b3..6fe9c501a5d 100644
--- a/samples/client/petstore/javascript-promise/docs/ClassModel.md
+++ b/samples/client/petstore/javascript-promise/docs/ClassModel.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ClassModel
+# OpenApiPetstore.ClassModel
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Client.md b/samples/client/petstore/javascript-promise/docs/Client.md
index 6ba28319684..a6c7711e74e 100644
--- a/samples/client/petstore/javascript-promise/docs/Client.md
+++ b/samples/client/petstore/javascript-promise/docs/Client.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Client
+# OpenApiPetstore.Client
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Dog.md b/samples/client/petstore/javascript-promise/docs/Dog.md
index 9253eace011..f35663407e8 100644
--- a/samples/client/petstore/javascript-promise/docs/Dog.md
+++ b/samples/client/petstore/javascript-promise/docs/Dog.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Dog
+# OpenApiPetstore.Dog
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/EnumArrays.md b/samples/client/petstore/javascript-promise/docs/EnumArrays.md
index 449a96fdbbd..5f624e5db48 100644
--- a/samples/client/petstore/javascript-promise/docs/EnumArrays.md
+++ b/samples/client/petstore/javascript-promise/docs/EnumArrays.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.EnumArrays
+# OpenApiPetstore.EnumArrays
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/EnumClass.md b/samples/client/petstore/javascript-promise/docs/EnumClass.md
index 04b89362941..cef9bb57a56 100644
--- a/samples/client/petstore/javascript-promise/docs/EnumClass.md
+++ b/samples/client/petstore/javascript-promise/docs/EnumClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.EnumClass
+# OpenApiPetstore.EnumClass
 
 ## Enum
 
diff --git a/samples/client/petstore/javascript-promise/docs/EnumTest.md b/samples/client/petstore/javascript-promise/docs/EnumTest.md
index 9d85a20016d..c9e7ce86fea 100644
--- a/samples/client/petstore/javascript-promise/docs/EnumTest.md
+++ b/samples/client/petstore/javascript-promise/docs/EnumTest.md
@@ -1,9 +1,10 @@
-# SwaggerPetstore.EnumTest
+# OpenApiPetstore.EnumTest
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **enumString** | **String** |  | [optional] 
+**enumStringRequired** | **String** |  | 
 **enumInteger** | **Number** |  | [optional] 
 **enumNumber** | **Number** |  | [optional] 
 **outerEnum** | [**OuterEnum**](OuterEnum.md) |  | [optional] 
@@ -22,6 +23,19 @@ Name | Type | Description | Notes
 
 
 
+
+## Enum: EnumStringRequiredEnum
+
+
+* `UPPER` (value: `"UPPER"`)
+
+* `lower` (value: `"lower"`)
+
+* `empty` (value: `""`)
+
+
+
+
 
 ## Enum: EnumIntegerEnum
 
diff --git a/samples/client/petstore/javascript-promise/docs/FakeApi.md b/samples/client/petstore/javascript-promise/docs/FakeApi.md
index fe941fdb188..9d56939ca60 100644
--- a/samples/client/petstore/javascript-promise/docs/FakeApi.md
+++ b/samples/client/petstore/javascript-promise/docs/FakeApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FakeApi
+# OpenApiPetstore.FakeApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -8,6 +8,7 @@ Method | HTTP request | Description
 [**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
 [**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
 [**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
+[**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | 
 [**testClientModel**](FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
 [**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
 [**testEnumParameters**](FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
@@ -17,7 +18,7 @@ Method | HTTP request | Description
 
 
 # **fakeOuterBooleanSerialize**
-> OuterBoolean fakeOuterBooleanSerialize(opts)
+> Boolean fakeOuterBooleanSerialize(opts)
 
 
 
@@ -25,12 +26,11 @@ Test serialization of outer boolean types
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var opts = { 
-  'body': new SwaggerPetstore.OuterBoolean() // OuterBoolean | Input boolean as post body
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': true // Boolean | Input boolean as post body
 };
 apiInstance.fakeOuterBooleanSerialize(opts).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
@@ -44,11 +44,11 @@ apiInstance.fakeOuterBooleanSerialize(opts).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterBoolean**](OuterBoolean.md)| Input boolean as post body | [optional] 
+ **body** | **Boolean**| Input boolean as post body | [optional] 
 
 ### Return type
 
-[**OuterBoolean**](OuterBoolean.md)
+**Boolean**
 
 ### Authorization
 
@@ -57,7 +57,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterCompositeSerialize**
@@ -69,12 +69,11 @@ Test serialization of object with outer number type
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var opts = { 
-  'body': new SwaggerPetstore.OuterComposite() // OuterComposite | Input composite as post body
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'outerComposite': new OpenApiPetstore.OuterComposite() // OuterComposite | Input composite as post body
 };
 apiInstance.fakeOuterCompositeSerialize(opts).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
@@ -88,7 +87,7 @@ apiInstance.fakeOuterCompositeSerialize(opts).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
+ **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
 
 ### Return type
 
@@ -101,11 +100,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterNumberSerialize**
-> OuterNumber fakeOuterNumberSerialize(opts)
+> Number fakeOuterNumberSerialize(opts)
 
 
 
@@ -113,12 +112,11 @@ Test serialization of outer number types
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var opts = { 
-  'body': new SwaggerPetstore.OuterNumber() // OuterNumber | Input number as post body
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': 3.4 // Number | Input number as post body
 };
 apiInstance.fakeOuterNumberSerialize(opts).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
@@ -132,11 +130,11 @@ apiInstance.fakeOuterNumberSerialize(opts).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterNumber**](OuterNumber.md)| Input number as post body | [optional] 
+ **body** | **Number**| Input number as post body | [optional] 
 
 ### Return type
 
-[**OuterNumber**](OuterNumber.md)
+**Number**
 
 ### Authorization
 
@@ -145,11 +143,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: Not defined
+ - **Accept**: */*
 
 
 # **fakeOuterStringSerialize**
-> OuterString fakeOuterStringSerialize(opts)
+> String fakeOuterStringSerialize(opts)
 
 
 
@@ -157,12 +155,11 @@ Test serialization of outer string types
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var opts = { 
-  'body': new SwaggerPetstore.OuterString() // OuterString | Input string as post body
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': "body_example" // String | Input string as post body
 };
 apiInstance.fakeOuterStringSerialize(opts).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
@@ -176,11 +173,11 @@ apiInstance.fakeOuterStringSerialize(opts).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**OuterString**](OuterString.md)| Input string as post body | [optional] 
+ **body** | **String**| Input string as post body | [optional] 
 
 ### Return type
 
-[**OuterString**](OuterString.md)
+**String**
 
 ### Authorization
 
@@ -189,11 +186,52 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **testBodyWithQueryParams**
+> testBodyWithQueryParams(query, user)
+
+
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var query = "query_example"; // String | 
+var user = new OpenApiPetstore.User(); // User | 
+apiInstance.testBodyWithQueryParams(query, user).then(function() {
+  console.log('API called successfully.');
+}, function(error) {
+  console.error(error);
+});
+
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **String**|  | 
+ **user** | [**User**](User.md)|  | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
  - **Accept**: Not defined
 
 
 # **testClientModel**
-> Client testClientModel(body)
+> Client testClientModel(client)
 
 To test \"client\" model
 
@@ -201,13 +239,11 @@ To test \"client\" model
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testClientModel(body).then(function(data) {
+var apiInstance = new OpenApiPetstore.FakeApi();
+var client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testClientModel(client).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -219,7 +255,7 @@ apiInstance.testClientModel(body).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
@@ -244,31 +280,26 @@ Fake endpoint for testing various parameters 假端點 偽のエンドポイン
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 
 // Configure HTTP basic authorization: http_basic_test
 var http_basic_test = defaultClient.authentications['http_basic_test'];
 http_basic_test.username = 'YOUR USERNAME';
 http_basic_test.password = 'YOUR PASSWORD';
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var _number = 8.14; // Number | None
-
-var _double = 1.2; // Number | None
-
+var apiInstance = new OpenApiPetstore.FakeApi();
+var _number = 3.4; // Number | None
+var _double = 3.4; // Number | None
 var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None
-
-var _byte = B; // Blob | None
-
-var opts = { 
+var _byte = null; // Blob | None
+var opts = {
   'integer': 56, // Number | None
   'int32': 56, // Number | None
   'int64': 789, // Number | None
   '_float': 3.4, // Number | None
   '_string': "_string_example", // String | None
-  'binary': B, // Blob | None
+  'binary': "/path/to/file", // File | None
   '_date': new Date("2013-10-20"), // Date | None
   'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None
   'password': "password_example", // String | None
@@ -295,7 +326,7 @@ Name | Type | Description  | Notes
  **int64** | **Number**| None | [optional] 
  **_float** | **Number**| None | [optional] 
  **_string** | **String**| None | [optional] 
- **binary** | **Blob**| None | [optional] 
+ **binary** | **File**| None | [optional] 
  **_date** | **Date**| None | [optional] 
  **dateTime** | **Date**| None | [optional] 
  **password** | **String**| None | [optional] 
@@ -311,8 +342,8 @@ null (empty response body)
 
 ### HTTP request headers
 
- - **Content-Type**: application/xml; charset=utf-8, application/json; charset=utf-8
- - **Accept**: application/xml; charset=utf-8, application/json; charset=utf-8
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
 
 
 # **testEnumParameters**
@@ -324,19 +355,18 @@ To test enum parameters
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var opts = { 
-  'enumFormStringArray': ["enumFormStringArray_example"], // [String] | Form parameter enum test (string array)
-  'enumFormString': "-efg", // String | Form parameter enum test (string)
-  'enumHeaderStringArray': ["enumHeaderStringArray_example"], // [String] | Header parameter enum test (string array)
-  'enumHeaderString': "-efg", // String | Header parameter enum test (string)
-  'enumQueryStringArray': ["enumQueryStringArray_example"], // [String] | Query parameter enum test (string array)
-  'enumQueryString': "-efg", // String | Query parameter enum test (string)
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'enumHeaderStringArray': ["'$'"], // [String] | Header parameter enum test (string array)
+  'enumHeaderString': "'-efg'", // String | Header parameter enum test (string)
+  'enumQueryStringArray': ["'$'"], // [String] | Query parameter enum test (string array)
+  'enumQueryString': "'-efg'", // String | Query parameter enum test (string)
   'enumQueryInteger': 56, // Number | Query parameter enum test (double)
-  'enumQueryDouble': 1.2 // Number | Query parameter enum test (double)
+  'enumQueryDouble': 3.4, // Number | Query parameter enum test (double)
+  'enumFormStringArray': "'$'", // [String] | Form parameter enum test (string array)
+  'enumFormString': "'-efg'" // String | Form parameter enum test (string)
 };
 apiInstance.testEnumParameters(opts).then(function() {
   console.log('API called successfully.');
@@ -350,14 +380,14 @@ apiInstance.testEnumParameters(opts).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] 
- **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to -efg]
  **enumHeaderStringArray** | [**[String]**](String.md)| Header parameter enum test (string array) | [optional] 
- **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to -efg]
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to '-efg']
  **enumQueryStringArray** | [**[String]**](String.md)| Query parameter enum test (string array) | [optional] 
- **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to -efg]
+ **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to '-efg']
  **enumQueryInteger** | **Number**| Query parameter enum test (double) | [optional] 
  **enumQueryDouble** | **Number**| Query parameter enum test (double) | [optional] 
+ **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] [default to '$']
+ **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to '-efg']
 
 ### Return type
 
@@ -369,26 +399,22 @@ No authorization required
 
 ### HTTP request headers
 
- - **Content-Type**: */*
- - **Accept**: */*
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
 
 
 # **testInlineAdditionalProperties**
-> testInlineAdditionalProperties(param)
+> testInlineAdditionalProperties(requestBody)
 
 test inline additionalProperties
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.FakeApi();
-
-var param = null; // Object | request body
-
-apiInstance.testInlineAdditionalProperties(param).then(function() {
+var apiInstance = new OpenApiPetstore.FakeApi();
+var requestBody = {key: "inner_example"}; // {String: String} | request body
+apiInstance.testInlineAdditionalProperties(requestBody).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -400,7 +426,7 @@ apiInstance.testInlineAdditionalProperties(param).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **param** | **Object**| request body | 
+ **requestBody** | [**{String: String}**](String.md)| request body | 
 
 ### Return type
 
@@ -421,18 +447,13 @@ No authorization required
 
 test json serialization of form data
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.FakeApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.FakeApi();
 var param = "param_example"; // String | field1
-
 var param2 = "param2_example"; // String | field2
-
 apiInstance.testJsonFormData(param, param2).then(function() {
   console.log('API called successfully.');
 }, function(error) {
@@ -458,6 +479,6 @@ No authorization required
 
 ### HTTP request headers
 
- - **Content-Type**: application/json
+ - **Content-Type**: application/x-www-form-urlencoded
  - **Accept**: Not defined
 
diff --git a/samples/client/petstore/javascript-promise/docs/FakeClassnameTags123Api.md b/samples/client/petstore/javascript-promise/docs/FakeClassnameTags123Api.md
index 670ed04c196..b2e98f7d757 100644
--- a/samples/client/petstore/javascript-promise/docs/FakeClassnameTags123Api.md
+++ b/samples/client/petstore/javascript-promise/docs/FakeClassnameTags123Api.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FakeClassnameTags123Api
+# OpenApiPetstore.FakeClassnameTags123Api
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -9,26 +9,25 @@ Method | HTTP request | Description
 
 
 # **testClassname**
-> Client testClassname(body)
+> Client testClassname(client)
+
+To test class name in snake case
 
 To test class name in snake case
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure API key authorization: api_key_query
 var api_key_query = defaultClient.authentications['api_key_query'];
 api_key_query.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key_query.apiKeyPrefix = 'Token';
 
-var apiInstance = new SwaggerPetstore.FakeClassnameTags123Api();
-
-var body = new SwaggerPetstore.Client(); // Client | client model
-
-apiInstance.testClassname(body).then(function(data) {
+var apiInstance = new OpenApiPetstore.FakeClassnameTags123Api();
+var client = new OpenApiPetstore.Client(); // Client | client model
+apiInstance.testClassname(client).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -40,7 +39,7 @@ apiInstance.testClassname(body).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Client**](Client.md)| client model | 
+ **client** | [**Client**](Client.md)| client model | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise/docs/FormatTest.md b/samples/client/petstore/javascript-promise/docs/FormatTest.md
index cb5b11416fa..0f4a8405449 100644
--- a/samples/client/petstore/javascript-promise/docs/FormatTest.md
+++ b/samples/client/petstore/javascript-promise/docs/FormatTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.FormatTest
+# OpenApiPetstore.FormatTest
 
 ## Properties
 Name | Type | Description | Notes
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
 **_double** | **Number** |  | [optional] 
 **_string** | **String** |  | [optional] 
 **_byte** | **Blob** |  | 
-**binary** | **Blob** |  | [optional] 
+**binary** | **File** |  | [optional] 
 **_date** | **Date** |  | 
 **dateTime** | **Date** |  | [optional] 
 **uuid** | **String** |  | [optional] 
diff --git a/samples/client/petstore/javascript-promise/docs/HasOnlyReadOnly.md b/samples/client/petstore/javascript-promise/docs/HasOnlyReadOnly.md
index b9b975fced0..abc4ce62184 100644
--- a/samples/client/petstore/javascript-promise/docs/HasOnlyReadOnly.md
+++ b/samples/client/petstore/javascript-promise/docs/HasOnlyReadOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.HasOnlyReadOnly
+# OpenApiPetstore.HasOnlyReadOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/List.md b/samples/client/petstore/javascript-promise/docs/List.md
index 12166562e89..3a9555e34e0 100644
--- a/samples/client/petstore/javascript-promise/docs/List.md
+++ b/samples/client/petstore/javascript-promise/docs/List.md
@@ -1,8 +1,8 @@
-# SwaggerPetstore.List
+# OpenApiPetstore.List
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**_123List** | **String** |  | [optional] 
+**_123list** | **String** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise/docs/MapTest.md b/samples/client/petstore/javascript-promise/docs/MapTest.md
index 8550252a3f1..4a128da00fd 100644
--- a/samples/client/petstore/javascript-promise/docs/MapTest.md
+++ b/samples/client/petstore/javascript-promise/docs/MapTest.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.MapTest
+# OpenApiPetstore.MapTest
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/javascript-promise/docs/MixedPropertiesAndAdditionalPropertiesClass.md
index 31bf8b314ca..051f771930e 100644
--- a/samples/client/petstore/javascript-promise/docs/MixedPropertiesAndAdditionalPropertiesClass.md
+++ b/samples/client/petstore/javascript-promise/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass
+# OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Model200Response.md b/samples/client/petstore/javascript-promise/docs/Model200Response.md
index f18f963c96d..0a0d02cc32e 100644
--- a/samples/client/petstore/javascript-promise/docs/Model200Response.md
+++ b/samples/client/petstore/javascript-promise/docs/Model200Response.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Model200Response
+# OpenApiPetstore.Model200Response
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/ModelReturn.md b/samples/client/petstore/javascript-promise/docs/ModelReturn.md
index b602b39b0c5..9ce6e203878 100644
--- a/samples/client/petstore/javascript-promise/docs/ModelReturn.md
+++ b/samples/client/petstore/javascript-promise/docs/ModelReturn.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ModelReturn
+# OpenApiPetstore.ModelReturn
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Name.md b/samples/client/petstore/javascript-promise/docs/Name.md
index 51dad9ca578..8dfcc460361 100644
--- a/samples/client/petstore/javascript-promise/docs/Name.md
+++ b/samples/client/petstore/javascript-promise/docs/Name.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Name
+# OpenApiPetstore.Name
 
 ## Properties
 Name | Type | Description | Notes
@@ -6,6 +6,6 @@ Name | Type | Description | Notes
 **name** | **Number** |  | 
 **snakeCase** | **Number** |  | [optional] 
 **property** | **String** |  | [optional] 
-**_123Number** | **Number** |  | [optional] 
+**_123number** | **Number** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise/docs/NumberOnly.md b/samples/client/petstore/javascript-promise/docs/NumberOnly.md
index f7bf0abd425..cf84674ed4e 100644
--- a/samples/client/petstore/javascript-promise/docs/NumberOnly.md
+++ b/samples/client/petstore/javascript-promise/docs/NumberOnly.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.NumberOnly
+# OpenApiPetstore.NumberOnly
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/Order.md b/samples/client/petstore/javascript-promise/docs/Order.md
index 6dc0b19cd25..987992caa70 100644
--- a/samples/client/petstore/javascript-promise/docs/Order.md
+++ b/samples/client/petstore/javascript-promise/docs/Order.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Order
+# OpenApiPetstore.Order
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/OuterComposite.md b/samples/client/petstore/javascript-promise/docs/OuterComposite.md
index e4cb57f35af..c49b32ff329 100644
--- a/samples/client/petstore/javascript-promise/docs/OuterComposite.md
+++ b/samples/client/petstore/javascript-promise/docs/OuterComposite.md
@@ -1,10 +1,10 @@
-# SwaggerPetstore.OuterComposite
+# OpenApiPetstore.OuterComposite
 
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**myNumber** | [**OuterNumber**](OuterNumber.md) |  | [optional] 
-**myString** | [**OuterString**](OuterString.md) |  | [optional] 
-**myBoolean** | [**OuterBoolean**](OuterBoolean.md) |  | [optional] 
+**myNumber** | **Number** |  | [optional] 
+**myString** | **String** |  | [optional] 
+**myBoolean** | **Boolean** |  | [optional] 
 
 
diff --git a/samples/client/petstore/javascript-promise/docs/OuterEnum.md b/samples/client/petstore/javascript-promise/docs/OuterEnum.md
index 4caf04ae09d..445d3f4074c 100644
--- a/samples/client/petstore/javascript-promise/docs/OuterEnum.md
+++ b/samples/client/petstore/javascript-promise/docs/OuterEnum.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.OuterEnum
+# OpenApiPetstore.OuterEnum
 
 ## Enum
 
diff --git a/samples/client/petstore/javascript-promise/docs/Pet.md b/samples/client/petstore/javascript-promise/docs/Pet.md
index cae89de06d4..e91ae688aad 100644
--- a/samples/client/petstore/javascript-promise/docs/Pet.md
+++ b/samples/client/petstore/javascript-promise/docs/Pet.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Pet
+# OpenApiPetstore.Pet
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/PetApi.md b/samples/client/petstore/javascript-promise/docs/PetApi.md
index 8b88dab5f5c..28469bc95a1 100644
--- a/samples/client/petstore/javascript-promise/docs/PetApi.md
+++ b/samples/client/petstore/javascript-promise/docs/PetApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.PetApi
+# OpenApiPetstore.PetApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -16,26 +16,21 @@ Method | HTTP request | Description
 
 
 # **addPet**
-> addPet(body)
+> addPet(pet)
 
 Add a new pet to the store
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
-var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store
-
-apiInstance.addPet(body).then(function() {
+var apiInstance = new OpenApiPetstore.PetApi();
+var pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+apiInstance.addPet(pet).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -47,7 +42,7 @@ apiInstance.addPet(body).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -60,7 +55,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/json, application/xml
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **deletePet**
@@ -68,22 +63,17 @@ null (empty response body)
 
 Deletes a pet
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
+var apiInstance = new OpenApiPetstore.PetApi();
 var petId = 789; // Number | Pet id to delete
-
-var opts = { 
+var opts = {
   'apiKey': "apiKey_example" // String | 
 };
 apiInstance.deletePet(petId, opts).then(function() {
@@ -112,7 +102,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **findPetsByStatus**
@@ -124,17 +114,14 @@ Multiple status values can be provided with comma separated strings
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
-var status = ["status_example"]; // [String] | Status values that need to be considered for filter
-
+var apiInstance = new OpenApiPetstore.PetApi();
+var status = ["'available'"]; // [String] | Status values that need to be considered for filter
 apiInstance.findPetsByStatus(status).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -172,17 +159,14 @@ Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
-var tags = ["tags_example"]; // [String] | Tags to filter by
-
+var apiInstance = new OpenApiPetstore.PetApi();
+var tags = ["inner_example"]; // [String] | Tags to filter by
 apiInstance.findPetsByTags(tags).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -220,19 +204,16 @@ Returns a single pet
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure API key authorization: api_key
 var api_key = defaultClient.authentications['api_key'];
 api_key.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key.apiKeyPrefix = 'Token';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
+var apiInstance = new OpenApiPetstore.PetApi();
 var petId = 789; // Number | ID of pet to return
-
 apiInstance.getPetById(petId).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -262,26 +243,21 @@ Name | Type | Description  | Notes
 
 
 # **updatePet**
-> updatePet(body)
+> updatePet(pet)
 
 Update an existing pet
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
-var body = new SwaggerPetstore.Pet(); // Pet | Pet object that needs to be added to the store
-
-apiInstance.updatePet(body).then(function() {
+var apiInstance = new OpenApiPetstore.PetApi();
+var pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+apiInstance.updatePet(pet).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -293,7 +269,7 @@ apiInstance.updatePet(body).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
 
 ### Return type
 
@@ -306,7 +282,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/json, application/xml
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **updatePetWithForm**
@@ -314,22 +290,17 @@ null (empty response body)
 
 Updates a pet in the store with form data
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
+var apiInstance = new OpenApiPetstore.PetApi();
 var petId = 789; // Number | ID of pet that needs to be updated
-
-var opts = { 
+var opts = {
   'name': "name_example", // String | Updated name of the pet
   'status': "status_example" // String | Updated status of the pet
 };
@@ -360,7 +331,7 @@ null (empty response body)
 ### HTTP request headers
 
  - **Content-Type**: application/x-www-form-urlencoded
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **uploadFile**
@@ -368,24 +339,19 @@ null (empty response body)
 
 uploads an image
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure OAuth2 access token for authorization: petstore_auth
 var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
 
-var apiInstance = new SwaggerPetstore.PetApi();
-
+var apiInstance = new OpenApiPetstore.PetApi();
 var petId = 789; // Number | ID of pet to update
-
-var opts = { 
+var opts = {
   'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server
-  'file': "/path/to/file.txt" // File | file to upload
+  'file': "/path/to/file" // File | file to upload
 };
 apiInstance.uploadFile(petId, opts).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
diff --git a/samples/client/petstore/javascript-promise/docs/ReadOnlyFirst.md b/samples/client/petstore/javascript-promise/docs/ReadOnlyFirst.md
index 5a16f8acce0..671280fba33 100644
--- a/samples/client/petstore/javascript-promise/docs/ReadOnlyFirst.md
+++ b/samples/client/petstore/javascript-promise/docs/ReadOnlyFirst.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.ReadOnlyFirst
+# OpenApiPetstore.ReadOnlyFirst
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/SpecialModelName.md b/samples/client/petstore/javascript-promise/docs/SpecialModelName.md
index a204af143a5..6039f53de36 100644
--- a/samples/client/petstore/javascript-promise/docs/SpecialModelName.md
+++ b/samples/client/petstore/javascript-promise/docs/SpecialModelName.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.SpecialModelName
+# OpenApiPetstore.SpecialModelName
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/StoreApi.md b/samples/client/petstore/javascript-promise/docs/StoreApi.md
index e0771378536..26255c93456 100644
--- a/samples/client/petstore/javascript-promise/docs/StoreApi.md
+++ b/samples/client/petstore/javascript-promise/docs/StoreApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.StoreApi
+# OpenApiPetstore.StoreApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -20,12 +20,10 @@ For valid response try integer IDs with value < 1000. Anything above 1000 or
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.StoreApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.StoreApi();
 var orderId = "orderId_example"; // String | ID of the order that needs to be deleted
-
 apiInstance.deleteOrder(orderId).then(function() {
   console.log('API called successfully.');
 }, function(error) {
@@ -51,11 +49,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **getInventory**
-> {'String': 'Number'} getInventory()
+> {String: Number} getInventory()
 
 Returns pet inventories by status
 
@@ -63,16 +61,15 @@ Returns a map of status codes to quantities
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-var defaultClient = SwaggerPetstore.ApiClient.instance;
-
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
 // Configure API key authorization: api_key
 var api_key = defaultClient.authentications['api_key'];
 api_key.apiKey = 'YOUR API KEY';
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //api_key.apiKeyPrefix = 'Token';
 
-var apiInstance = new SwaggerPetstore.StoreApi();
+var apiInstance = new OpenApiPetstore.StoreApi();
 apiInstance.getInventory().then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -86,7 +83,7 @@ This endpoint does not need any parameter.
 
 ### Return type
 
-**{'String': 'Number'}**
+**{String: Number}**
 
 ### Authorization
 
@@ -107,12 +104,10 @@ For valid response try integer IDs with value <= 5 or > 10. Other val
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.StoreApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.StoreApi();
 var orderId = 789; // Number | ID of pet that needs to be fetched
-
 apiInstance.getOrderById(orderId).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -142,21 +137,17 @@ No authorization required
 
 
 # **placeOrder**
-> Order placeOrder(body)
+> Order placeOrder(order)
 
 Place an order for a pet
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.StoreApi();
-
-var body = new SwaggerPetstore.Order(); // Order | order placed for purchasing the pet
-
-apiInstance.placeOrder(body).then(function(data) {
+var apiInstance = new OpenApiPetstore.StoreApi();
+var order = new OpenApiPetstore.Order(); // Order | order placed for purchasing the pet
+apiInstance.placeOrder(order).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
   console.error(error);
@@ -168,7 +159,7 @@ apiInstance.placeOrder(body).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**Order**](Order.md)| order placed for purchasing the pet | 
+ **order** | [**Order**](Order.md)| order placed for purchasing the pet | 
 
 ### Return type
 
diff --git a/samples/client/petstore/javascript-promise/docs/Tag.md b/samples/client/petstore/javascript-promise/docs/Tag.md
index c0277cae8ff..a53941e80e0 100644
--- a/samples/client/petstore/javascript-promise/docs/Tag.md
+++ b/samples/client/petstore/javascript-promise/docs/Tag.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.Tag
+# OpenApiPetstore.Tag
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/User.md b/samples/client/petstore/javascript-promise/docs/User.md
index 2cac604cfa0..2e86dd378bf 100644
--- a/samples/client/petstore/javascript-promise/docs/User.md
+++ b/samples/client/petstore/javascript-promise/docs/User.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.User
+# OpenApiPetstore.User
 
 ## Properties
 Name | Type | Description | Notes
diff --git a/samples/client/petstore/javascript-promise/docs/UserApi.md b/samples/client/petstore/javascript-promise/docs/UserApi.md
index 3102a61d648..3439dda5cd3 100644
--- a/samples/client/petstore/javascript-promise/docs/UserApi.md
+++ b/samples/client/petstore/javascript-promise/docs/UserApi.md
@@ -1,4 +1,4 @@
-# SwaggerPetstore.UserApi
+# OpenApiPetstore.UserApi
 
 All URIs are relative to *http://petstore.swagger.io:80/v2*
 
@@ -16,7 +16,7 @@ Method | HTTP request | Description
 
 
 # **createUser**
-> createUser(body)
+> createUser(user)
 
 Create user
 
@@ -24,13 +24,11 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.UserApi();
-
-var body = new SwaggerPetstore.User(); // User | Created user object
-
-apiInstance.createUser(body).then(function() {
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = new OpenApiPetstore.User(); // User | Created user object
+apiInstance.createUser(user).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -42,7 +40,7 @@ apiInstance.createUser(body).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**User**](User.md)| Created user object | 
+ **user** | [**User**](User.md)| Created user object | 
 
 ### Return type
 
@@ -55,25 +53,21 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **createUsersWithArrayInput**
-> createUsersWithArrayInput(body)
+> createUsersWithArrayInput(user)
 
 Creates list of users with given input array
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.UserApi();
-
-var body = [new SwaggerPetstore.User()]; // [User] | List of user object
-
-apiInstance.createUsersWithArrayInput(body).then(function() {
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = [new OpenApiPetstore.User()]; // [User] | List of user object
+apiInstance.createUsersWithArrayInput(user).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -85,7 +79,7 @@ apiInstance.createUsersWithArrayInput(body).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**[User]**](User.md)| List of user object | 
+ **user** | [**[User]**](Array.md)| List of user object | 
 
 ### Return type
 
@@ -98,25 +92,21 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **createUsersWithListInput**
-> createUsersWithListInput(body)
+> createUsersWithListInput(user)
 
 Creates list of users with given input array
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.UserApi();
-
-var body = [new SwaggerPetstore.User()]; // [User] | List of user object
-
-apiInstance.createUsersWithListInput(body).then(function() {
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = [new OpenApiPetstore.User()]; // [User] | List of user object
+apiInstance.createUsersWithListInput(user).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -128,7 +118,7 @@ apiInstance.createUsersWithListInput(body).then(function() {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **body** | [**[User]**](User.md)| List of user object | 
+ **user** | [**[User]**](Array.md)| List of user object | 
 
 ### Return type
 
@@ -141,7 +131,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **deleteUser**
@@ -153,12 +143,10 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.UserApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.UserApi();
 var username = "username_example"; // String | The name that needs to be deleted
-
 apiInstance.deleteUser(username).then(function() {
   console.log('API called successfully.');
 }, function(error) {
@@ -184,7 +172,7 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **getUserByName**
@@ -192,16 +180,12 @@ No authorization required
 
 Get user by user name
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.UserApi();
-
-var username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing. 
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.UserApi();
+var username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing.
 apiInstance.getUserByName(username).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -214,7 +198,7 @@ apiInstance.getUserByName(username).then(function(data) {
 
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
- **username** | **String**| The name that needs to be fetched. Use user1 for testing.  | 
+ **username** | **String**| The name that needs to be fetched. Use user1 for testing. | 
 
 ### Return type
 
@@ -231,22 +215,17 @@ No authorization required
 
 
 # **loginUser**
-> 'String' loginUser(username, password)
+> String loginUser(username, password)
 
 Logs user into the system
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.UserApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.UserApi();
 var username = "username_example"; // String | The user name for login
-
 var password = "password_example"; // String | The password for login in clear text
-
 apiInstance.loginUser(username, password).then(function(data) {
   console.log('API called successfully. Returned data: ' + data);
 }, function(error) {
@@ -264,7 +243,7 @@ Name | Type | Description  | Notes
 
 ### Return type
 
-**'String'**
+**String**
 
 ### Authorization
 
@@ -281,13 +260,11 @@ No authorization required
 
 Logs out current logged in user session
 
-
-
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
+var OpenApiPetstore = require('open_api_petstore');
 
-var apiInstance = new SwaggerPetstore.UserApi();
+var apiInstance = new OpenApiPetstore.UserApi();
 apiInstance.logoutUser().then(function() {
   console.log('API called successfully.');
 }, function(error) {
@@ -310,11 +287,11 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
 
 # **updateUser**
-> updateUser(username, body)
+> updateUser(username, user)
 
 Updated user
 
@@ -322,15 +299,12 @@ This can only be done by the logged in user.
 
 ### Example
 ```javascript
-var SwaggerPetstore = require('swagger_petstore');
-
-var apiInstance = new SwaggerPetstore.UserApi();
+var OpenApiPetstore = require('open_api_petstore');
 
+var apiInstance = new OpenApiPetstore.UserApi();
 var username = "username_example"; // String | name that need to be deleted
-
-var body = new SwaggerPetstore.User(); // User | Updated user object
-
-apiInstance.updateUser(username, body).then(function() {
+var user = new OpenApiPetstore.User(); // User | Updated user object
+apiInstance.updateUser(username, user).then(function() {
   console.log('API called successfully.');
 }, function(error) {
   console.error(error);
@@ -343,7 +317,7 @@ apiInstance.updateUser(username, body).then(function() {
 Name | Type | Description  | Notes
 ------------- | ------------- | ------------- | -------------
  **username** | **String**| name that need to be deleted | 
- **body** | [**User**](User.md)| Updated user object | 
+ **user** | [**User**](User.md)| Updated user object | 
 
 ### Return type
 
@@ -356,5 +330,5 @@ No authorization required
 ### HTTP request headers
 
  - **Content-Type**: Not defined
- - **Accept**: application/xml, application/json
+ - **Accept**: Not defined
 
diff --git a/samples/client/petstore/javascript-promise/git_push.sh b/samples/client/petstore/javascript-promise/git_push.sh
index 0d041ad0ba4..04dd5df38e8 100644
--- a/samples/client/petstore/javascript-promise/git_push.sh
+++ b/samples/client/petstore/javascript-promise/git_push.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
 #
-# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
 
 git_user_id=$1
 git_repo_id=$2
diff --git a/samples/client/petstore/javascript-promise/package.json b/samples/client/petstore/javascript-promise/package.json
index e9678cd1878..6cee1971957 100644
--- a/samples/client/petstore/javascript-promise/package.json
+++ b/samples/client/petstore/javascript-promise/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "swagger_petstore",
+  "name": "open_api_petstore",
   "version": "1.0.0",
   "description": "This_spec_is_mainly_for_testing_Petstore_server_and_contains_fake_endpoints_models__Please_do_not_use_this_for_any_other_purpose__Special_characters__",
   "license": "Apache-2.0",
diff --git a/samples/client/petstore/javascript-promise/src/ApiClient.js b/samples/client/petstore/javascript-promise/src/ApiClient.js
index 691f409db9e..435175dc8d6 100644
--- a/samples/client/petstore/javascript-promise/src/ApiClient.js
+++ b/samples/client/petstore/javascript-promise/src/ApiClient.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('superagent'), require('querystring'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ApiClient = factory(root.superagent, root.querystring);
+    root.OpenApiPetstore.ApiClient = factory(root.superagent, root.querystring);
   }
 }(this, function(superagent, querystring) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/api/AnotherFakeApi.js b/samples/client/petstore/javascript-promise/src/api/AnotherFakeApi.js
index eabb53763c2..7821ec7a222 100644
--- a/samples/client/petstore/javascript-promise/src/api/AnotherFakeApi.js
+++ b/samples/client/petstore/javascript-promise/src/api/AnotherFakeApi.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('../model/Client'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.AnotherFakeApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Client);
+    root.OpenApiPetstore.AnotherFakeApi = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Client);
   }
 }(this, function(ApiClient, Client) {
   'use strict';
@@ -52,15 +51,15 @@
     /**
      * To test special tags
      * To test special tags
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    this.testSpecialTagsWithHttpInfo = function(body) {
-      var postBody = body;
+    this.testSpecialTagsWithHttpInfo = function(client) {
+      var postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testSpecialTags");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testSpecialTags");
       }
 
 
@@ -90,11 +89,11 @@
     /**
      * To test special tags
      * To test special tags
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    this.testSpecialTags = function(body) {
-      return this.testSpecialTagsWithHttpInfo(body)
+    this.testSpecialTags = function(client) {
+      return this.testSpecialTagsWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise/src/api/FakeApi.js b/samples/client/petstore/javascript-promise/src/api/FakeApi.js
index 0f06c046e0e..7144e267fde 100644
--- a/samples/client/petstore/javascript-promise/src/api/FakeApi.js
+++ b/samples/client/petstore/javascript-promise/src/api/FakeApi.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -17,18 +16,18 @@
 (function(root, factory) {
   if (typeof define === 'function' && define.amd) {
     // AMD. Register as an anonymous module.
-    define(['ApiClient', 'model/Client', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterNumber', 'model/OuterString'], factory);
+    define(['ApiClient', 'model/Client', 'model/OuterComposite', 'model/User'], factory);
   } else if (typeof module === 'object' && module.exports) {
     // CommonJS-like environments that support module.exports, like Node.
-    module.exports = factory(require('../ApiClient'), require('../model/Client'), require('../model/OuterBoolean'), require('../model/OuterComposite'), require('../model/OuterNumber'), require('../model/OuterString'));
+    module.exports = factory(require('../ApiClient'), require('../model/Client'), require('../model/OuterComposite'), require('../model/User'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.FakeApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Client, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterComposite, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString);
+    root.OpenApiPetstore.FakeApi = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Client, root.OpenApiPetstore.OuterComposite, root.OpenApiPetstore.User);
   }
-}(this, function(ApiClient, Client, OuterBoolean, OuterComposite, OuterNumber, OuterString) {
+}(this, function(ApiClient, Client, OuterComposite, User) {
   'use strict';
 
   /**
@@ -52,8 +51,8 @@
     /**
      * Test serialization of outer boolean types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterBoolean} opts.body Input boolean as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterBoolean} and HTTP response
+     * @param {Boolean} opts.body Input boolean as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Boolean} and HTTP response
      */
     this.fakeOuterBooleanSerializeWithHttpInfo = function(opts) {
       opts = opts || {};
@@ -73,8 +72,8 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = [];
-      var returnType = OuterBoolean;
+      var accepts = ['*/*'];
+      var returnType = Boolean;
 
       return this.apiClient.callApi(
         '/fake/outer/boolean', 'POST',
@@ -86,8 +85,8 @@
     /**
      * Test serialization of outer boolean types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterBoolean} opts.body Input boolean as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterBoolean}
+     * @param {Boolean} opts.body Input boolean as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Boolean}
      */
     this.fakeOuterBooleanSerialize = function(opts) {
       return this.fakeOuterBooleanSerializeWithHttpInfo(opts)
@@ -100,12 +99,12 @@
     /**
      * Test serialization of object with outer number type
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterComposite} opts.body Input composite as post body
+     * @param {module:model/OuterComposite} opts.outerComposite Input composite as post body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterComposite} and HTTP response
      */
     this.fakeOuterCompositeSerializeWithHttpInfo = function(opts) {
       opts = opts || {};
-      var postBody = opts['body'];
+      var postBody = opts['outerComposite'];
 
 
       var pathParams = {
@@ -121,7 +120,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = [];
+      var accepts = ['*/*'];
       var returnType = OuterComposite;
 
       return this.apiClient.callApi(
@@ -134,7 +133,7 @@
     /**
      * Test serialization of object with outer number type
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterComposite} opts.body Input composite as post body
+     * @param {module:model/OuterComposite} opts.outerComposite Input composite as post body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterComposite}
      */
     this.fakeOuterCompositeSerialize = function(opts) {
@@ -148,8 +147,8 @@
     /**
      * Test serialization of outer number types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterNumber} opts.body Input number as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterNumber} and HTTP response
+     * @param {Number} opts.body Input number as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Number} and HTTP response
      */
     this.fakeOuterNumberSerializeWithHttpInfo = function(opts) {
       opts = opts || {};
@@ -169,8 +168,8 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = [];
-      var returnType = OuterNumber;
+      var accepts = ['*/*'];
+      var returnType = Number;
 
       return this.apiClient.callApi(
         '/fake/outer/number', 'POST',
@@ -182,8 +181,8 @@
     /**
      * Test serialization of outer number types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterNumber} opts.body Input number as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterNumber}
+     * @param {Number} opts.body Input number as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Number}
      */
     this.fakeOuterNumberSerialize = function(opts) {
       return this.fakeOuterNumberSerializeWithHttpInfo(opts)
@@ -196,8 +195,8 @@
     /**
      * Test serialization of outer string types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterString} opts.body Input string as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/OuterString} and HTTP response
+     * @param {String} opts.body Input string as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link String} and HTTP response
      */
     this.fakeOuterStringSerializeWithHttpInfo = function(opts) {
       opts = opts || {};
@@ -217,8 +216,8 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = [];
-      var returnType = OuterString;
+      var accepts = ['*/*'];
+      var returnType = String;
 
       return this.apiClient.callApi(
         '/fake/outer/string', 'POST',
@@ -230,8 +229,8 @@
     /**
      * Test serialization of outer string types
      * @param {Object} opts Optional parameters
-     * @param {module:model/OuterString} opts.body Input string as post body
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/OuterString}
+     * @param {String} opts.body Input string as post body
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link String}
      */
     this.fakeOuterStringSerialize = function(opts) {
       return this.fakeOuterStringSerializeWithHttpInfo(opts)
@@ -241,18 +240,74 @@
     }
 
 
+    /**
+     * @param {String} query 
+     * @param {module:model/User} user 
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
+     */
+    this.testBodyWithQueryParamsWithHttpInfo = function(query, user) {
+      var postBody = user;
+
+      // verify the required parameter 'query' is set
+      if (query === undefined || query === null) {
+        throw new Error("Missing the required parameter 'query' when calling testBodyWithQueryParams");
+      }
+
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling testBodyWithQueryParams");
+      }
+
+
+      var pathParams = {
+      };
+      var queryParams = {
+        'query': query,
+      };
+      var collectionQueryParams = {
+      };
+      var headerParams = {
+      };
+      var formParams = {
+      };
+
+      var authNames = [];
+      var contentTypes = ['application/json'];
+      var accepts = [];
+      var returnType = null;
+
+      return this.apiClient.callApi(
+        '/fake/body-with-query-params', 'PUT',
+        pathParams, queryParams, collectionQueryParams, headerParams, formParams, postBody,
+        authNames, contentTypes, accepts, returnType
+      );
+    }
+
+    /**
+     * @param {String} query 
+     * @param {module:model/User} user 
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}
+     */
+    this.testBodyWithQueryParams = function(query, user) {
+      return this.testBodyWithQueryParamsWithHttpInfo(query, user)
+        .then(function(response_and_data) {
+          return response_and_data.data;
+        });
+    }
+
+
     /**
      * To test \"client\" model
      * To test \"client\" model
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    this.testClientModelWithHttpInfo = function(body) {
-      var postBody = body;
+    this.testClientModelWithHttpInfo = function(client) {
+      var postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testClientModel");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testClientModel");
       }
 
 
@@ -282,11 +337,11 @@
     /**
      * To test \"client\" model
      * To test \"client\" model
-     * @param {module:model/Client} body client model
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    this.testClientModel = function(body) {
-      return this.testClientModelWithHttpInfo(body)
+    this.testClientModel = function(client) {
+      return this.testClientModelWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -306,7 +361,7 @@
      * @param {Number} opts.int64 None
      * @param {Number} opts._float None
      * @param {String} opts._string None
-     * @param {Blob} opts.binary None
+     * @param {File} opts.binary None
      * @param {Date} opts._date None
      * @param {Date} opts.dateTime None
      * @param {String} opts.password None
@@ -364,8 +419,8 @@
       };
 
       var authNames = ['http_basic_test'];
-      var contentTypes = ['application/xml; charset=utf-8', 'application/json; charset=utf-8'];
-      var accepts = ['application/xml; charset=utf-8', 'application/json; charset=utf-8'];
+      var contentTypes = ['application/x-www-form-urlencoded'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -388,7 +443,7 @@
      * @param {Number} opts.int64 None
      * @param {Number} opts._float None
      * @param {String} opts._string None
-     * @param {Blob} opts.binary None
+     * @param {File} opts.binary None
      * @param {Date} opts._date None
      * @param {Date} opts.dateTime None
      * @param {String} opts.password None
@@ -407,14 +462,14 @@
      * To test enum parameters
      * To test enum parameters
      * @param {Object} opts Optional parameters
-     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array)
-     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to -efg)
      * @param {Array.} opts.enumHeaderStringArray Header parameter enum test (string array)
-     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to '-efg')
      * @param {Array.} opts.enumQueryStringArray Query parameter enum test (string array)
-     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to '-efg')
      * @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
      * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double)
+     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) (default to '$')
+     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to '-efg')
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
     this.testEnumParametersWithHttpInfo = function(opts) {
@@ -427,6 +482,7 @@
       var queryParams = {
         'enum_query_string': opts['enumQueryString'],
         'enum_query_integer': opts['enumQueryInteger'],
+        'enum_query_double': opts['enumQueryDouble'],
       };
       var collectionQueryParams = {
         'enum_query_string_array': {
@@ -440,13 +496,12 @@
       };
       var formParams = {
         'enum_form_string_array': this.apiClient.buildCollectionParam(opts['enumFormStringArray'], 'csv'),
-        'enum_form_string': opts['enumFormString'],
-        'enum_query_double': opts['enumQueryDouble']
+        'enum_form_string': opts['enumFormString']
       };
 
       var authNames = [];
-      var contentTypes = ['*/*'];
-      var accepts = ['*/*'];
+      var contentTypes = ['application/x-www-form-urlencoded'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -460,14 +515,14 @@
      * To test enum parameters
      * To test enum parameters
      * @param {Object} opts Optional parameters
-     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array)
-     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to -efg)
      * @param {Array.} opts.enumHeaderStringArray Header parameter enum test (string array)
-     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumHeaderString Header parameter enum test (string) (default to '-efg')
      * @param {Array.} opts.enumQueryStringArray Query parameter enum test (string array)
-     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to -efg)
+     * @param {module:model/String} opts.enumQueryString Query parameter enum test (string) (default to '-efg')
      * @param {module:model/Number} opts.enumQueryInteger Query parameter enum test (double)
      * @param {module:model/Number} opts.enumQueryDouble Query parameter enum test (double)
+     * @param {Array.} opts.enumFormStringArray Form parameter enum test (string array) (default to '$')
+     * @param {module:model/String} opts.enumFormString Form parameter enum test (string) (default to '-efg')
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
     this.testEnumParameters = function(opts) {
@@ -480,16 +535,15 @@
 
     /**
      * test inline additionalProperties
-     * 
-     * @param {Object} param request body
+     * @param {Object.} requestBody request body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.testInlineAdditionalPropertiesWithHttpInfo = function(param) {
-      var postBody = param;
+    this.testInlineAdditionalPropertiesWithHttpInfo = function(requestBody) {
+      var postBody = requestBody;
 
-      // verify the required parameter 'param' is set
-      if (param === undefined || param === null) {
-        throw new Error("Missing the required parameter 'param' when calling testInlineAdditionalProperties");
+      // verify the required parameter 'requestBody' is set
+      if (requestBody === undefined || requestBody === null) {
+        throw new Error("Missing the required parameter 'requestBody' when calling testInlineAdditionalProperties");
       }
 
 
@@ -518,12 +572,11 @@
 
     /**
      * test inline additionalProperties
-     * 
-     * @param {Object} param request body
+     * @param {Object.} requestBody request body
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.testInlineAdditionalProperties = function(param) {
-      return this.testInlineAdditionalPropertiesWithHttpInfo(param)
+    this.testInlineAdditionalProperties = function(requestBody) {
+      return this.testInlineAdditionalPropertiesWithHttpInfo(requestBody)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -532,7 +585,6 @@
 
     /**
      * test json serialization of form data
-     * 
      * @param {String} param field1
      * @param {String} param2 field2
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
@@ -565,7 +617,7 @@
       };
 
       var authNames = [];
-      var contentTypes = ['application/json'];
+      var contentTypes = ['application/x-www-form-urlencoded'];
       var accepts = [];
       var returnType = null;
 
@@ -578,7 +630,6 @@
 
     /**
      * test json serialization of form data
-     * 
      * @param {String} param field1
      * @param {String} param2 field2
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
diff --git a/samples/client/petstore/javascript-promise/src/api/FakeClassnameTags123Api.js b/samples/client/petstore/javascript-promise/src/api/FakeClassnameTags123Api.js
index fdae9bbaebd..7293a03fe8e 100644
--- a/samples/client/petstore/javascript-promise/src/api/FakeClassnameTags123Api.js
+++ b/samples/client/petstore/javascript-promise/src/api/FakeClassnameTags123Api.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('../model/Client'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.FakeClassnameTags123Api = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Client);
+    root.OpenApiPetstore.FakeClassnameTags123Api = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Client);
   }
 }(this, function(ApiClient, Client) {
   'use strict';
@@ -51,15 +50,16 @@
 
     /**
      * To test class name in snake case
-     * @param {module:model/Client} body client model
+     * To test class name in snake case
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Client} and HTTP response
      */
-    this.testClassnameWithHttpInfo = function(body) {
-      var postBody = body;
+    this.testClassnameWithHttpInfo = function(client) {
+      var postBody = client;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling testClassname");
+      // verify the required parameter 'client' is set
+      if (client === undefined || client === null) {
+        throw new Error("Missing the required parameter 'client' when calling testClassname");
       }
 
 
@@ -88,11 +88,12 @@
 
     /**
      * To test class name in snake case
-     * @param {module:model/Client} body client model
+     * To test class name in snake case
+     * @param {module:model/Client} client client model
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Client}
      */
-    this.testClassname = function(body) {
-      return this.testClassnameWithHttpInfo(body)
+    this.testClassname = function(client) {
+      return this.testClassnameWithHttpInfo(client)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise/src/api/PetApi.js b/samples/client/petstore/javascript-promise/src/api/PetApi.js
index 655f36436fb..68d7bd7e102 100644
--- a/samples/client/petstore/javascript-promise/src/api/PetApi.js
+++ b/samples/client/petstore/javascript-promise/src/api/PetApi.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('../model/ApiResponse'), require('../model/Pet'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.PetApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ApiResponse, root.SwaggerPetstore.Pet);
+    root.OpenApiPetstore.PetApi = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.ApiResponse, root.OpenApiPetstore.Pet);
   }
 }(this, function(ApiClient, ApiResponse, Pet) {
   'use strict';
@@ -51,16 +50,15 @@
 
     /**
      * Add a new pet to the store
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.addPetWithHttpInfo = function(body) {
-      var postBody = body;
+    this.addPetWithHttpInfo = function(pet) {
+      var postBody = pet;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling addPet");
+      // verify the required parameter 'pet' is set
+      if (pet === undefined || pet === null) {
+        throw new Error("Missing the required parameter 'pet' when calling addPet");
       }
 
 
@@ -77,7 +75,7 @@
 
       var authNames = ['petstore_auth'];
       var contentTypes = ['application/json', 'application/xml'];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -89,12 +87,11 @@
 
     /**
      * Add a new pet to the store
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.addPet = function(body) {
-      return this.addPetWithHttpInfo(body)
+    this.addPet = function(pet) {
+      return this.addPetWithHttpInfo(pet)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -103,7 +100,6 @@
 
     /**
      * Deletes a pet
-     * 
      * @param {Number} petId Pet id to delete
      * @param {Object} opts Optional parameters
      * @param {String} opts.apiKey 
@@ -134,7 +130,7 @@
 
       var authNames = ['petstore_auth'];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -146,7 +142,6 @@
 
     /**
      * Deletes a pet
-     * 
      * @param {Number} petId Pet id to delete
      * @param {Object} opts Optional parameters
      * @param {String} opts.apiKey 
@@ -327,16 +322,15 @@
 
     /**
      * Update an existing pet
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.updatePetWithHttpInfo = function(body) {
-      var postBody = body;
+    this.updatePetWithHttpInfo = function(pet) {
+      var postBody = pet;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling updatePet");
+      // verify the required parameter 'pet' is set
+      if (pet === undefined || pet === null) {
+        throw new Error("Missing the required parameter 'pet' when calling updatePet");
       }
 
 
@@ -353,7 +347,7 @@
 
       var authNames = ['petstore_auth'];
       var contentTypes = ['application/json', 'application/xml'];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -365,12 +359,11 @@
 
     /**
      * Update an existing pet
-     * 
-     * @param {module:model/Pet} body Pet object that needs to be added to the store
+     * @param {module:model/Pet} pet Pet object that needs to be added to the store
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.updatePet = function(body) {
-      return this.updatePetWithHttpInfo(body)
+    this.updatePet = function(pet) {
+      return this.updatePetWithHttpInfo(pet)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -379,7 +372,6 @@
 
     /**
      * Updates a pet in the store with form data
-     * 
      * @param {Number} petId ID of pet that needs to be updated
      * @param {Object} opts Optional parameters
      * @param {String} opts.name Updated name of the pet
@@ -412,7 +404,7 @@
 
       var authNames = ['petstore_auth'];
       var contentTypes = ['application/x-www-form-urlencoded'];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -424,7 +416,6 @@
 
     /**
      * Updates a pet in the store with form data
-     * 
      * @param {Number} petId ID of pet that needs to be updated
      * @param {Object} opts Optional parameters
      * @param {String} opts.name Updated name of the pet
@@ -441,7 +432,6 @@
 
     /**
      * uploads an image
-     * 
      * @param {Number} petId ID of pet to update
      * @param {Object} opts Optional parameters
      * @param {String} opts.additionalMetadata Additional data to pass to server
@@ -486,7 +476,6 @@
 
     /**
      * uploads an image
-     * 
      * @param {Number} petId ID of pet to update
      * @param {Object} opts Optional parameters
      * @param {String} opts.additionalMetadata Additional data to pass to server
diff --git a/samples/client/petstore/javascript-promise/src/api/StoreApi.js b/samples/client/petstore/javascript-promise/src/api/StoreApi.js
index dc39ad33499..08268a9849c 100644
--- a/samples/client/petstore/javascript-promise/src/api/StoreApi.js
+++ b/samples/client/petstore/javascript-promise/src/api/StoreApi.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('../model/Order'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.StoreApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Order);
+    root.OpenApiPetstore.StoreApi = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Order);
   }
 }(this, function(ApiClient, Order) {
   'use strict';
@@ -78,7 +77,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -105,7 +104,7 @@
     /**
      * Returns pet inventories by status
      * Returns a map of status codes to quantities
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Object.} and HTTP response
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link Object.} and HTTP response
      */
     this.getInventoryWithHttpInfo = function() {
       var postBody = null;
@@ -125,7 +124,7 @@
       var authNames = ['api_key'];
       var contentTypes = [];
       var accepts = ['application/json'];
-      var returnType = {'String': 'Number'};
+      var returnType = {String: Number};
 
       return this.apiClient.callApi(
         '/store/inventory', 'GET',
@@ -137,7 +136,7 @@
     /**
      * Returns pet inventories by status
      * Returns a map of status codes to quantities
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Object.}
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link Object.}
      */
     this.getInventory = function() {
       return this.getInventoryWithHttpInfo()
@@ -202,16 +201,15 @@
 
     /**
      * Place an order for a pet
-     * 
-     * @param {module:model/Order} body order placed for purchasing the pet
+     * @param {module:model/Order} order order placed for purchasing the pet
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/Order} and HTTP response
      */
-    this.placeOrderWithHttpInfo = function(body) {
-      var postBody = body;
+    this.placeOrderWithHttpInfo = function(order) {
+      var postBody = order;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling placeOrder");
+      // verify the required parameter 'order' is set
+      if (order === undefined || order === null) {
+        throw new Error("Missing the required parameter 'order' when calling placeOrder");
       }
 
 
@@ -240,12 +238,11 @@
 
     /**
      * Place an order for a pet
-     * 
-     * @param {module:model/Order} body order placed for purchasing the pet
+     * @param {module:model/Order} order order placed for purchasing the pet
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/Order}
      */
-    this.placeOrder = function(body) {
-      return this.placeOrderWithHttpInfo(body)
+    this.placeOrder = function(order) {
+      return this.placeOrderWithHttpInfo(order)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise/src/api/UserApi.js b/samples/client/petstore/javascript-promise/src/api/UserApi.js
index 3d6e216aaa4..babd9e513c6 100644
--- a/samples/client/petstore/javascript-promise/src/api/UserApi.js
+++ b/samples/client/petstore/javascript-promise/src/api/UserApi.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('../model/User'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.UserApi = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.User);
+    root.OpenApiPetstore.UserApi = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.User);
   }
 }(this, function(ApiClient, User) {
   'use strict';
@@ -52,15 +51,15 @@
     /**
      * Create user
      * This can only be done by the logged in user.
-     * @param {module:model/User} body Created user object
+     * @param {module:model/User} user Created user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.createUserWithHttpInfo = function(body) {
-      var postBody = body;
+    this.createUserWithHttpInfo = function(user) {
+      var postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUser");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUser");
       }
 
 
@@ -77,7 +76,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -90,11 +89,11 @@
     /**
      * Create user
      * This can only be done by the logged in user.
-     * @param {module:model/User} body Created user object
+     * @param {module:model/User} user Created user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.createUser = function(body) {
-      return this.createUserWithHttpInfo(body)
+    this.createUser = function(user) {
+      return this.createUserWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -103,16 +102,15 @@
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.createUsersWithArrayInputWithHttpInfo = function(body) {
-      var postBody = body;
+    this.createUsersWithArrayInputWithHttpInfo = function(user) {
+      var postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUsersWithArrayInput");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUsersWithArrayInput");
       }
 
 
@@ -129,7 +127,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -141,12 +139,11 @@
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.createUsersWithArrayInput = function(body) {
-      return this.createUsersWithArrayInputWithHttpInfo(body)
+    this.createUsersWithArrayInput = function(user) {
+      return this.createUsersWithArrayInputWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -155,16 +152,15 @@
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.createUsersWithListInputWithHttpInfo = function(body) {
-      var postBody = body;
+    this.createUsersWithListInputWithHttpInfo = function(user) {
+      var postBody = user;
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling createUsersWithListInput");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling createUsersWithListInput");
       }
 
 
@@ -181,7 +177,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -193,12 +189,11 @@
 
     /**
      * Creates list of users with given input array
-     * 
-     * @param {Array.} body List of user object
+     * @param {Array.} user List of user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.createUsersWithListInput = function(body) {
-      return this.createUsersWithListInputWithHttpInfo(body)
+    this.createUsersWithListInput = function(user) {
+      return this.createUsersWithListInputWithHttpInfo(user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
@@ -234,7 +229,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -260,8 +255,7 @@
 
     /**
      * Get user by user name
-     * 
-     * @param {String} username The name that needs to be fetched. Use user1 for testing. 
+     * @param {String} username The name that needs to be fetched. Use user1 for testing.
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/User} and HTTP response
      */
     this.getUserByNameWithHttpInfo = function(username) {
@@ -299,8 +293,7 @@
 
     /**
      * Get user by user name
-     * 
-     * @param {String} username The name that needs to be fetched. Use user1 for testing. 
+     * @param {String} username The name that needs to be fetched. Use user1 for testing.
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/User}
      */
     this.getUserByName = function(username) {
@@ -313,10 +306,9 @@
 
     /**
      * Logs user into the system
-     * 
      * @param {String} username The user name for login
      * @param {String} password The password for login in clear text
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link 'String'} and HTTP response
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link String} and HTTP response
      */
     this.loginUserWithHttpInfo = function(username, password) {
       var postBody = null;
@@ -348,7 +340,7 @@
       var authNames = [];
       var contentTypes = [];
       var accepts = ['application/xml', 'application/json'];
-      var returnType = 'String';
+      var returnType = String;
 
       return this.apiClient.callApi(
         '/user/login', 'GET',
@@ -359,10 +351,9 @@
 
     /**
      * Logs user into the system
-     * 
      * @param {String} username The user name for login
      * @param {String} password The password for login in clear text
-     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link 'String'}
+     * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link String}
      */
     this.loginUser = function(username, password) {
       return this.loginUserWithHttpInfo(username, password)
@@ -374,7 +365,6 @@
 
     /**
      * Logs out current logged in user session
-     * 
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
     this.logoutUserWithHttpInfo = function() {
@@ -394,7 +384,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -406,7 +396,6 @@
 
     /**
      * Logs out current logged in user session
-     * 
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
     this.logoutUser = function() {
@@ -421,20 +410,20 @@
      * Updated user
      * This can only be done by the logged in user.
      * @param {String} username name that need to be deleted
-     * @param {module:model/User} body Updated user object
+     * @param {module:model/User} user Updated user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
      */
-    this.updateUserWithHttpInfo = function(username, body) {
-      var postBody = body;
+    this.updateUserWithHttpInfo = function(username, user) {
+      var postBody = user;
 
       // verify the required parameter 'username' is set
       if (username === undefined || username === null) {
         throw new Error("Missing the required parameter 'username' when calling updateUser");
       }
 
-      // verify the required parameter 'body' is set
-      if (body === undefined || body === null) {
-        throw new Error("Missing the required parameter 'body' when calling updateUser");
+      // verify the required parameter 'user' is set
+      if (user === undefined || user === null) {
+        throw new Error("Missing the required parameter 'user' when calling updateUser");
       }
 
 
@@ -452,7 +441,7 @@
 
       var authNames = [];
       var contentTypes = [];
-      var accepts = ['application/xml', 'application/json'];
+      var accepts = [];
       var returnType = null;
 
       return this.apiClient.callApi(
@@ -466,11 +455,11 @@
      * Updated user
      * This can only be done by the logged in user.
      * @param {String} username name that need to be deleted
-     * @param {module:model/User} body Updated user object
+     * @param {module:model/User} user Updated user object
      * @return {Promise} a {@link https://www.promisejs.org/|Promise}
      */
-    this.updateUser = function(username, body) {
-      return this.updateUserWithHttpInfo(username, body)
+    this.updateUser = function(username, user) {
+      return this.updateUserWithHttpInfo(username, user)
         .then(function(response_and_data) {
           return response_and_data.data;
         });
diff --git a/samples/client/petstore/javascript-promise/src/index.js b/samples/client/petstore/javascript-promise/src/index.js
index 480a6d3ead3..25685095fb2 100644
--- a/samples/client/petstore/javascript-promise/src/index.js
+++ b/samples/client/petstore/javascript-promise/src/index.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -17,12 +16,12 @@
 (function(factory) {
   if (typeof define === 'function' && define.amd) {
     // AMD. Register as an anonymous module.
-    define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/AnimalFarm', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Category', 'model/ClassModel', 'model/Client', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterBoolean', 'model/OuterComposite', 'model/OuterEnum', 'model/OuterNumber', 'model/OuterString', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/User', 'model/Cat', 'model/Dog', 'api/AnotherFakeApi', 'api/FakeApi', 'api/FakeClassnameTags123Api', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory);
+    define(['ApiClient', 'model/AdditionalPropertiesClass', 'model/Animal', 'model/AnimalFarm', 'model/ApiResponse', 'model/ArrayOfArrayOfNumberOnly', 'model/ArrayOfNumberOnly', 'model/ArrayTest', 'model/Capitalization', 'model/Cat', 'model/Category', 'model/ClassModel', 'model/Client', 'model/Dog', 'model/EnumArrays', 'model/EnumClass', 'model/EnumTest', 'model/FormatTest', 'model/HasOnlyReadOnly', 'model/List', 'model/MapTest', 'model/MixedPropertiesAndAdditionalPropertiesClass', 'model/Model200Response', 'model/ModelReturn', 'model/Name', 'model/NumberOnly', 'model/Order', 'model/OuterComposite', 'model/OuterEnum', 'model/Pet', 'model/ReadOnlyFirst', 'model/SpecialModelName', 'model/Tag', 'model/User', 'api/AnotherFakeApi', 'api/FakeApi', 'api/FakeClassnameTags123Api', 'api/PetApi', 'api/StoreApi', 'api/UserApi'], factory);
   } else if (typeof module === 'object' && module.exports) {
     // CommonJS-like environments that support module.exports, like Node.
-    module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/AnimalFarm'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterBoolean'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/OuterNumber'), require('./model/OuterString'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/User'), require('./model/Cat'), require('./model/Dog'), require('./api/AnotherFakeApi'), require('./api/FakeApi'), require('./api/FakeClassnameTags123Api'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi'));
+    module.exports = factory(require('./ApiClient'), require('./model/AdditionalPropertiesClass'), require('./model/Animal'), require('./model/AnimalFarm'), require('./model/ApiResponse'), require('./model/ArrayOfArrayOfNumberOnly'), require('./model/ArrayOfNumberOnly'), require('./model/ArrayTest'), require('./model/Capitalization'), require('./model/Cat'), require('./model/Category'), require('./model/ClassModel'), require('./model/Client'), require('./model/Dog'), require('./model/EnumArrays'), require('./model/EnumClass'), require('./model/EnumTest'), require('./model/FormatTest'), require('./model/HasOnlyReadOnly'), require('./model/List'), require('./model/MapTest'), require('./model/MixedPropertiesAndAdditionalPropertiesClass'), require('./model/Model200Response'), require('./model/ModelReturn'), require('./model/Name'), require('./model/NumberOnly'), require('./model/Order'), require('./model/OuterComposite'), require('./model/OuterEnum'), require('./model/Pet'), require('./model/ReadOnlyFirst'), require('./model/SpecialModelName'), require('./model/Tag'), require('./model/User'), require('./api/AnotherFakeApi'), require('./api/FakeApi'), require('./api/FakeClassnameTags123Api'), require('./api/PetApi'), require('./api/StoreApi'), require('./api/UserApi'));
   }
-}(function(ApiClient, AdditionalPropertiesClass, Animal, AnimalFarm, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Category, ClassModel, Client, EnumArrays, EnumClass, EnumTest, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterBoolean, OuterComposite, OuterEnum, OuterNumber, OuterString, Pet, ReadOnlyFirst, SpecialModelName, Tag, User, Cat, Dog, AnotherFakeApi, FakeApi, FakeClassnameTags123Api, PetApi, StoreApi, UserApi) {
+}(function(ApiClient, AdditionalPropertiesClass, Animal, AnimalFarm, ApiResponse, ArrayOfArrayOfNumberOnly, ArrayOfNumberOnly, ArrayTest, Capitalization, Cat, Category, ClassModel, Client, Dog, EnumArrays, EnumClass, EnumTest, FormatTest, HasOnlyReadOnly, List, MapTest, MixedPropertiesAndAdditionalPropertiesClass, Model200Response, ModelReturn, Name, NumberOnly, Order, OuterComposite, OuterEnum, Pet, ReadOnlyFirst, SpecialModelName, Tag, User, AnotherFakeApi, FakeApi, FakeClassnameTags123Api, PetApi, StoreApi, UserApi) {
   'use strict';
 
   /**
@@ -31,9 +30,9 @@
    * 

* An AMD (recommended!) or CommonJS application will generally do something equivalent to the following: *

-   * var SwaggerPetstore = require('index'); // See note below*.
-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyyModel = new SwaggerPetstore.Yyy(); // Construct a model instance.
+   * var OpenApiPetstore = require('index'); // See note below*.
+   * var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+   * var yyyModel = new OpenApiPetstore.Yyy(); // Construct a model instance.
    * yyyModel.someProperty = 'someValue';
    * ...
    * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -45,8 +44,8 @@
    * 

* A non-AMD browser application (discouraged) might do something like this: *

-   * var xxxSvc = new SwaggerPetstore.XxxApi(); // Allocate the API class we're going to use.
-   * var yyy = new SwaggerPetstore.Yyy(); // Construct a model instance.
+   * var xxxSvc = new OpenApiPetstore.XxxApi(); // Allocate the API class we're going to use.
+   * var yyy = new OpenApiPetstore.Yyy(); // Construct a model instance.
    * yyyModel.someProperty = 'someValue';
    * ...
    * var zzz = xxxSvc.doSomething(yyyModel); // Invoke the service.
@@ -102,6 +101,11 @@
      * @property {module:model/Capitalization}
      */
     Capitalization: Capitalization,
+    /**
+     * The Cat model constructor.
+     * @property {module:model/Cat}
+     */
+    Cat: Cat,
     /**
      * The Category model constructor.
      * @property {module:model/Category}
@@ -117,6 +121,11 @@
      * @property {module:model/Client}
      */
     Client: Client,
+    /**
+     * The Dog model constructor.
+     * @property {module:model/Dog}
+     */
+    Dog: Dog,
     /**
      * The EnumArrays model constructor.
      * @property {module:model/EnumArrays}
@@ -182,11 +191,6 @@
      * @property {module:model/Order}
      */
     Order: Order,
-    /**
-     * The OuterBoolean model constructor.
-     * @property {module:model/OuterBoolean}
-     */
-    OuterBoolean: OuterBoolean,
     /**
      * The OuterComposite model constructor.
      * @property {module:model/OuterComposite}
@@ -197,16 +201,6 @@
      * @property {module:model/OuterEnum}
      */
     OuterEnum: OuterEnum,
-    /**
-     * The OuterNumber model constructor.
-     * @property {module:model/OuterNumber}
-     */
-    OuterNumber: OuterNumber,
-    /**
-     * The OuterString model constructor.
-     * @property {module:model/OuterString}
-     */
-    OuterString: OuterString,
     /**
      * The Pet model constructor.
      * @property {module:model/Pet}
@@ -232,16 +226,6 @@
      * @property {module:model/User}
      */
     User: User,
-    /**
-     * The Cat model constructor.
-     * @property {module:model/Cat}
-     */
-    Cat: Cat,
-    /**
-     * The Dog model constructor.
-     * @property {module:model/Dog}
-     */
-    Dog: Dog,
     /**
      * The AnotherFakeApi service constructor.
      * @property {module:api/AnotherFakeApi}
diff --git a/samples/client/petstore/javascript-promise/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise/src/model/AdditionalPropertiesClass.js
index 4399d89bdc3..08572d90084 100644
--- a/samples/client/petstore/javascript-promise/src/model/AdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-promise/src/model/AdditionalPropertiesClass.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.AdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.AdditionalPropertiesClass = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Animal.js b/samples/client/petstore/javascript-promise/src/model/Animal.js
index eee2768eeb6..29376d771bf 100644
--- a/samples/client/petstore/javascript-promise/src/model/Animal.js
+++ b/samples/client/petstore/javascript-promise/src/model/Animal.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Animal = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Animal = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/AnimalFarm.js b/samples/client/petstore/javascript-promise/src/model/AnimalFarm.js
index b24078dee2a..e1a4797eec1 100644
--- a/samples/client/petstore/javascript-promise/src/model/AnimalFarm.js
+++ b/samples/client/petstore/javascript-promise/src/model/AnimalFarm.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./Animal'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.AnimalFarm = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal);
+    root.OpenApiPetstore.AnimalFarm = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Animal);
   }
 }(this, function(ApiClient, Animal) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ApiResponse.js b/samples/client/petstore/javascript-promise/src/model/ApiResponse.js
index 9588ce4cf31..5c112418181 100644
--- a/samples/client/petstore/javascript-promise/src/model/ApiResponse.js
+++ b/samples/client/petstore/javascript-promise/src/model/ApiResponse.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ApiResponse = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ApiResponse = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise/src/model/ArrayOfArrayOfNumberOnly.js
index 0b91fc04338..024c26469df 100644
--- a/samples/client/petstore/javascript-promise/src/model/ArrayOfArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-promise/src/model/ArrayOfArrayOfNumberOnly.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ArrayOfArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ArrayOfArrayOfNumberOnly = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript-promise/src/model/ArrayOfNumberOnly.js
index f79ab37c076..ca79a7c2a6d 100644
--- a/samples/client/petstore/javascript-promise/src/model/ArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript-promise/src/model/ArrayOfNumberOnly.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ArrayOfNumberOnly = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ArrayOfNumberOnly = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ArrayTest.js b/samples/client/petstore/javascript-promise/src/model/ArrayTest.js
index 8698b21a153..01b97a1b580 100644
--- a/samples/client/petstore/javascript-promise/src/model/ArrayTest.js
+++ b/samples/client/petstore/javascript-promise/src/model/ArrayTest.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./ReadOnlyFirst'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ArrayTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.ReadOnlyFirst);
+    root.OpenApiPetstore.ArrayTest = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.ReadOnlyFirst);
   }
 }(this, function(ApiClient, ReadOnlyFirst) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Capitalization.js b/samples/client/petstore/javascript-promise/src/model/Capitalization.js
index e4d1cce1e92..05934fb253c 100644
--- a/samples/client/petstore/javascript-promise/src/model/Capitalization.js
+++ b/samples/client/petstore/javascript-promise/src/model/Capitalization.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Capitalization = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Capitalization = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Cat.js b/samples/client/petstore/javascript-promise/src/model/Cat.js
index 55f0a0c9834..10b787fed4e 100644
--- a/samples/client/petstore/javascript-promise/src/model/Cat.js
+++ b/samples/client/petstore/javascript-promise/src/model/Cat.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./Animal'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Cat = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal);
+    root.OpenApiPetstore.Cat = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Animal);
   }
 }(this, function(ApiClient, Animal) {
   'use strict';
@@ -45,11 +44,13 @@
    * @alias module:model/Cat
    * @class
    * @extends module:model/Animal
-   * @param className {String} 
+   * @implements module:model/Animal
+   * @param className {} 
    */
   var exports = function(className) {
     var _this = this;
     Animal.call(_this, className);
+    Animal.call(_this, className);
 
   };
 
@@ -64,6 +65,7 @@
     if (data) {
       obj = obj || new exports();
       Animal.constructFromObject(data, obj);
+      Animal.constructFromObject(data, obj);
       if (data.hasOwnProperty('declawed')) {
         obj['declawed'] = ApiClient.convertToType(data['declawed'], 'Boolean');
       }
@@ -79,6 +81,18 @@
    */
   exports.prototype['declawed'] = undefined;
 
+  // Implement Animal interface:
+  /**
+   * @member {String} className
+   */
+exports.prototype['className'] = undefined;
+
+  /**
+   * @member {String} color
+   * @default 'red'
+   */
+exports.prototype['color'] = 'red';
+
 
 
   return exports;
diff --git a/samples/client/petstore/javascript-promise/src/model/Category.js b/samples/client/petstore/javascript-promise/src/model/Category.js
index 37f547c79a1..c289c6b8e5b 100644
--- a/samples/client/petstore/javascript-promise/src/model/Category.js
+++ b/samples/client/petstore/javascript-promise/src/model/Category.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Category = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Category = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ClassModel.js b/samples/client/petstore/javascript-promise/src/model/ClassModel.js
index bd390a22524..6edd8fbadd0 100644
--- a/samples/client/petstore/javascript-promise/src/model/ClassModel.js
+++ b/samples/client/petstore/javascript-promise/src/model/ClassModel.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ClassModel = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ClassModel = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Client.js b/samples/client/petstore/javascript-promise/src/model/Client.js
index 21add8d7f98..e563bcf7ea5 100644
--- a/samples/client/petstore/javascript-promise/src/model/Client.js
+++ b/samples/client/petstore/javascript-promise/src/model/Client.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Client = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Client = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Dog.js b/samples/client/petstore/javascript-promise/src/model/Dog.js
index f567953b625..c308f3dc9f1 100644
--- a/samples/client/petstore/javascript-promise/src/model/Dog.js
+++ b/samples/client/petstore/javascript-promise/src/model/Dog.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./Animal'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Dog = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal);
+    root.OpenApiPetstore.Dog = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Animal);
   }
 }(this, function(ApiClient, Animal) {
   'use strict';
@@ -45,11 +44,13 @@
    * @alias module:model/Dog
    * @class
    * @extends module:model/Animal
-   * @param className {String} 
+   * @implements module:model/Animal
+   * @param className {} 
    */
   var exports = function(className) {
     var _this = this;
     Animal.call(_this, className);
+    Animal.call(_this, className);
 
   };
 
@@ -64,6 +65,7 @@
     if (data) {
       obj = obj || new exports();
       Animal.constructFromObject(data, obj);
+      Animal.constructFromObject(data, obj);
       if (data.hasOwnProperty('breed')) {
         obj['breed'] = ApiClient.convertToType(data['breed'], 'String');
       }
@@ -79,6 +81,18 @@
    */
   exports.prototype['breed'] = undefined;
 
+  // Implement Animal interface:
+  /**
+   * @member {String} className
+   */
+exports.prototype['className'] = undefined;
+
+  /**
+   * @member {String} color
+   * @default 'red'
+   */
+exports.prototype['color'] = 'red';
+
 
 
   return exports;
diff --git a/samples/client/petstore/javascript-promise/src/model/EnumArrays.js b/samples/client/petstore/javascript-promise/src/model/EnumArrays.js
index 00036542ba7..07d52b119db 100644
--- a/samples/client/petstore/javascript-promise/src/model/EnumArrays.js
+++ b/samples/client/petstore/javascript-promise/src/model/EnumArrays.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.EnumArrays = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.EnumArrays = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/EnumClass.js b/samples/client/petstore/javascript-promise/src/model/EnumClass.js
index f03ab350d2f..d4a9f39f566 100644
--- a/samples/client/petstore/javascript-promise/src/model/EnumClass.js
+++ b/samples/client/petstore/javascript-promise/src/model/EnumClass.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.EnumClass = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.EnumClass = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/EnumTest.js b/samples/client/petstore/javascript-promise/src/model/EnumTest.js
index 3e7c9311aaf..4dfc6753323 100644
--- a/samples/client/petstore/javascript-promise/src/model/EnumTest.js
+++ b/samples/client/petstore/javascript-promise/src/model/EnumTest.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./OuterEnum'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.EnumTest = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterEnum);
+    root.OpenApiPetstore.EnumTest = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.OuterEnum);
   }
 }(this, function(ApiClient, OuterEnum) {
   'use strict';
@@ -44,11 +43,13 @@
    * Constructs a new EnumTest.
    * @alias module:model/EnumTest
    * @class
+   * @param enumStringRequired {module:model/EnumTest.EnumStringRequiredEnum} 
    */
-  var exports = function() {
+  var exports = function(enumStringRequired) {
     var _this = this;
 
 
+    _this['enum_string_required'] = enumStringRequired;
 
 
 
@@ -68,6 +69,9 @@
       if (data.hasOwnProperty('enum_string')) {
         obj['enum_string'] = ApiClient.convertToType(data['enum_string'], 'String');
       }
+      if (data.hasOwnProperty('enum_string_required')) {
+        obj['enum_string_required'] = ApiClient.convertToType(data['enum_string_required'], 'String');
+      }
       if (data.hasOwnProperty('enum_integer')) {
         obj['enum_integer'] = ApiClient.convertToType(data['enum_integer'], 'Number');
       }
@@ -85,6 +89,10 @@
    * @member {module:model/EnumTest.EnumStringEnum} enum_string
    */
   exports.prototype['enum_string'] = undefined;
+  /**
+   * @member {module:model/EnumTest.EnumStringRequiredEnum} enum_string_required
+   */
+  exports.prototype['enum_string_required'] = undefined;
   /**
    * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer
    */
@@ -121,6 +129,28 @@
      */
     "empty": ""  };
 
+  /**
+   * Allowed values for the enum_string_required property.
+   * @enum {String}
+   * @readonly
+   */
+  exports.EnumStringRequiredEnum = {
+    /**
+     * value: "UPPER"
+     * @const
+     */
+    "UPPER": "UPPER",
+    /**
+     * value: "lower"
+     * @const
+     */
+    "lower": "lower",
+    /**
+     * value: ""
+     * @const
+     */
+    "empty": ""  };
+
   /**
    * Allowed values for the enum_integer property.
    * @enum {Number}
diff --git a/samples/client/petstore/javascript-promise/src/model/FormatTest.js b/samples/client/petstore/javascript-promise/src/model/FormatTest.js
index 9b93b06b7ca..6c5986d4898 100644
--- a/samples/client/petstore/javascript-promise/src/model/FormatTest.js
+++ b/samples/client/petstore/javascript-promise/src/model/FormatTest.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.FormatTest = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.FormatTest = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
@@ -103,7 +102,7 @@
         obj['byte'] = ApiClient.convertToType(data['byte'], 'Blob');
       }
       if (data.hasOwnProperty('binary')) {
-        obj['binary'] = ApiClient.convertToType(data['binary'], 'Blob');
+        obj['binary'] = ApiClient.convertToType(data['binary'], File);
       }
       if (data.hasOwnProperty('date')) {
         obj['date'] = ApiClient.convertToType(data['date'], 'Date');
@@ -154,7 +153,7 @@
    */
   exports.prototype['byte'] = undefined;
   /**
-   * @member {Blob} binary
+   * @member {File} binary
    */
   exports.prototype['binary'] = undefined;
   /**
diff --git a/samples/client/petstore/javascript-promise/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript-promise/src/model/HasOnlyReadOnly.js
index 17c09dfca7b..484fd0c9991 100644
--- a/samples/client/petstore/javascript-promise/src/model/HasOnlyReadOnly.js
+++ b/samples/client/petstore/javascript-promise/src/model/HasOnlyReadOnly.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.HasOnlyReadOnly = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.HasOnlyReadOnly = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/List.js b/samples/client/petstore/javascript-promise/src/model/List.js
index ce54341bb18..ab3c2e34e34 100644
--- a/samples/client/petstore/javascript-promise/src/model/List.js
+++ b/samples/client/petstore/javascript-promise/src/model/List.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.List = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.List = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/MapTest.js b/samples/client/petstore/javascript-promise/src/model/MapTest.js
index b7d0164b998..adf82a358c2 100644
--- a/samples/client/petstore/javascript-promise/src/model/MapTest.js
+++ b/samples/client/petstore/javascript-promise/src/model/MapTest.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.MapTest = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.MapTest = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript-promise/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
index 973ca5a65e2..62c7a2f59e3 100644
--- a/samples/client/petstore/javascript-promise/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript-promise/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./Animal'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.MixedPropertiesAndAdditionalPropertiesClass = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Animal);
+    root.OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Animal);
   }
 }(this, function(ApiClient, Animal) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Model200Response.js b/samples/client/petstore/javascript-promise/src/model/Model200Response.js
index c382f333344..84131169fb1 100644
--- a/samples/client/petstore/javascript-promise/src/model/Model200Response.js
+++ b/samples/client/petstore/javascript-promise/src/model/Model200Response.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Model200Response = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Model200Response = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ModelReturn.js b/samples/client/petstore/javascript-promise/src/model/ModelReturn.js
index fa5bc9910f8..87484d2ee23 100644
--- a/samples/client/petstore/javascript-promise/src/model/ModelReturn.js
+++ b/samples/client/petstore/javascript-promise/src/model/ModelReturn.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ModelReturn = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ModelReturn = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Name.js b/samples/client/petstore/javascript-promise/src/model/Name.js
index 0671311976c..8c851c4cec5 100644
--- a/samples/client/petstore/javascript-promise/src/model/Name.js
+++ b/samples/client/petstore/javascript-promise/src/model/Name.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Name = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Name = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/NumberOnly.js b/samples/client/petstore/javascript-promise/src/model/NumberOnly.js
index d9ee8fcd3ab..389ad08e8c5 100644
--- a/samples/client/petstore/javascript-promise/src/model/NumberOnly.js
+++ b/samples/client/petstore/javascript-promise/src/model/NumberOnly.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.NumberOnly = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.NumberOnly = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Order.js b/samples/client/petstore/javascript-promise/src/model/Order.js
index f082668517f..bfd5f3714be 100644
--- a/samples/client/petstore/javascript-promise/src/model/Order.js
+++ b/samples/client/petstore/javascript-promise/src/model/Order.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Order = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Order = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/OuterComposite.js b/samples/client/petstore/javascript-promise/src/model/OuterComposite.js
index 14e7775588b..b4fc48476de 100644
--- a/samples/client/petstore/javascript-promise/src/model/OuterComposite.js
+++ b/samples/client/petstore/javascript-promise/src/model/OuterComposite.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -17,18 +16,18 @@
 (function(root, factory) {
   if (typeof define === 'function' && define.amd) {
     // AMD. Register as an anonymous module.
-    define(['ApiClient', 'model/OuterBoolean', 'model/OuterNumber', 'model/OuterString'], factory);
+    define(['ApiClient'], factory);
   } else if (typeof module === 'object' && module.exports) {
     // CommonJS-like environments that support module.exports, like Node.
-    module.exports = factory(require('../ApiClient'), require('./OuterBoolean'), require('./OuterNumber'), require('./OuterString'));
+    module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.OuterComposite = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.OuterBoolean, root.SwaggerPetstore.OuterNumber, root.SwaggerPetstore.OuterString);
+    root.OpenApiPetstore.OuterComposite = factory(root.OpenApiPetstore.ApiClient);
   }
-}(this, function(ApiClient, OuterBoolean, OuterNumber, OuterString) {
+}(this, function(ApiClient) {
   'use strict';
 
 
@@ -65,28 +64,28 @@
       obj = obj || new exports();
 
       if (data.hasOwnProperty('my_number')) {
-        obj['my_number'] = OuterNumber.constructFromObject(data['my_number']);
+        obj['my_number'] = 'Number'.constructFromObject(data['my_number']);
       }
       if (data.hasOwnProperty('my_string')) {
-        obj['my_string'] = OuterString.constructFromObject(data['my_string']);
+        obj['my_string'] = 'String'.constructFromObject(data['my_string']);
       }
       if (data.hasOwnProperty('my_boolean')) {
-        obj['my_boolean'] = OuterBoolean.constructFromObject(data['my_boolean']);
+        obj['my_boolean'] = 'Boolean'.constructFromObject(data['my_boolean']);
       }
     }
     return obj;
   }
 
   /**
-   * @member {module:model/OuterNumber} my_number
+   * @member {Number} my_number
    */
   exports.prototype['my_number'] = undefined;
   /**
-   * @member {module:model/OuterString} my_string
+   * @member {String} my_string
    */
   exports.prototype['my_string'] = undefined;
   /**
-   * @member {module:model/OuterBoolean} my_boolean
+   * @member {Boolean} my_boolean
    */
   exports.prototype['my_boolean'] = undefined;
 
diff --git a/samples/client/petstore/javascript-promise/src/model/OuterEnum.js b/samples/client/petstore/javascript-promise/src/model/OuterEnum.js
index cdd43098369..9e1f532b44d 100644
--- a/samples/client/petstore/javascript-promise/src/model/OuterEnum.js
+++ b/samples/client/petstore/javascript-promise/src/model/OuterEnum.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.OuterEnum = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.OuterEnum = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Pet.js b/samples/client/petstore/javascript-promise/src/model/Pet.js
index 7edd65724ba..55997490b78 100644
--- a/samples/client/petstore/javascript-promise/src/model/Pet.js
+++ b/samples/client/petstore/javascript-promise/src/model/Pet.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'), require('./Category'), require('./Tag'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Pet = factory(root.SwaggerPetstore.ApiClient, root.SwaggerPetstore.Category, root.SwaggerPetstore.Tag);
+    root.OpenApiPetstore.Pet = factory(root.OpenApiPetstore.ApiClient, root.OpenApiPetstore.Category, root.OpenApiPetstore.Tag);
   }
 }(this, function(ApiClient, Category, Tag) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript-promise/src/model/ReadOnlyFirst.js
index f6f0064fd96..1b0ae1104cc 100644
--- a/samples/client/petstore/javascript-promise/src/model/ReadOnlyFirst.js
+++ b/samples/client/petstore/javascript-promise/src/model/ReadOnlyFirst.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.ReadOnlyFirst = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.ReadOnlyFirst = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/SpecialModelName.js b/samples/client/petstore/javascript-promise/src/model/SpecialModelName.js
index 921a1e87379..22464bbe7a2 100644
--- a/samples/client/petstore/javascript-promise/src/model/SpecialModelName.js
+++ b/samples/client/petstore/javascript-promise/src/model/SpecialModelName.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.SpecialModelName = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.SpecialModelName = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/Tag.js b/samples/client/petstore/javascript-promise/src/model/Tag.js
index 6308751e08f..9e4f88b0872 100644
--- a/samples/client/petstore/javascript-promise/src/model/Tag.js
+++ b/samples/client/petstore/javascript-promise/src/model/Tag.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.Tag = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.Tag = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript-promise/src/model/User.js b/samples/client/petstore/javascript-promise/src/model/User.js
index 1d251e22b3c..06d4e6e7ad0 100644
--- a/samples/client/petstore/javascript-promise/src/model/User.js
+++ b/samples/client/petstore/javascript-promise/src/model/User.js
@@ -1,14 +1,13 @@
 /**
- * Swagger Petstore
+ * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
  * OpenAPI spec version: 1.0.0
- * Contact: apiteam@swagger.io
  *
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
  *
- * Swagger Codegen version: 2.3.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
@@ -23,10 +22,10 @@
     module.exports = factory(require('../ApiClient'));
   } else {
     // Browser globals (root is window)
-    if (!root.SwaggerPetstore) {
-      root.SwaggerPetstore = {};
+    if (!root.OpenApiPetstore) {
+      root.OpenApiPetstore = {};
     }
-    root.SwaggerPetstore.User = factory(root.SwaggerPetstore.ApiClient);
+    root.OpenApiPetstore.User = factory(root.OpenApiPetstore.ApiClient);
   }
 }(this, function(ApiClient) {
   'use strict';
diff --git a/samples/client/petstore/javascript/.openapi-generator/VERSION b/samples/client/petstore/javascript/.openapi-generator/VERSION
index 096bf47efe3..1c00c518154 100644
--- a/samples/client/petstore/javascript/.openapi-generator/VERSION
+++ b/samples/client/petstore/javascript/.openapi-generator/VERSION
@@ -1 +1 @@
-3.0.0-SNAPSHOT
\ No newline at end of file
+3.0.2-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/javascript/docs/AdditionalPropertiesClass.md b/samples/client/petstore/javascript/docs/AdditionalPropertiesClass.md
new file mode 100644
index 00000000000..7df1c7b3394
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/AdditionalPropertiesClass.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.AdditionalPropertiesClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapProperty** | **{String: String}** |  | [optional] 
+**mapOfMapProperty** | **{String: {String: String}}** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Animal.md b/samples/client/petstore/javascript/docs/Animal.md
new file mode 100644
index 00000000000..7bff0167581
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Animal.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.Animal
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**className** | **String** |  | 
+**color** | **String** |  | [optional] [default to 'red']
+
+
diff --git a/samples/client/petstore/javascript/docs/AnimalFarm.md b/samples/client/petstore/javascript/docs/AnimalFarm.md
new file mode 100644
index 00000000000..ab153513ca9
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/AnimalFarm.md
@@ -0,0 +1,7 @@
+# OpenApiPetstore.AnimalFarm
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+
diff --git a/samples/client/petstore/javascript/docs/AnotherFakeApi.md b/samples/client/petstore/javascript/docs/AnotherFakeApi.md
new file mode 100644
index 00000000000..4529aa0c18b
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/AnotherFakeApi.md
@@ -0,0 +1,52 @@
+# OpenApiPetstore.AnotherFakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**testSpecialTags**](AnotherFakeApi.md#testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
+
+
+
+# **testSpecialTags**
+> Client testSpecialTags(client)
+
+To test special tags
+
+To test special tags
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.AnotherFakeApi();
+var client = new OpenApiPetstore.Client(); // Client | client model
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.testSpecialTags(client, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **client** | [**Client**](Client.md)| client model | 
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
diff --git a/samples/client/petstore/javascript/docs/ApiResponse.md b/samples/client/petstore/javascript/docs/ApiResponse.md
new file mode 100644
index 00000000000..e60378fcbfc
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ApiResponse.md
@@ -0,0 +1,10 @@
+# OpenApiPetstore.ApiResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **Number** |  | [optional] 
+**type** | **String** |  | [optional] 
+**message** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/javascript/docs/ArrayOfArrayOfNumberOnly.md
new file mode 100644
index 00000000000..7a1426ef818
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ArrayOfArrayOfNumberOnly.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.ArrayOfArrayOfNumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayArrayNumber** | **[[Number]]** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/ArrayOfNumberOnly.md b/samples/client/petstore/javascript/docs/ArrayOfNumberOnly.md
new file mode 100644
index 00000000000..7cec2e71d4b
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ArrayOfNumberOnly.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.ArrayOfNumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayNumber** | **[Number]** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/ArrayTest.md b/samples/client/petstore/javascript/docs/ArrayTest.md
new file mode 100644
index 00000000000..5828f6ee75b
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ArrayTest.md
@@ -0,0 +1,10 @@
+# OpenApiPetstore.ArrayTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayOfString** | **[String]** |  | [optional] 
+**arrayArrayOfInteger** | **[[Number]]** |  | [optional] 
+**arrayArrayOfModel** | **[[ReadOnlyFirst]]** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Capitalization.md b/samples/client/petstore/javascript/docs/Capitalization.md
new file mode 100644
index 00000000000..abeff984c62
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Capitalization.md
@@ -0,0 +1,13 @@
+# OpenApiPetstore.Capitalization
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**smallCamel** | **String** |  | [optional] 
+**capitalCamel** | **String** |  | [optional] 
+**smallSnake** | **String** |  | [optional] 
+**capitalSnake** | **String** |  | [optional] 
+**sCAETHFlowPoints** | **String** |  | [optional] 
+**ATT_NAME** | **String** | Name of the pet  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Cat.md b/samples/client/petstore/javascript/docs/Cat.md
new file mode 100644
index 00000000000..6dd0f057c85
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Cat.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.Cat
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**declawed** | **Boolean** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Category.md b/samples/client/petstore/javascript/docs/Category.md
new file mode 100644
index 00000000000..e3f934442ab
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Category.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.Category
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Number** |  | [optional] 
+**name** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/ClassModel.md b/samples/client/petstore/javascript/docs/ClassModel.md
new file mode 100644
index 00000000000..6fe9c501a5d
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ClassModel.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.ClassModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_class** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Client.md b/samples/client/petstore/javascript/docs/Client.md
new file mode 100644
index 00000000000..a6c7711e74e
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Client.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.Client
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**client** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Dog.md b/samples/client/petstore/javascript/docs/Dog.md
new file mode 100644
index 00000000000..f35663407e8
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Dog.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.Dog
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**breed** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/EnumArrays.md b/samples/client/petstore/javascript/docs/EnumArrays.md
new file mode 100644
index 00000000000..5f624e5db48
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/EnumArrays.md
@@ -0,0 +1,31 @@
+# OpenApiPetstore.EnumArrays
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justSymbol** | **String** |  | [optional] 
+**arrayEnum** | **[String]** |  | [optional] 
+
+
+
+## Enum: JustSymbolEnum
+
+
+* `GREATER_THAN_OR_EQUAL_TO` (value: `">="`)
+
+* `DOLLAR` (value: `"$"`)
+
+
+
+
+
+## Enum: [ArrayEnumEnum]
+
+
+* `fish` (value: `"fish"`)
+
+* `crab` (value: `"crab"`)
+
+
+
+
diff --git a/samples/client/petstore/javascript/docs/EnumClass.md b/samples/client/petstore/javascript/docs/EnumClass.md
new file mode 100644
index 00000000000..cef9bb57a56
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/EnumClass.md
@@ -0,0 +1,12 @@
+# OpenApiPetstore.EnumClass
+
+## Enum
+
+
+* `_abc` (value: `"_abc"`)
+
+* `-efg` (value: `"-efg"`)
+
+* `(xyz)` (value: `"(xyz)"`)
+
+
diff --git a/samples/client/petstore/javascript/docs/EnumTest.md b/samples/client/petstore/javascript/docs/EnumTest.md
new file mode 100644
index 00000000000..c9e7ce86fea
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/EnumTest.md
@@ -0,0 +1,60 @@
+# OpenApiPetstore.EnumTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enumString** | **String** |  | [optional] 
+**enumStringRequired** | **String** |  | 
+**enumInteger** | **Number** |  | [optional] 
+**enumNumber** | **Number** |  | [optional] 
+**outerEnum** | [**OuterEnum**](OuterEnum.md) |  | [optional] 
+
+
+
+## Enum: EnumStringEnum
+
+
+* `UPPER` (value: `"UPPER"`)
+
+* `lower` (value: `"lower"`)
+
+* `empty` (value: `""`)
+
+
+
+
+
+## Enum: EnumStringRequiredEnum
+
+
+* `UPPER` (value: `"UPPER"`)
+
+* `lower` (value: `"lower"`)
+
+* `empty` (value: `""`)
+
+
+
+
+
+## Enum: EnumIntegerEnum
+
+
+* `1` (value: `1`)
+
+* `-1` (value: `-1`)
+
+
+
+
+
+## Enum: EnumNumberEnum
+
+
+* `1.1` (value: `1.1`)
+
+* `-1.2` (value: `-1.2`)
+
+
+
+
diff --git a/samples/client/petstore/javascript/docs/FakeApi.md b/samples/client/petstore/javascript/docs/FakeApi.md
new file mode 100644
index 00000000000..e0aa348e901
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/FakeApi.md
@@ -0,0 +1,504 @@
+# OpenApiPetstore.FakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**fakeOuterBooleanSerialize**](FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean | 
+[**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite | 
+[**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number | 
+[**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string | 
+[**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params | 
+[**testClientModel**](FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
+[**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
+[**testEnumParameters**](FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
+[**testInlineAdditionalProperties**](FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+[**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
+
+
+
+# **fakeOuterBooleanSerialize**
+> Boolean fakeOuterBooleanSerialize(opts)
+
+
+
+Test serialization of outer boolean types
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': true // Boolean | Input boolean as post body
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.fakeOuterBooleanSerialize(opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **Boolean**| Input boolean as post body | [optional] 
+
+### Return type
+
+**Boolean**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **fakeOuterCompositeSerialize**
+> OuterComposite fakeOuterCompositeSerialize(opts)
+
+
+
+Test serialization of object with outer number type
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'outerComposite': new OpenApiPetstore.OuterComposite() // OuterComposite | Input composite as post body
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.fakeOuterCompositeSerialize(opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional] 
+
+### Return type
+
+[**OuterComposite**](OuterComposite.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **fakeOuterNumberSerialize**
+> Number fakeOuterNumberSerialize(opts)
+
+
+
+Test serialization of outer number types
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': 3.4 // Number | Input number as post body
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.fakeOuterNumberSerialize(opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **Number**| Input number as post body | [optional] 
+
+### Return type
+
+**Number**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **fakeOuterStringSerialize**
+> String fakeOuterStringSerialize(opts)
+
+
+
+Test serialization of outer string types
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'body': "body_example" // String | Input string as post body
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.fakeOuterStringSerialize(opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **String**| Input string as post body | [optional] 
+
+### Return type
+
+**String**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **testBodyWithQueryParams**
+> testBodyWithQueryParams(query, user)
+
+
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var query = "query_example"; // String | 
+var user = new OpenApiPetstore.User(); // User | 
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.testBodyWithQueryParams(query, user, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **String**|  | 
+ **user** | [**User**](User.md)|  | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+# **testClientModel**
+> Client testClientModel(client)
+
+To test \"client\" model
+
+To test \"client\" model
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var client = new OpenApiPetstore.Client(); // Client | client model
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.testClientModel(client, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **client** | [**Client**](Client.md)| client model | 
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+# **testEndpointParameters**
+> testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts)
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+
+// Configure HTTP basic authorization: http_basic_test
+var http_basic_test = defaultClient.authentications['http_basic_test'];
+http_basic_test.username = 'YOUR USERNAME';
+http_basic_test.password = 'YOUR PASSWORD';
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var _number = 3.4; // Number | None
+var _double = 3.4; // Number | None
+var patternWithoutDelimiter = "patternWithoutDelimiter_example"; // String | None
+var _byte = null; // Blob | None
+var opts = {
+  'integer': 56, // Number | None
+  'int32': 56, // Number | None
+  'int64': 789, // Number | None
+  '_float': 3.4, // Number | None
+  '_string': "_string_example", // String | None
+  'binary': "/path/to/file", // File | None
+  '_date': new Date("2013-10-20"), // Date | None
+  'dateTime': new Date("2013-10-20T19:20:30+01:00"), // Date | None
+  'password': "password_example", // String | None
+  'callback': "callback_example" // String | None
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.testEndpointParameters(_number, _double, patternWithoutDelimiter, _byte, opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **_number** | **Number**| None | 
+ **_double** | **Number**| None | 
+ **patternWithoutDelimiter** | **String**| None | 
+ **_byte** | **Blob**| None | 
+ **integer** | **Number**| None | [optional] 
+ **int32** | **Number**| None | [optional] 
+ **int64** | **Number**| None | [optional] 
+ **_float** | **Number**| None | [optional] 
+ **_string** | **String**| None | [optional] 
+ **binary** | **File**| None | [optional] 
+ **_date** | **Date**| None | [optional] 
+ **dateTime** | **Date**| None | [optional] 
+ **password** | **String**| None | [optional] 
+ **callback** | **String**| None | [optional] 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[http_basic_test](../README.md#http_basic_test)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+
+# **testEnumParameters**
+> testEnumParameters(opts)
+
+To test enum parameters
+
+To test enum parameters
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var opts = {
+  'enumHeaderStringArray': ["'$'"], // [String] | Header parameter enum test (string array)
+  'enumHeaderString': "'-efg'", // String | Header parameter enum test (string)
+  'enumQueryStringArray': ["'$'"], // [String] | Query parameter enum test (string array)
+  'enumQueryString': "'-efg'", // String | Query parameter enum test (string)
+  'enumQueryInteger': 56, // Number | Query parameter enum test (double)
+  'enumQueryDouble': 3.4, // Number | Query parameter enum test (double)
+  'enumFormStringArray': "'$'", // [String] | Form parameter enum test (string array)
+  'enumFormString': "'-efg'" // String | Form parameter enum test (string)
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.testEnumParameters(opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **enumHeaderStringArray** | [**[String]**](String.md)| Header parameter enum test (string array) | [optional] 
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to '-efg']
+ **enumQueryStringArray** | [**[String]**](String.md)| Query parameter enum test (string array) | [optional] 
+ **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to '-efg']
+ **enumQueryInteger** | **Number**| Query parameter enum test (double) | [optional] 
+ **enumQueryDouble** | **Number**| Query parameter enum test (double) | [optional] 
+ **enumFormStringArray** | [**[String]**](String.md)| Form parameter enum test (string array) | [optional] [default to '$']
+ **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to '-efg']
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+
+# **testInlineAdditionalProperties**
+> testInlineAdditionalProperties(requestBody)
+
+test inline additionalProperties
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var requestBody = {key: "inner_example"}; // {String: String} | request body
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.testInlineAdditionalProperties(requestBody, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **requestBody** | [**{String: String}**](String.md)| request body | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+# **testJsonFormData**
+> testJsonFormData(param, param2)
+
+test json serialization of form data
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.FakeApi();
+var param = "param_example"; // String | field1
+var param2 = "param2_example"; // String | field2
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.testJsonFormData(param, param2, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **param** | **String**| field1 | 
+ **param2** | **String**| field2 | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
diff --git a/samples/client/petstore/javascript/docs/FakeClassnameTags123Api.md b/samples/client/petstore/javascript/docs/FakeClassnameTags123Api.md
new file mode 100644
index 00000000000..1d0a71149f0
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/FakeClassnameTags123Api.md
@@ -0,0 +1,58 @@
+# OpenApiPetstore.FakeClassnameTags123Api
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**testClassname**](FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
+
+
+
+# **testClassname**
+> Client testClassname(client)
+
+To test class name in snake case
+
+To test class name in snake case
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure API key authorization: api_key_query
+var api_key_query = defaultClient.authentications['api_key_query'];
+api_key_query.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//api_key_query.apiKeyPrefix = 'Token';
+
+var apiInstance = new OpenApiPetstore.FakeClassnameTags123Api();
+var client = new OpenApiPetstore.Client(); // Client | client model
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.testClassname(client, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **client** | [**Client**](Client.md)| client model | 
+
+### Return type
+
+[**Client**](Client.md)
+
+### Authorization
+
+[api_key_query](../README.md#api_key_query)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
diff --git a/samples/client/petstore/javascript/docs/FormatTest.md b/samples/client/petstore/javascript/docs/FormatTest.md
new file mode 100644
index 00000000000..0f4a8405449
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/FormatTest.md
@@ -0,0 +1,20 @@
+# OpenApiPetstore.FormatTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**integer** | **Number** |  | [optional] 
+**int32** | **Number** |  | [optional] 
+**int64** | **Number** |  | [optional] 
+**_number** | **Number** |  | 
+**_float** | **Number** |  | [optional] 
+**_double** | **Number** |  | [optional] 
+**_string** | **String** |  | [optional] 
+**_byte** | **Blob** |  | 
+**binary** | **File** |  | [optional] 
+**_date** | **Date** |  | 
+**dateTime** | **Date** |  | [optional] 
+**uuid** | **String** |  | [optional] 
+**password** | **String** |  | 
+
+
diff --git a/samples/client/petstore/javascript/docs/HasOnlyReadOnly.md b/samples/client/petstore/javascript/docs/HasOnlyReadOnly.md
new file mode 100644
index 00000000000..abc4ce62184
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/HasOnlyReadOnly.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.HasOnlyReadOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** |  | [optional] 
+**foo** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/List.md b/samples/client/petstore/javascript/docs/List.md
new file mode 100644
index 00000000000..3a9555e34e0
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/List.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.List
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_123list** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/MapTest.md b/samples/client/petstore/javascript/docs/MapTest.md
new file mode 100644
index 00000000000..4a128da00fd
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/MapTest.md
@@ -0,0 +1,20 @@
+# OpenApiPetstore.MapTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapMapOfString** | **{String: {String: String}}** |  | [optional] 
+**mapOfEnumString** | **{String: String}** |  | [optional] 
+
+
+
+## Enum: {String: String}
+
+
+* `UPPER` (value: `"UPPER"`)
+
+* `lower` (value: `"lower"`)
+
+
+
+
diff --git a/samples/client/petstore/javascript/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/javascript/docs/MixedPropertiesAndAdditionalPropertiesClass.md
new file mode 100644
index 00000000000..051f771930e
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -0,0 +1,10 @@
+# OpenApiPetstore.MixedPropertiesAndAdditionalPropertiesClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **String** |  | [optional] 
+**dateTime** | **Date** |  | [optional] 
+**map** | [**{String: Animal}**](Animal.md) |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Model200Response.md b/samples/client/petstore/javascript/docs/Model200Response.md
new file mode 100644
index 00000000000..0a0d02cc32e
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Model200Response.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.Model200Response
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **Number** |  | [optional] 
+**_class** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/ModelReturn.md b/samples/client/petstore/javascript/docs/ModelReturn.md
new file mode 100644
index 00000000000..9ce6e203878
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ModelReturn.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.ModelReturn
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_return** | **Number** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Name.md b/samples/client/petstore/javascript/docs/Name.md
new file mode 100644
index 00000000000..8dfcc460361
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Name.md
@@ -0,0 +1,11 @@
+# OpenApiPetstore.Name
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **Number** |  | 
+**snakeCase** | **Number** |  | [optional] 
+**property** | **String** |  | [optional] 
+**_123number** | **Number** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/NumberOnly.md b/samples/client/petstore/javascript/docs/NumberOnly.md
new file mode 100644
index 00000000000..cf84674ed4e
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/NumberOnly.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.NumberOnly
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justNumber** | **Number** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/Order.md b/samples/client/petstore/javascript/docs/Order.md
new file mode 100644
index 00000000000..987992caa70
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Order.md
@@ -0,0 +1,26 @@
+# OpenApiPetstore.Order
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Number** |  | [optional] 
+**petId** | **Number** |  | [optional] 
+**quantity** | **Number** |  | [optional] 
+**shipDate** | **Date** |  | [optional] 
+**status** | **String** | Order Status | [optional] 
+**complete** | **Boolean** |  | [optional] [default to false]
+
+
+
+## Enum: StatusEnum
+
+
+* `placed` (value: `"placed"`)
+
+* `approved` (value: `"approved"`)
+
+* `delivered` (value: `"delivered"`)
+
+
+
+
diff --git a/samples/client/petstore/javascript/docs/OuterComposite.md b/samples/client/petstore/javascript/docs/OuterComposite.md
new file mode 100644
index 00000000000..c49b32ff329
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/OuterComposite.md
@@ -0,0 +1,10 @@
+# OpenApiPetstore.OuterComposite
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**myNumber** | **Number** |  | [optional] 
+**myString** | **String** |  | [optional] 
+**myBoolean** | **Boolean** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/OuterEnum.md b/samples/client/petstore/javascript/docs/OuterEnum.md
new file mode 100644
index 00000000000..445d3f4074c
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/OuterEnum.md
@@ -0,0 +1,12 @@
+# OpenApiPetstore.OuterEnum
+
+## Enum
+
+
+* `placed` (value: `"placed"`)
+
+* `approved` (value: `"approved"`)
+
+* `delivered` (value: `"delivered"`)
+
+
diff --git a/samples/client/petstore/javascript/docs/Pet.md b/samples/client/petstore/javascript/docs/Pet.md
new file mode 100644
index 00000000000..e91ae688aad
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Pet.md
@@ -0,0 +1,26 @@
+# OpenApiPetstore.Pet
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Number** |  | [optional] 
+**category** | [**Category**](Category.md) |  | [optional] 
+**name** | **String** |  | 
+**photoUrls** | **[String]** |  | 
+**tags** | [**[Tag]**](Tag.md) |  | [optional] 
+**status** | **String** | pet status in the store | [optional] 
+
+
+
+## Enum: StatusEnum
+
+
+* `available` (value: `"available"`)
+
+* `pending` (value: `"pending"`)
+
+* `sold` (value: `"sold"`)
+
+
+
+
diff --git a/samples/client/petstore/javascript/docs/PetApi.md b/samples/client/petstore/javascript/docs/PetApi.md
new file mode 100644
index 00000000000..fbcca8372cc
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/PetApi.md
@@ -0,0 +1,400 @@
+# OpenApiPetstore.PetApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**addPet**](PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
+[**deletePet**](PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
+[**findPetsByStatus**](PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
+[**findPetsByTags**](PetApi.md#findPetsByTags) | **GET** /pet/findByTags | Finds Pets by tags
+[**getPetById**](PetApi.md#getPetById) | **GET** /pet/{petId} | Find pet by ID
+[**updatePet**](PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
+[**updatePetWithForm**](PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
+[**uploadFile**](PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
+
+
+
+# **addPet**
+> addPet(pet)
+
+Add a new pet to the store
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.addPet(pet, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+
+# **deletePet**
+> deletePet(petId, opts)
+
+Deletes a pet
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var petId = 789; // Number | Pet id to delete
+var opts = {
+  'apiKey': "apiKey_example" // String | 
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.deletePet(petId, opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Number**| Pet id to delete | 
+ **apiKey** | **String**|  | [optional] 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **findPetsByStatus**
+> [Pet] findPetsByStatus(status)
+
+Finds Pets by status
+
+Multiple status values can be provided with comma separated strings
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var status = ["'available'"]; // [String] | Status values that need to be considered for filter
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.findPetsByStatus(status, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **status** | [**[String]**](String.md)| Status values that need to be considered for filter | 
+
+### Return type
+
+[**[Pet]**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **findPetsByTags**
+> [Pet] findPetsByTags(tags)
+
+Finds Pets by tags
+
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var tags = ["inner_example"]; // [String] | Tags to filter by
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.findPetsByTags(tags, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **tags** | [**[String]**](String.md)| Tags to filter by | 
+
+### Return type
+
+[**[Pet]**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **getPetById**
+> Pet getPetById(petId)
+
+Find pet by ID
+
+Returns a single pet
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure API key authorization: api_key
+var api_key = defaultClient.authentications['api_key'];
+api_key.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//api_key.apiKeyPrefix = 'Token';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var petId = 789; // Number | ID of pet to return
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.getPetById(petId, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Number**| ID of pet to return | 
+
+### Return type
+
+[**Pet**](Pet.md)
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **updatePet**
+> updatePet(pet)
+
+Update an existing pet
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var pet = new OpenApiPetstore.Pet(); // Pet | Pet object that needs to be added to the store
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.updatePet(pet, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+
+# **updatePetWithForm**
+> updatePetWithForm(petId, opts)
+
+Updates a pet in the store with form data
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var petId = 789; // Number | ID of pet that needs to be updated
+var opts = {
+  'name': "name_example", // String | Updated name of the pet
+  'status': "status_example" // String | Updated status of the pet
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.updatePetWithForm(petId, opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Number**| ID of pet that needs to be updated | 
+ **name** | **String**| Updated name of the pet | [optional] 
+ **status** | **String**| Updated status of the pet | [optional] 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+
+# **uploadFile**
+> ApiResponse uploadFile(petId, opts)
+
+uploads an image
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure OAuth2 access token for authorization: petstore_auth
+var petstore_auth = defaultClient.authentications['petstore_auth'];
+petstore_auth.accessToken = 'YOUR ACCESS TOKEN';
+
+var apiInstance = new OpenApiPetstore.PetApi();
+var petId = 789; // Number | ID of pet to update
+var opts = {
+  'additionalMetadata': "additionalMetadata_example", // String | Additional data to pass to server
+  'file': "/path/to/file" // File | file to upload
+};
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.uploadFile(petId, opts, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Number**| ID of pet to update | 
+ **additionalMetadata** | **String**| Additional data to pass to server | [optional] 
+ **file** | **File**| file to upload | [optional] 
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
diff --git a/samples/client/petstore/javascript/docs/ReadOnlyFirst.md b/samples/client/petstore/javascript/docs/ReadOnlyFirst.md
new file mode 100644
index 00000000000..671280fba33
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/ReadOnlyFirst.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.ReadOnlyFirst
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** |  | [optional] 
+**baz** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/SpecialModelName.md b/samples/client/petstore/javascript/docs/SpecialModelName.md
new file mode 100644
index 00000000000..6039f53de36
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/SpecialModelName.md
@@ -0,0 +1,8 @@
+# OpenApiPetstore.SpecialModelName
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**specialPropertyName** | **Number** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/StoreApi.md b/samples/client/petstore/javascript/docs/StoreApi.md
new file mode 100644
index 00000000000..6f1e0816f0f
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/StoreApi.md
@@ -0,0 +1,184 @@
+# OpenApiPetstore.StoreApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**deleteOrder**](StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+[**getInventory**](StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
+[**getOrderById**](StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
+[**placeOrder**](StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
+
+
+
+# **deleteOrder**
+> deleteOrder(orderId)
+
+Delete purchase order by ID
+
+For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.StoreApi();
+var orderId = "orderId_example"; // String | ID of the order that needs to be deleted
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.deleteOrder(orderId, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **orderId** | **String**| ID of the order that needs to be deleted | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **getInventory**
+> {String: Number} getInventory()
+
+Returns pet inventories by status
+
+Returns a map of status codes to quantities
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+var defaultClient = OpenApiPetstore.ApiClient.instance;
+// Configure API key authorization: api_key
+var api_key = defaultClient.authentications['api_key'];
+api_key.apiKey = 'YOUR API KEY';
+// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+//api_key.apiKeyPrefix = 'Token';
+
+var apiInstance = new OpenApiPetstore.StoreApi();
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.getInventory(callback);
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+**{String: Number}**
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+
+# **getOrderById**
+> Order getOrderById(orderId)
+
+Find purchase order by ID
+
+For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.StoreApi();
+var orderId = 789; // Number | ID of pet that needs to be fetched
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.getOrderById(orderId, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **orderId** | **Number**| ID of pet that needs to be fetched | 
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **placeOrder**
+> Order placeOrder(order)
+
+Place an order for a pet
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.StoreApi();
+var order = new OpenApiPetstore.Order(); // Order | order placed for purchasing the pet
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.placeOrder(order, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **order** | [**Order**](Order.md)| order placed for purchasing the pet | 
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
diff --git a/samples/client/petstore/javascript/docs/Tag.md b/samples/client/petstore/javascript/docs/Tag.md
new file mode 100644
index 00000000000..a53941e80e0
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/Tag.md
@@ -0,0 +1,9 @@
+# OpenApiPetstore.Tag
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Number** |  | [optional] 
+**name** | **String** |  | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/User.md b/samples/client/petstore/javascript/docs/User.md
new file mode 100644
index 00000000000..2e86dd378bf
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/User.md
@@ -0,0 +1,15 @@
+# OpenApiPetstore.User
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Number** |  | [optional] 
+**username** | **String** |  | [optional] 
+**firstName** | **String** |  | [optional] 
+**lastName** | **String** |  | [optional] 
+**email** | **String** |  | [optional] 
+**password** | **String** |  | [optional] 
+**phone** | **String** |  | [optional] 
+**userStatus** | **Number** | User Status | [optional] 
+
+
diff --git a/samples/client/petstore/javascript/docs/UserApi.md b/samples/client/petstore/javascript/docs/UserApi.md
new file mode 100644
index 00000000000..d75bf078ea4
--- /dev/null
+++ b/samples/client/petstore/javascript/docs/UserApi.md
@@ -0,0 +1,350 @@
+# OpenApiPetstore.UserApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**createUser**](UserApi.md#createUser) | **POST** /user | Create user
+[**createUsersWithArrayInput**](UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
+[**createUsersWithListInput**](UserApi.md#createUsersWithListInput) | **POST** /user/createWithList | Creates list of users with given input array
+[**deleteUser**](UserApi.md#deleteUser) | **DELETE** /user/{username} | Delete user
+[**getUserByName**](UserApi.md#getUserByName) | **GET** /user/{username} | Get user by user name
+[**loginUser**](UserApi.md#loginUser) | **GET** /user/login | Logs user into the system
+[**logoutUser**](UserApi.md#logoutUser) | **GET** /user/logout | Logs out current logged in user session
+[**updateUser**](UserApi.md#updateUser) | **PUT** /user/{username} | Updated user
+
+
+
+# **createUser**
+> createUser(user)
+
+Create user
+
+This can only be done by the logged in user.
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = new OpenApiPetstore.User(); // User | Created user object
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.createUser(user, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**User**](User.md)| Created user object | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **createUsersWithArrayInput**
+> createUsersWithArrayInput(user)
+
+Creates list of users with given input array
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = [new OpenApiPetstore.User()]; // [User] | List of user object
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.createUsersWithArrayInput(user, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**[User]**](Array.md)| List of user object | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **createUsersWithListInput**
+> createUsersWithListInput(user)
+
+Creates list of users with given input array
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var user = [new OpenApiPetstore.User()]; // [User] | List of user object
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.createUsersWithListInput(user, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**[User]**](Array.md)| List of user object | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **deleteUser**
+> deleteUser(username)
+
+Delete user
+
+This can only be done by the logged in user.
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var username = "username_example"; // String | The name that needs to be deleted
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.deleteUser(username, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The name that needs to be deleted | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **getUserByName**
+> User getUserByName(username)
+
+Get user by user name
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var username = "username_example"; // String | The name that needs to be fetched. Use user1 for testing.
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.getUserByName(username, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The name that needs to be fetched. Use user1 for testing. | 
+
+### Return type
+
+[**User**](User.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **loginUser**
+> String loginUser(username, password)
+
+Logs user into the system
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var username = "username_example"; // String | The user name for login
+var password = "password_example"; // String | The password for login in clear text
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+apiInstance.loginUser(username, password, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The user name for login | 
+ **password** | **String**| The password for login in clear text | 
+
+### Return type
+
+**String**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **logoutUser**
+> logoutUser()
+
+Logs out current logged in user session
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.logoutUser(callback);
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **updateUser**
+> updateUser(username, user)
+
+Updated user
+
+This can only be done by the logged in user.
+
+### Example
+```javascript
+var OpenApiPetstore = require('open_api_petstore');
+
+var apiInstance = new OpenApiPetstore.UserApi();
+var username = "username_example"; // String | name that need to be deleted
+var user = new OpenApiPetstore.User(); // User | Updated user object
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+apiInstance.updateUser(username, user, callback);
+```
+
+### Parameters
+
+Name | Type | Description  | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| name that need to be deleted | 
+ **user** | [**User**](User.md)| Updated user object | 
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
diff --git a/samples/client/petstore/javascript/src/ApiClient.js b/samples/client/petstore/javascript/src/ApiClient.js
index b5ba7388a98..f43711962b0 100644
--- a/samples/client/petstore/javascript/src/ApiClient.js
+++ b/samples/client/petstore/javascript/src/ApiClient.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/AnotherFakeApi.js b/samples/client/petstore/javascript/src/api/AnotherFakeApi.js
index 87716e79827..73b690b0d56 100644
--- a/samples/client/petstore/javascript/src/api/AnotherFakeApi.js
+++ b/samples/client/petstore/javascript/src/api/AnotherFakeApi.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/FakeApi.js b/samples/client/petstore/javascript/src/api/FakeApi.js
index 0654ab31789..e36feba7bd5 100644
--- a/samples/client/petstore/javascript/src/api/FakeApi.js
+++ b/samples/client/petstore/javascript/src/api/FakeApi.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/FakeClassnameTags123Api.js b/samples/client/petstore/javascript/src/api/FakeClassnameTags123Api.js
index a2665296239..469890d60bb 100644
--- a/samples/client/petstore/javascript/src/api/FakeClassnameTags123Api.js
+++ b/samples/client/petstore/javascript/src/api/FakeClassnameTags123Api.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/PetApi.js b/samples/client/petstore/javascript/src/api/PetApi.js
index 4db2caf67f4..840cb2fa67e 100644
--- a/samples/client/petstore/javascript/src/api/PetApi.js
+++ b/samples/client/petstore/javascript/src/api/PetApi.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/StoreApi.js b/samples/client/petstore/javascript/src/api/StoreApi.js
index 2632b4ff2fd..f09beb807df 100644
--- a/samples/client/petstore/javascript/src/api/StoreApi.js
+++ b/samples/client/petstore/javascript/src/api/StoreApi.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/api/UserApi.js b/samples/client/petstore/javascript/src/api/UserApi.js
index ce944611027..319572cf2a6 100644
--- a/samples/client/petstore/javascript/src/api/UserApi.js
+++ b/samples/client/petstore/javascript/src/api/UserApi.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/index.js b/samples/client/petstore/javascript/src/index.js
index dabafded7e3..25685095fb2 100644
--- a/samples/client/petstore/javascript/src/index.js
+++ b/samples/client/petstore/javascript/src/index.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/AdditionalPropertiesClass.js b/samples/client/petstore/javascript/src/model/AdditionalPropertiesClass.js
index cd548267e93..08572d90084 100644
--- a/samples/client/petstore/javascript/src/model/AdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript/src/model/AdditionalPropertiesClass.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Animal.js b/samples/client/petstore/javascript/src/model/Animal.js
index 68534d978c4..29376d771bf 100644
--- a/samples/client/petstore/javascript/src/model/Animal.js
+++ b/samples/client/petstore/javascript/src/model/Animal.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/AnimalFarm.js b/samples/client/petstore/javascript/src/model/AnimalFarm.js
index 8129a6e8f6e..e1a4797eec1 100644
--- a/samples/client/petstore/javascript/src/model/AnimalFarm.js
+++ b/samples/client/petstore/javascript/src/model/AnimalFarm.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ApiResponse.js b/samples/client/petstore/javascript/src/model/ApiResponse.js
index ece36148c2e..5c112418181 100644
--- a/samples/client/petstore/javascript/src/model/ApiResponse.js
+++ b/samples/client/petstore/javascript/src/model/ApiResponse.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ArrayOfArrayOfNumberOnly.js b/samples/client/petstore/javascript/src/model/ArrayOfArrayOfNumberOnly.js
index a4b18f5b2a1..024c26469df 100644
--- a/samples/client/petstore/javascript/src/model/ArrayOfArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript/src/model/ArrayOfArrayOfNumberOnly.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ArrayOfNumberOnly.js b/samples/client/petstore/javascript/src/model/ArrayOfNumberOnly.js
index ff02ae19d0c..ca79a7c2a6d 100644
--- a/samples/client/petstore/javascript/src/model/ArrayOfNumberOnly.js
+++ b/samples/client/petstore/javascript/src/model/ArrayOfNumberOnly.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ArrayTest.js b/samples/client/petstore/javascript/src/model/ArrayTest.js
index 65a075c34ed..01b97a1b580 100644
--- a/samples/client/petstore/javascript/src/model/ArrayTest.js
+++ b/samples/client/petstore/javascript/src/model/ArrayTest.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Capitalization.js b/samples/client/petstore/javascript/src/model/Capitalization.js
index a0a7c0251d8..05934fb253c 100644
--- a/samples/client/petstore/javascript/src/model/Capitalization.js
+++ b/samples/client/petstore/javascript/src/model/Capitalization.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Cat.js b/samples/client/petstore/javascript/src/model/Cat.js
index 624a8fbcc49..10b787fed4e 100644
--- a/samples/client/petstore/javascript/src/model/Cat.js
+++ b/samples/client/petstore/javascript/src/model/Cat.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Category.js b/samples/client/petstore/javascript/src/model/Category.js
index 6754b1ff383..c289c6b8e5b 100644
--- a/samples/client/petstore/javascript/src/model/Category.js
+++ b/samples/client/petstore/javascript/src/model/Category.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ClassModel.js b/samples/client/petstore/javascript/src/model/ClassModel.js
index 67d65de1bfc..6edd8fbadd0 100644
--- a/samples/client/petstore/javascript/src/model/ClassModel.js
+++ b/samples/client/petstore/javascript/src/model/ClassModel.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Client.js b/samples/client/petstore/javascript/src/model/Client.js
index f02784e56ee..e563bcf7ea5 100644
--- a/samples/client/petstore/javascript/src/model/Client.js
+++ b/samples/client/petstore/javascript/src/model/Client.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Dog.js b/samples/client/petstore/javascript/src/model/Dog.js
index e4772e1ea86..c308f3dc9f1 100644
--- a/samples/client/petstore/javascript/src/model/Dog.js
+++ b/samples/client/petstore/javascript/src/model/Dog.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/EnumArrays.js b/samples/client/petstore/javascript/src/model/EnumArrays.js
index b6eaef5dd20..07d52b119db 100644
--- a/samples/client/petstore/javascript/src/model/EnumArrays.js
+++ b/samples/client/petstore/javascript/src/model/EnumArrays.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/EnumClass.js b/samples/client/petstore/javascript/src/model/EnumClass.js
index 7a454e5bf91..d4a9f39f566 100644
--- a/samples/client/petstore/javascript/src/model/EnumClass.js
+++ b/samples/client/petstore/javascript/src/model/EnumClass.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/EnumTest.js b/samples/client/petstore/javascript/src/model/EnumTest.js
index a1fa0b75145..4dfc6753323 100644
--- a/samples/client/petstore/javascript/src/model/EnumTest.js
+++ b/samples/client/petstore/javascript/src/model/EnumTest.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/FormatTest.js b/samples/client/petstore/javascript/src/model/FormatTest.js
index 458b81001de..6c5986d4898 100644
--- a/samples/client/petstore/javascript/src/model/FormatTest.js
+++ b/samples/client/petstore/javascript/src/model/FormatTest.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/HasOnlyReadOnly.js b/samples/client/petstore/javascript/src/model/HasOnlyReadOnly.js
index 7efb6d62c19..484fd0c9991 100644
--- a/samples/client/petstore/javascript/src/model/HasOnlyReadOnly.js
+++ b/samples/client/petstore/javascript/src/model/HasOnlyReadOnly.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/List.js b/samples/client/petstore/javascript/src/model/List.js
index ceeaf6e437a..ab3c2e34e34 100644
--- a/samples/client/petstore/javascript/src/model/List.js
+++ b/samples/client/petstore/javascript/src/model/List.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/MapTest.js b/samples/client/petstore/javascript/src/model/MapTest.js
index c0cebc6d010..adf82a358c2 100644
--- a/samples/client/petstore/javascript/src/model/MapTest.js
+++ b/samples/client/petstore/javascript/src/model/MapTest.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/MixedPropertiesAndAdditionalPropertiesClass.js b/samples/client/petstore/javascript/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
index db59e1155b5..62c7a2f59e3 100644
--- a/samples/client/petstore/javascript/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
+++ b/samples/client/petstore/javascript/src/model/MixedPropertiesAndAdditionalPropertiesClass.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Model200Response.js b/samples/client/petstore/javascript/src/model/Model200Response.js
index 46bd28aab84..84131169fb1 100644
--- a/samples/client/petstore/javascript/src/model/Model200Response.js
+++ b/samples/client/petstore/javascript/src/model/Model200Response.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ModelReturn.js b/samples/client/petstore/javascript/src/model/ModelReturn.js
index 3fb41de6d85..87484d2ee23 100644
--- a/samples/client/petstore/javascript/src/model/ModelReturn.js
+++ b/samples/client/petstore/javascript/src/model/ModelReturn.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Name.js b/samples/client/petstore/javascript/src/model/Name.js
index e091e1974fe..8c851c4cec5 100644
--- a/samples/client/petstore/javascript/src/model/Name.js
+++ b/samples/client/petstore/javascript/src/model/Name.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/NumberOnly.js b/samples/client/petstore/javascript/src/model/NumberOnly.js
index eb056e86ee2..389ad08e8c5 100644
--- a/samples/client/petstore/javascript/src/model/NumberOnly.js
+++ b/samples/client/petstore/javascript/src/model/NumberOnly.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Order.js b/samples/client/petstore/javascript/src/model/Order.js
index 70c445deacf..bfd5f3714be 100644
--- a/samples/client/petstore/javascript/src/model/Order.js
+++ b/samples/client/petstore/javascript/src/model/Order.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/OuterComposite.js b/samples/client/petstore/javascript/src/model/OuterComposite.js
index cee1b9a083e..b4fc48476de 100644
--- a/samples/client/petstore/javascript/src/model/OuterComposite.js
+++ b/samples/client/petstore/javascript/src/model/OuterComposite.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/OuterEnum.js b/samples/client/petstore/javascript/src/model/OuterEnum.js
index ebae6bbc547..9e1f532b44d 100644
--- a/samples/client/petstore/javascript/src/model/OuterEnum.js
+++ b/samples/client/petstore/javascript/src/model/OuterEnum.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Pet.js b/samples/client/petstore/javascript/src/model/Pet.js
index ff1df0c02f1..55997490b78 100644
--- a/samples/client/petstore/javascript/src/model/Pet.js
+++ b/samples/client/petstore/javascript/src/model/Pet.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/ReadOnlyFirst.js b/samples/client/petstore/javascript/src/model/ReadOnlyFirst.js
index a0460724c25..1b0ae1104cc 100644
--- a/samples/client/petstore/javascript/src/model/ReadOnlyFirst.js
+++ b/samples/client/petstore/javascript/src/model/ReadOnlyFirst.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/SpecialModelName.js b/samples/client/petstore/javascript/src/model/SpecialModelName.js
index 8474a682d26..22464bbe7a2 100644
--- a/samples/client/petstore/javascript/src/model/SpecialModelName.js
+++ b/samples/client/petstore/javascript/src/model/SpecialModelName.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/Tag.js b/samples/client/petstore/javascript/src/model/Tag.js
index b4f7d51e2a8..9e4f88b0872 100644
--- a/samples/client/petstore/javascript/src/model/Tag.js
+++ b/samples/client/petstore/javascript/src/model/Tag.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/client/petstore/javascript/src/model/User.js b/samples/client/petstore/javascript/src/model/User.js
index 5ba53768ad8..06d4e6e7ad0 100644
--- a/samples/client/petstore/javascript/src/model/User.js
+++ b/samples/client/petstore/javascript/src/model/User.js
@@ -7,7 +7,7 @@
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * https://openapi-generator.tech
  *
- * OpenAPI Generator version: 3.0.0-SNAPSHOT
+ * OpenAPI Generator version: 3.0.2-SNAPSHOT
  *
  * Do not edit the class manually.
  *
diff --git a/samples/server/petstore/go-api-server/.openapi-generator/VERSION b/samples/server/petstore/go-api-server/.openapi-generator/VERSION
index 096bf47efe3..ad121e8340e 100644
--- a/samples/server/petstore/go-api-server/.openapi-generator/VERSION
+++ b/samples/server/petstore/go-api-server/.openapi-generator/VERSION
@@ -1 +1 @@
-3.0.0-SNAPSHOT
\ No newline at end of file
+3.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/petstore/go-api-server/Dockerfile b/samples/server/petstore/go-api-server/Dockerfile
new file mode 100644
index 00000000000..cfdfbaed080
--- /dev/null
+++ b/samples/server/petstore/go-api-server/Dockerfile
@@ -0,0 +1,14 @@
+FROM golang:1.10 AS build
+WORKDIR /go/src
+COPY go ./go
+COPY main.go .
+
+ENV CGO_ENABLED=0
+RUN go get -d -v ./...
+
+RUN go build -a -installsuffix cgo -o petstoreserver .
+
+FROM scratch AS runtime
+COPY --from=build /go/src/petstoreserver ./
+EXPOSE 8080/tcp
+ENTRYPOINT ["./petstoreserver"]
diff --git a/samples/server/petstore/go-api-server/api/openapi.yaml b/samples/server/petstore/go-api-server/api/openapi.yaml
index 01e572ba924..c0b60f85dde 100644
--- a/samples/server/petstore/go-api-server/api/openapi.yaml
+++ b/samples/server/petstore/go-api-server/api/openapi.yaml
@@ -1,29 +1,25 @@
 openapi: 3.0.1
 info:
-  title: OpenAPI Petstore
   description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
   license:
     name: Apache-2.0
     url: http://www.apache.org/licenses/LICENSE-2.0.html
+  title: OpenAPI Petstore
   version: 1.0.0
 servers:
 - url: http://petstore.swagger.io/v2
 tags:
-- name: pet
-  description: Everything about your Pets
-- name: store
-  description: Access to Petstore orders
-- name: user
-  description: Operations about user
+- description: Everything about your Pets
+  name: pet
+- description: Access to Petstore orders
+  name: store
+- description: Operations about user
+  name: user
 paths:
   /pet:
-    put:
-      tags:
-      - pet
-      summary: Update an existing pet
-      operationId: updatePet
+    post:
+      operationId: addPet
       requestBody:
-        description: Pet object that needs to be added to the store
         content:
           application/json:
             schema:
@@ -31,144 +27,171 @@ paths:
           application/xml:
             schema:
               $ref: '#/components/schemas/Pet'
+        description: Pet object that needs to be added to the store
+        required: true
+      responses:
+        405:
+          content: {}
+          description: Invalid input
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Add a new pet to the store
+      tags:
+      - pet
+    put:
+      operationId: updatePet
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Pet'
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/Pet'
+        description: Pet object that needs to be added to the store
         required: true
       responses:
         400:
+          content: {}
           description: Invalid ID supplied
-          content: {}
         404:
+          content: {}
           description: Pet not found
-          content: {}
         405:
-          description: Validation exception
           content: {}
+          description: Validation exception
       security:
       - petstore_auth:
         - write:pets
         - read:pets
-    post:
+      summary: Update an existing pet
       tags:
       - pet
-      summary: Add a new pet to the store
-      operationId: addPet
-      requestBody:
-        description: Pet object that needs to be added to the store
-        content:
-          application/json:
-            schema:
-              $ref: '#/components/schemas/Pet'
-          application/xml:
-            schema:
-              $ref: '#/components/schemas/Pet'
-        required: true
-      responses:
-        405:
-          description: Invalid input
-          content: {}
-      security:
-      - petstore_auth:
-        - write:pets
-        - read:pets
   /pet/findByStatus:
     get:
-      tags:
-      - pet
-      summary: Finds Pets by status
       description: Multiple status values can be provided with comma separated strings
       operationId: findPetsByStatus
       parameters:
-      - name: status
-        in: query
-        description: Status values that need to be considered for filter
-        required: true
+      - description: Status values that need to be considered for filter
         explode: false
+        in: query
+        name: status
+        required: true
         schema:
-          type: array
           items:
-            type: string
             default: available
             enum:
             - available
             - pending
             - sold
+            type: string
+          type: array
+        style: form
       responses:
         200:
-          description: successful operation
           content:
             application/xml:
               schema:
-                type: array
                 items:
                   $ref: '#/components/schemas/Pet'
+                type: array
             application/json:
               schema:
-                type: array
                 items:
                   $ref: '#/components/schemas/Pet'
+                type: array
+          description: successful operation
         400:
-          description: Invalid status value
           content: {}
+          description: Invalid status value
       security:
       - petstore_auth:
         - write:pets
         - read:pets
-  /pet/findByTags:
-    get:
+      summary: Finds Pets by status
       tags:
       - pet
-      summary: Finds Pets by tags
+  /pet/findByTags:
+    get:
+      deprecated: true
       description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
       operationId: findPetsByTags
       parameters:
-      - name: tags
-        in: query
-        description: Tags to filter by
-        required: true
+      - description: Tags to filter by
         explode: false
+        in: query
+        name: tags
+        required: true
         schema:
-          type: array
           items:
             type: string
+          type: array
+        style: form
       responses:
         200:
-          description: successful operation
           content:
             application/xml:
               schema:
-                type: array
                 items:
                   $ref: '#/components/schemas/Pet'
+                type: array
             application/json:
               schema:
-                type: array
                 items:
                   $ref: '#/components/schemas/Pet'
+                type: array
+          description: successful operation
         400:
-          description: Invalid tag value
           content: {}
-      deprecated: true
+          description: Invalid tag value
       security:
       - petstore_auth:
         - write:pets
         - read:pets
-  /pet/{petId}:
-    get:
+      summary: Finds Pets by tags
       tags:
       - pet
-      summary: Find pet by ID
+  /pet/{petId}:
+    delete:
+      operationId: deletePet
+      parameters:
+      - in: header
+        name: api_key
+        schema:
+          type: string
+      - description: Pet id to delete
+        in: path
+        name: petId
+        required: true
+        schema:
+          format: int64
+          type: integer
+      responses:
+        400:
+          content: {}
+          description: Invalid pet value
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Deletes a pet
+      tags:
+      - pet
+    get:
       description: Returns a single pet
       operationId: getPetById
       parameters:
-      - name: petId
+      - description: ID of pet to return
         in: path
-        description: ID of pet to return
+        name: petId
         required: true
         schema:
-          type: integer
           format: int64
+          type: integer
       responses:
         200:
-          description: successful operation
           content:
             application/xml:
               schema:
@@ -176,143 +199,118 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Pet'
+          description: successful operation
         400:
+          content: {}
           description: Invalid ID supplied
-          content: {}
         404:
-          description: Pet not found
           content: {}
+          description: Pet not found
       security:
       - api_key: []
-    post:
+      summary: Find pet by ID
       tags:
       - pet
-      summary: Updates a pet in the store with form data
+    post:
       operationId: updatePetWithForm
       parameters:
-      - name: petId
+      - description: ID of pet that needs to be updated
         in: path
-        description: ID of pet that needs to be updated
+        name: petId
         required: true
         schema:
-          type: integer
           format: int64
+          type: integer
       requestBody:
         content:
           application/x-www-form-urlencoded:
             schema:
               properties:
                 name:
-                  type: string
                   description: Updated name of the pet
-                status:
                   type: string
+                status:
                   description: Updated status of the pet
+                  type: string
       responses:
         405:
-          description: Invalid input
           content: {}
+          description: Invalid input
       security:
       - petstore_auth:
         - write:pets
         - read:pets
-    delete:
+      summary: Updates a pet in the store with form data
       tags:
       - pet
-      summary: Deletes a pet
-      operationId: deletePet
-      parameters:
-      - name: api_key
-        in: header
-        schema:
-          type: string
-      - name: petId
-        in: path
-        description: Pet id to delete
-        required: true
-        schema:
-          type: integer
-          format: int64
-      responses:
-        400:
-          description: Invalid pet value
-          content: {}
-      security:
-      - petstore_auth:
-        - write:pets
-        - read:pets
   /pet/{petId}/uploadImage:
     post:
-      tags:
-      - pet
-      summary: uploads an image
       operationId: uploadFile
       parameters:
-      - name: petId
+      - description: ID of pet to update
         in: path
-        description: ID of pet to update
+        name: petId
         required: true
         schema:
-          type: integer
           format: int64
+          type: integer
       requestBody:
         content:
           multipart/form-data:
             schema:
               properties:
                 additionalMetadata:
-                  type: string
                   description: Additional data to pass to server
-                file:
                   type: string
+                file:
                   description: file to upload
                   format: binary
+                  type: string
       responses:
         200:
-          description: successful operation
           content:
             application/json:
               schema:
                 $ref: '#/components/schemas/ApiResponse'
+          description: successful operation
       security:
       - petstore_auth:
         - write:pets
         - read:pets
+      summary: uploads an image
+      tags:
+      - pet
   /store/inventory:
     get:
-      tags:
-      - store
-      summary: Returns pet inventories by status
       description: Returns a map of status codes to quantities
       operationId: getInventory
       responses:
         200:
-          description: successful operation
           content:
             application/json:
               schema:
-                type: object
                 additionalProperties:
-                  type: integer
                   format: int32
+                  type: integer
+                type: object
+          description: successful operation
       security:
       - api_key: []
-  /store/order:
-    post:
+      summary: Returns pet inventories by status
       tags:
       - store
-      summary: Place an order for a pet
+  /store/order:
+    post:
       operationId: placeOrder
       requestBody:
-        description: order placed for purchasing the pet
         content:
           '*/*':
             schema:
               $ref: '#/components/schemas/Order'
+        description: order placed for purchasing the pet
         required: true
       responses:
         200:
-          description: successful operation
           content:
             application/xml:
               schema:
@@ -320,187 +318,207 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/Order'
+          description: successful operation
         400:
+          content: {}
           description: Invalid Order
-          content: {}
+      summary: Place an order for a pet
+      tags:
+      - store
   /store/order/{orderId}:
-    get:
-      tags:
-      - store
-      summary: Find purchase order by ID
-      description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
-      operationId: getOrderById
-      parameters:
-      - name: orderId
-        in: path
-        description: ID of pet that needs to be fetched
-        required: true
-        schema:
-          maximum: 5
-          minimum: 1
-          type: integer
-          format: int64
-      responses:
-        200:
-          description: successful operation
-          content:
-            application/xml:
-              schema:
-                $ref: '#/components/schemas/Order'
-            application/json:
-              schema:
-                $ref: '#/components/schemas/Order'
-        400:
-          description: Invalid ID supplied
-          content: {}
-        404:
-          description: Order not found
-          content: {}
     delete:
-      tags:
-      - store
-      summary: Delete purchase order by ID
       description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
       operationId: deleteOrder
       parameters:
-      - name: orderId
+      - description: ID of the order that needs to be deleted
         in: path
-        description: ID of the order that needs to be deleted
+        name: orderId
         required: true
         schema:
           type: string
       responses:
         400:
+          content: {}
           description: Invalid ID supplied
-          content: {}
         404:
-          description: Order not found
           content: {}
+          description: Order not found
+      summary: Delete purchase order by ID
+      tags:
+      - store
+    get:
+      description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+      operationId: getOrderById
+      parameters:
+      - description: ID of pet that needs to be fetched
+        in: path
+        name: orderId
+        required: true
+        schema:
+          format: int64
+          maximum: 5
+          minimum: 1
+          type: integer
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                $ref: '#/components/schemas/Order'
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Order'
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid ID supplied
+        404:
+          content: {}
+          description: Order not found
+      summary: Find purchase order by ID
+      tags:
+      - store
   /user:
     post:
-      tags:
-      - user
-      summary: Create user
       description: This can only be done by the logged in user.
       operationId: createUser
       requestBody:
-        description: Created user object
         content:
           '*/*':
             schema:
               $ref: '#/components/schemas/User'
+        description: Created user object
         required: true
       responses:
         default:
-          description: successful operation
           content: {}
+          description: successful operation
+      summary: Create user
+      tags:
+      - user
   /user/createWithArray:
     post:
-      tags:
-      - user
-      summary: Creates list of users with given input array
       operationId: createUsersWithArrayInput
       requestBody:
-        description: List of user object
         content:
           '*/*':
             schema:
-              type: array
               items:
                 $ref: '#/components/schemas/User'
+              type: array
+        description: List of user object
         required: true
       responses:
         default:
-          description: successful operation
           content: {}
+          description: successful operation
+      summary: Creates list of users with given input array
+      tags:
+      - user
   /user/createWithList:
     post:
-      tags:
-      - user
-      summary: Creates list of users with given input array
       operationId: createUsersWithListInput
       requestBody:
-        description: List of user object
         content:
           '*/*':
             schema:
-              type: array
               items:
                 $ref: '#/components/schemas/User'
+              type: array
+        description: List of user object
         required: true
       responses:
         default:
-          description: successful operation
           content: {}
-  /user/login:
-    get:
+          description: successful operation
+      summary: Creates list of users with given input array
       tags:
       - user
-      summary: Logs user into the system
+  /user/login:
+    get:
       operationId: loginUser
       parameters:
-      - name: username
+      - description: The user name for login
         in: query
-        description: The user name for login
+        name: username
         required: true
         schema:
           type: string
-      - name: password
+      - description: The password for login in clear text
         in: query
-        description: The password for login in clear text
+        name: password
         required: true
         schema:
           type: string
       responses:
         200:
+          content:
+            application/xml:
+              schema:
+                type: string
+            application/json:
+              schema:
+                type: string
           description: successful operation
           headers:
             X-Rate-Limit:
               description: calls per hour allowed by the user
               schema:
-                type: integer
                 format: int32
+                type: integer
             X-Expires-After:
               description: date in UTC when toekn expires
               schema:
-                type: string
                 format: date-time
-          content:
-            application/xml:
-              schema:
-                type: string
-            application/json:
-              schema:
                 type: string
         400:
-          description: Invalid username/password supplied
           content: {}
-  /user/logout:
-    get:
+          description: Invalid username/password supplied
+      summary: Logs user into the system
       tags:
       - user
-      summary: Logs out current logged in user session
+  /user/logout:
+    get:
       operationId: logoutUser
       responses:
         default:
-          description: successful operation
           content: {}
-  /user/{username}:
-    get:
+          description: successful operation
+      summary: Logs out current logged in user session
       tags:
       - user
-      summary: Get user by user name
+  /user/{username}:
+    delete:
+      description: This can only be done by the logged in user.
+      operationId: deleteUser
+      parameters:
+      - description: The name that needs to be deleted
+        in: path
+        name: username
+        required: true
+        schema:
+          type: string
+      responses:
+        400:
+          content: {}
+          description: Invalid username supplied
+        404:
+          content: {}
+          description: User not found
+      summary: Delete user
+      tags:
+      - user
+    get:
       operationId: getUserByName
       parameters:
-      - name: username
+      - description: The name that needs to be fetched. Use user1 for testing.
         in: path
-        description: The name that needs to be fetched. Use user1 for testing.
+        name: username
         required: true
         schema:
           type: string
       responses:
         200:
-          description: successful operation
           content:
             application/xml:
               schema:
@@ -508,87 +526,46 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/User'
+          description: successful operation
         400:
+          content: {}
           description: Invalid username supplied
-          content: {}
         404:
-          description: User not found
           content: {}
-    put:
+          description: User not found
+      summary: Get user by user name
       tags:
       - user
-      summary: Updated user
+    put:
       description: This can only be done by the logged in user.
       operationId: updateUser
       parameters:
-      - name: username
+      - description: name that need to be deleted
         in: path
-        description: name that need to be deleted
+        name: username
         required: true
         schema:
           type: string
       requestBody:
-        description: Updated user object
         content:
           '*/*':
             schema:
               $ref: '#/components/schemas/User'
+        description: Updated user object
         required: true
       responses:
         400:
+          content: {}
           description: Invalid user supplied
-          content: {}
         404:
-          description: User not found
           content: {}
-    delete:
+          description: User not found
+      summary: Updated user
       tags:
       - user
-      summary: Delete user
-      description: This can only be done by the logged in user.
-      operationId: deleteUser
-      parameters:
-      - name: username
-        in: path
-        description: The name that needs to be deleted
-        required: true
-        schema:
-          type: string
-      responses:
-        400:
-          description: Invalid username supplied
-          content: {}
-        404:
-          description: User not found
-          content: {}
 components:
   schemas:
     Order:
-      title: Pet Order
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        petId:
-          type: integer
-          format: int64
-        quantity:
-          type: integer
-          format: int32
-        shipDate:
-          type: string
-          format: date-time
-        status:
-          type: string
-          description: Order Status
-          enum:
-          - placed
-          - approved
-          - delivered
-        complete:
-          type: boolean
-          default: false
       description: An order for a pets from the pet store
       example:
         petId: 6
@@ -597,30 +574,63 @@ components:
         shipDate: 2000-01-23T04:56:07.000+00:00
         complete: false
         status: placed
+      properties:
+        id:
+          format: int64
+          type: integer
+        petId:
+          format: int64
+          type: integer
+        quantity:
+          format: int32
+          type: integer
+        shipDate:
+          format: date-time
+          type: string
+        status:
+          description: Order Status
+          enum:
+          - placed
+          - approved
+          - delivered
+          type: string
+        complete:
+          default: false
+          type: boolean
+      title: Pet Order
+      type: object
       xml:
         name: Order
     Category:
-      title: Pet category
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        name:
-          type: string
       description: A category for a pet
       example:
         name: name
         id: 6
+      properties:
+        id:
+          format: int64
+          type: integer
+        name:
+          type: string
+      title: Pet category
+      type: object
       xml:
         name: Category
     User:
-      title: a User
-      type: object
+      description: A User who is purchasing from the pet store
+      example:
+        firstName: firstName
+        lastName: lastName
+        password: password
+        userStatus: 6
+        phone: phone
+        id: 0
+        email: email
+        username: username
       properties:
         id:
-          type: integer
           format: int64
+          type: integer
         username:
           type: string
         firstName:
@@ -634,72 +644,29 @@ components:
         phone:
           type: string
         userStatus:
-          type: integer
           description: User Status
           format: int32
-      description: A User who is purchasing from the pet store
-      example:
-        firstName: firstName
-        lastName: lastName
-        password: password
-        userStatus: 6
-        phone: phone
-        id: 0
-        email: email
-        username: username
+          type: integer
+      title: a User
+      type: object
       xml:
         name: User
     Tag:
-      title: Pet Tag
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        name:
-          type: string
       description: A tag for a pet
       example:
         name: name
         id: 1
+      properties:
+        id:
+          format: int64
+          type: integer
+        name:
+          type: string
+      title: Pet Tag
+      type: object
       xml:
         name: Tag
     Pet:
-      title: a Pet
-      required:
-      - name
-      - photoUrls
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        category:
-          $ref: '#/components/schemas/Category'
-        name:
-          type: string
-          example: doggie
-        photoUrls:
-          type: array
-          xml:
-            name: photoUrl
-            wrapped: true
-          items:
-            type: string
-        tags:
-          type: array
-          xml:
-            name: tag
-            wrapped: true
-          items:
-            $ref: '#/components/schemas/Tag'
-        status:
-          type: string
-          description: pet status in the store
-          enum:
-          - available
-          - pending
-          - sold
       description: A pet for sale in the pet store
       example:
         photoUrls:
@@ -716,34 +683,69 @@ components:
         - name: name
           id: 1
         status: available
+      properties:
+        id:
+          format: int64
+          type: integer
+        category:
+          $ref: '#/components/schemas/Category'
+        name:
+          example: doggie
+          type: string
+        photoUrls:
+          items:
+            type: string
+          type: array
+          xml:
+            name: photoUrl
+            wrapped: true
+        tags:
+          items:
+            $ref: '#/components/schemas/Tag'
+          type: array
+          xml:
+            name: tag
+            wrapped: true
+        status:
+          description: pet status in the store
+          enum:
+          - available
+          - pending
+          - sold
+          type: string
+      required:
+      - name
+      - photoUrls
+      title: a Pet
+      type: object
       xml:
         name: Pet
     ApiResponse:
-      title: An uploaded response
-      type: object
-      properties:
-        code:
-          type: integer
-          format: int32
-        type:
-          type: string
-        message:
-          type: string
       description: Describes the result of uploading an image resource
       example:
         code: 0
         type: type
         message: message
+      properties:
+        code:
+          format: int32
+          type: integer
+        type:
+          type: string
+        message:
+          type: string
+      title: An uploaded response
+      type: object
   securitySchemes:
     petstore_auth:
-      type: oauth2
       flows:
         implicit:
           authorizationUrl: http://petstore.swagger.io/api/oauth/dialog
           scopes:
             write:pets: modify pets in your account
             read:pets: read your pets
+      type: oauth2
     api_key:
-      type: apiKey
-      name: api_key
       in: header
+      name: api_key
+      type: apiKey
diff --git a/samples/server/petstore/go-api-server/go/README.md b/samples/server/petstore/go-api-server/go/README.md
index 100f2503789..30088c34683 100644
--- a/samples/server/petstore/go-api-server/go/README.md
+++ b/samples/server/petstore/go-api-server/go/README.md
@@ -1,16 +1,16 @@
 # Go API Server for petstoreserver
 
-This is a sample server Petstore server.  You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).  For this sample, you can use the api key `special-key` to test the authorization filters.
+This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 
 ## Overview
-This server was generated by the [swagger-codegen]
-(https://github.com/swagger-api/swagger-codegen) project.  
+This server was generated by the [openapi-generator]
+(https://openapi-generator.tech) project.
 By using the [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub.  
 -
 
 To see how to make this your own, look here:
 
-[README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md)
+[README]((https://openapi-generator.tech))
 
 - API version: 1.0.0
 
@@ -22,3 +22,14 @@ To run the server, follow these simple steps:
 go run main.go
 ```
 
+To run the server in a docker container
+```
+docker build --network=host -t petstoreserver .
+```
+
+Once image is built use
+```
+docker run --rm -it petstoreserver 
+```
+
+
diff --git a/samples/server/petstore/rust-server/.openapi-generator-ignore b/samples/server/petstore/rust-server/.openapi-generator-ignore
index c5fa491b4c5..7484ee590a3 100644
--- a/samples/server/petstore/rust-server/.openapi-generator-ignore
+++ b/samples/server/petstore/rust-server/.openapi-generator-ignore
@@ -1,11 +1,11 @@
-# Swagger Codegen Ignore
-# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
 
 # Use this file to prevent files from being overwritten by the generator.
 # The patterns follow closely to .gitignore or .dockerignore.
 
 # As an example, the C# client generator defines ApiClient.cs.
-# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line:
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
 #ApiClient.cs
 
 # You can match any string of characters against a directory, file or extension with a single asterisk (*):
diff --git a/samples/server/petstore/rust-server/.openapi-generator/VERSION b/samples/server/petstore/rust-server/.openapi-generator/VERSION
index 855ff9501eb..ad121e8340e 100644
--- a/samples/server/petstore/rust-server/.openapi-generator/VERSION
+++ b/samples/server/petstore/rust-server/.openapi-generator/VERSION
@@ -1 +1 @@
-2.4.0-SNAPSHOT
\ No newline at end of file
+3.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/petstore/rust-server/Cargo.toml b/samples/server/petstore/rust-server/Cargo.toml
index 6b264cc4709..536506c88c6 100644
--- a/samples/server/petstore/rust-server/Cargo.toml
+++ b/samples/server/petstore/rust-server/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "petstore_api"
 version = "1.0.0"
-authors = ["apiteam@swagger.io"]
+authors = []
 description = "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\"
 license = "Unlicense"
 
@@ -17,7 +17,7 @@ chrono = { version = "0.4", features = ["serde"] }
 futures = "0.1"
 hyper = {version = "0.11", optional = true}
 hyper-tls = {version = "0.1.2", optional = true}
-swagger = "0.10.0"
+swagger = "0.12.1"
 
 # Not required by example server.
 #
diff --git a/samples/server/petstore/rust-server/README.md b/samples/server/petstore/rust-server/README.md
index 7080b7d2e49..9d56541b6a9 100644
--- a/samples/server/petstore/rust-server/README.md
+++ b/samples/server/petstore/rust-server/README.md
@@ -3,17 +3,16 @@
 This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
 
 ## Overview
-This client/server was generated by the [swagger-codegen]
-(https://github.com/swagger-api/swagger-codegen) project.
+This client/server was generated by the [openapi-generator]
+(https://openapi-generator.tech) project.
 By using the [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub.
 -
 
 To see how to make this your own, look here:
 
-[README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md)
+[README]((https://openapi-generator.tech))
 
 - API version: 1.0.0
-- Build date: 2018-04-03T12:24:00.479+01:00
 
 This autogenerated project defines an API crate `petstore_api` which contains:
 * An `Api` trait defining the API in Rust.
@@ -57,11 +56,11 @@ To run a client, follow one of the following simple steps:
 
 ```
 cargo run --example client TestSpecialTags
-cargo run --example client TestBodyWithQueryParams
 cargo run --example client FakeOuterBooleanSerialize
 cargo run --example client FakeOuterCompositeSerialize
 cargo run --example client FakeOuterNumberSerialize
 cargo run --example client FakeOuterStringSerialize
+cargo run --example client TestBodyWithQueryParams
 cargo run --example client TestClientModel
 cargo run --example client TestEndpointParameters
 cargo run --example client TestEnumParameters
diff --git a/samples/server/petstore/rust-server/api/openapi.yaml b/samples/server/petstore/rust-server/api/openapi.yaml
new file mode 100644
index 00000000000..37cff2cebd9
--- /dev/null
+++ b/samples/server/petstore/rust-server/api/openapi.yaml
@@ -0,0 +1,1456 @@
+openapi: 3.0.1
+info:
+  description: 'This spec is mainly for testing Petstore server and contains fake
+    endpoints, models. Please do not use this for any other purpose. Special characters:
+    " \'
+  license:
+    name: Apache-2.0
+    url: http://www.apache.org/licenses/LICENSE-2.0.html
+  title: OpenAPI Petstore
+  version: 1.0.0
+servers:
+- url: http://petstore.swagger.io:80/v2
+tags:
+- description: Everything about your Pets
+  name: pet
+- description: Access to Petstore orders
+  name: store
+- description: Operations about user
+  name: user
+paths:
+  /pet:
+    post:
+      operationId: addPet
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Pet'
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/Pet'
+        description: Pet object that needs to be added to the store
+        required: true
+      responses:
+        405:
+          content: {}
+          description: Invalid input
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Add a new pet to the store
+      tags:
+      - pet
+    put:
+      operationId: updatePet
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Pet'
+          application/xml:
+            schema:
+              $ref: '#/components/schemas/Pet'
+        description: Pet object that needs to be added to the store
+        required: true
+      responses:
+        400:
+          content: {}
+          description: Invalid ID supplied
+        404:
+          content: {}
+          description: Pet not found
+        405:
+          content: {}
+          description: Validation exception
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Update an existing pet
+      tags:
+      - pet
+  /pet/findByStatus:
+    get:
+      description: Multiple status values can be provided with comma separated strings
+      operationId: findPetsByStatus
+      parameters:
+      - description: Status values that need to be considered for filter
+        explode: false
+        in: query
+        name: status
+        required: true
+        schema:
+          items:
+            default: available
+            enum:
+            - available
+            - pending
+            - sold
+            type: string
+          type: array
+        style: form
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                items:
+                  $ref: '#/components/schemas/Pet'
+                type: array
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/Pet'
+                type: array
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid status value
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Finds Pets by status
+      tags:
+      - pet
+  /pet/findByTags:
+    get:
+      deprecated: true
+      description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+      operationId: findPetsByTags
+      parameters:
+      - description: Tags to filter by
+        explode: false
+        in: query
+        name: tags
+        required: true
+        schema:
+          items:
+            type: string
+          type: array
+        style: form
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                items:
+                  $ref: '#/components/schemas/Pet'
+                type: array
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/Pet'
+                type: array
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid tag value
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Finds Pets by tags
+      tags:
+      - pet
+  /pet/{petId}:
+    delete:
+      operationId: deletePet
+      parameters:
+      - in: header
+        name: api_key
+        schema:
+          type: string
+      - description: Pet id to delete
+        in: path
+        name: petId
+        required: true
+        schema:
+          format: int64
+          type: integer
+      responses:
+        400:
+          content: {}
+          description: Invalid pet value
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Deletes a pet
+      tags:
+      - pet
+    get:
+      description: Returns a single pet
+      operationId: getPetById
+      parameters:
+      - description: ID of pet to return
+        in: path
+        name: petId
+        required: true
+        schema:
+          format: int64
+          type: integer
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                $ref: '#/components/schemas/Pet'
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Pet'
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid ID supplied
+        404:
+          content: {}
+          description: Pet not found
+      security:
+      - api_key: []
+      summary: Find pet by ID
+      tags:
+      - pet
+    post:
+      operationId: updatePetWithForm
+      parameters:
+      - description: ID of pet that needs to be updated
+        in: path
+        name: petId
+        required: true
+        schema:
+          format: int64
+          type: integer
+      requestBody:
+        content:
+          application/x-www-form-urlencoded:
+            schema:
+              properties:
+                name:
+                  description: Updated name of the pet
+                  type: string
+                status:
+                  description: Updated status of the pet
+                  type: string
+      responses:
+        405:
+          content: {}
+          description: Invalid input
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: Updates a pet in the store with form data
+      tags:
+      - pet
+  /pet/{petId}/uploadImage:
+    post:
+      operationId: uploadFile
+      parameters:
+      - description: ID of pet to update
+        in: path
+        name: petId
+        required: true
+        schema:
+          format: int64
+          type: integer
+      requestBody:
+        content:
+          multipart/form-data:
+            schema:
+              properties:
+                additionalMetadata:
+                  description: Additional data to pass to server
+                  type: string
+                file:
+                  description: file to upload
+                  format: binary
+                  type: string
+      responses:
+        200:
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ApiResponse'
+          description: successful operation
+      security:
+      - petstore_auth:
+        - write:pets
+        - read:pets
+      summary: uploads an image
+      tags:
+      - pet
+  /store/inventory:
+    get:
+      description: Returns a map of status codes to quantities
+      operationId: getInventory
+      responses:
+        200:
+          content:
+            application/json:
+              schema:
+                additionalProperties:
+                  format: int32
+                  type: integer
+                type: object
+          description: successful operation
+      security:
+      - api_key: []
+      summary: Returns pet inventories by status
+      tags:
+      - store
+  /store/order:
+    post:
+      operationId: placeOrder
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/Order'
+        description: order placed for purchasing the pet
+        required: true
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                $ref: '#/components/schemas/Order'
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Order'
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid Order
+      summary: Place an order for a pet
+      tags:
+      - store
+  /store/order/{order_id}:
+    delete:
+      description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+      operationId: deleteOrder
+      parameters:
+      - description: ID of the order that needs to be deleted
+        in: path
+        name: order_id
+        required: true
+        schema:
+          type: string
+      responses:
+        400:
+          content: {}
+          description: Invalid ID supplied
+        404:
+          content: {}
+          description: Order not found
+      summary: Delete purchase order by ID
+      tags:
+      - store
+    get:
+      description: For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+      operationId: getOrderById
+      parameters:
+      - description: ID of pet that needs to be fetched
+        in: path
+        name: order_id
+        required: true
+        schema:
+          format: int64
+          maximum: 5
+          minimum: 1
+          type: integer
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                $ref: '#/components/schemas/Order'
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Order'
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid ID supplied
+        404:
+          content: {}
+          description: Order not found
+      summary: Find purchase order by ID
+      tags:
+      - store
+  /user:
+    post:
+      description: This can only be done by the logged in user.
+      operationId: createUser
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/User'
+        description: Created user object
+        required: true
+      responses:
+        default:
+          content: {}
+          description: successful operation
+      summary: Create user
+      tags:
+      - user
+  /user/createWithArray:
+    post:
+      operationId: createUsersWithArrayInput
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              items:
+                $ref: '#/components/schemas/User'
+              type: array
+        description: List of user object
+        required: true
+      responses:
+        default:
+          content: {}
+          description: successful operation
+      summary: Creates list of users with given input array
+      tags:
+      - user
+  /user/createWithList:
+    post:
+      operationId: createUsersWithListInput
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              items:
+                $ref: '#/components/schemas/User'
+              type: array
+        description: List of user object
+        required: true
+      responses:
+        default:
+          content: {}
+          description: successful operation
+      summary: Creates list of users with given input array
+      tags:
+      - user
+  /user/login:
+    get:
+      operationId: loginUser
+      parameters:
+      - description: The user name for login
+        in: query
+        name: username
+        required: true
+        schema:
+          type: string
+      - description: The password for login in clear text
+        in: query
+        name: password
+        required: true
+        schema:
+          type: string
+      responses:
+        400:
+          content: {}
+          description: Invalid username/password supplied
+      summary: Logs user into the system
+      tags:
+      - user
+  /user/logout:
+    get:
+      operationId: logoutUser
+      responses:
+        default:
+          content: {}
+          description: successful operation
+      summary: Logs out current logged in user session
+      tags:
+      - user
+  /user/{username}:
+    delete:
+      description: This can only be done by the logged in user.
+      operationId: deleteUser
+      parameters:
+      - description: The name that needs to be deleted
+        in: path
+        name: username
+        required: true
+        schema:
+          type: string
+      responses:
+        400:
+          content: {}
+          description: Invalid username supplied
+        404:
+          content: {}
+          description: User not found
+      summary: Delete user
+      tags:
+      - user
+    get:
+      operationId: getUserByName
+      parameters:
+      - description: The name that needs to be fetched. Use user1 for testing.
+        in: path
+        name: username
+        required: true
+        schema:
+          type: string
+      responses:
+        200:
+          content:
+            application/xml:
+              schema:
+                $ref: '#/components/schemas/User'
+            application/json:
+              schema:
+                $ref: '#/components/schemas/User'
+          description: successful operation
+        400:
+          content: {}
+          description: Invalid username supplied
+        404:
+          content: {}
+          description: User not found
+      summary: Get user by user name
+      tags:
+      - user
+    put:
+      description: This can only be done by the logged in user.
+      operationId: updateUser
+      parameters:
+      - description: name that need to be deleted
+        in: path
+        name: username
+        required: true
+        schema:
+          type: string
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/User'
+        description: Updated user object
+        required: true
+      responses:
+        400:
+          content: {}
+          description: Invalid user supplied
+        404:
+          content: {}
+          description: User not found
+      summary: Updated user
+      tags:
+      - user
+  /fake_classname_test:
+    patch:
+      description: To test class name in snake case
+      operationId: testClassname
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Client'
+        description: client model
+        required: true
+      responses:
+        200:
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Client'
+          description: successful operation
+      security:
+      - api_key_query: []
+      summary: To test class name in snake case
+      tags:
+      - fake_classname_tags 123#$%^
+  /fake:
+    get:
+      description: To test enum parameters
+      operationId: testEnumParameters
+      parameters:
+      - description: Header parameter enum test (string array)
+        explode: false
+        in: header
+        name: enum_header_string_array
+        schema:
+          items:
+            default: $
+            enum:
+            - '>'
+            - $
+            type: string
+          type: array
+        style: simple
+      - description: Header parameter enum test (string)
+        in: header
+        name: enum_header_string
+        schema:
+          default: -efg
+          enum:
+          - _abc
+          - -efg
+          - (xyz)
+          type: string
+      - description: Query parameter enum test (string array)
+        explode: false
+        in: query
+        name: enum_query_string_array
+        schema:
+          items:
+            default: $
+            enum:
+            - '>'
+            - $
+            type: string
+          type: array
+        style: form
+      - description: Query parameter enum test (string)
+        in: query
+        name: enum_query_string
+        schema:
+          default: -efg
+          enum:
+          - _abc
+          - -efg
+          - (xyz)
+          type: string
+      - description: Query parameter enum test (double)
+        in: query
+        name: enum_query_integer
+        schema:
+          enum:
+          - 1
+          - -2
+          format: int32
+          type: integer
+      - description: Query parameter enum test (double)
+        in: query
+        name: enum_query_double
+        schema:
+          enum:
+          - 1.1
+          - -1.2
+          format: double
+          type: number
+      responses:
+        400:
+          content: {}
+          description: Invalid request
+        404:
+          content: {}
+          description: Not found
+      summary: To test enum parameters
+      tags:
+      - fake
+    patch:
+      description: To test "client" model
+      operationId: testClientModel
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Client'
+        description: client model
+        required: true
+      responses:
+        200:
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Client'
+          description: successful operation
+      summary: To test "client" model
+      tags:
+      - fake
+    post:
+      description: |
+        Fake endpoint for testing various parameters
+        假端點
+        偽のエンドポイント
+        가짜 엔드 포인트
+      operationId: testEndpointParameters
+      requestBody:
+        content:
+          application/x-www-form-urlencoded:
+            schema:
+              properties:
+                integer:
+                  description: None
+                  maximum: 100
+                  minimum: 10
+                  type: integer
+                int32:
+                  description: None
+                  format: int32
+                  maximum: 200
+                  minimum: 20
+                  type: integer
+                int64:
+                  description: None
+                  format: int64
+                  type: integer
+                number:
+                  description: None
+                  maximum: 543.2
+                  minimum: 32.1
+                  type: number
+                float:
+                  description: None
+                  format: float
+                  maximum: 987.6
+                  type: number
+                double:
+                  description: None
+                  format: double
+                  maximum: 123.4
+                  minimum: 67.8
+                  type: number
+                string:
+                  description: None
+                  pattern: /[a-z]/i
+                  type: string
+                pattern_without_delimiter:
+                  description: None
+                  pattern: ^[A-Z].*
+                  type: string
+                binary:
+                  description: None
+                  format: binary
+                  type: string
+                date:
+                  description: None
+                  format: date
+                  type: string
+                dateTime:
+                  description: None
+                  format: date-time
+                  type: string
+                password:
+                  description: None
+                  format: password
+                  maxLength: 64
+                  minLength: 10
+                  type: string
+                callback:
+                  description: None
+                  type: string
+              required:
+              - double
+              - number
+              - pattern_without_delimiter
+        required: true
+      responses:
+        400:
+          content: {}
+          description: Invalid username supplied
+        404:
+          content: {}
+          description: User not found
+      security:
+      - http_basic_test: []
+      summary: |
+        Fake endpoint for testing various parameters
+        假端點
+        偽のエンドポイント
+        가짜 엔드 포인트
+      tags:
+      - fake
+  /fake/outer/number:
+    post:
+      description: Test serialization of outer number types
+      operationId: fakeOuterNumberSerialize
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/OuterNumber'
+        description: Input number as post body
+        required: false
+      responses:
+        200:
+          content:
+            '*/*':
+              schema:
+                $ref: '#/components/schemas/OuterNumber'
+          description: Output number
+      tags:
+      - fake
+  /fake/outer/string:
+    post:
+      description: Test serialization of outer string types
+      operationId: fakeOuterStringSerialize
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/OuterString'
+        description: Input string as post body
+        required: false
+      responses:
+        200:
+          content:
+            '*/*':
+              schema:
+                $ref: '#/components/schemas/OuterString'
+          description: Output string
+      tags:
+      - fake
+  /fake/outer/boolean:
+    post:
+      description: Test serialization of outer boolean types
+      operationId: fakeOuterBooleanSerialize
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/OuterBoolean'
+        description: Input boolean as post body
+        required: false
+      responses:
+        200:
+          content:
+            '*/*':
+              schema:
+                $ref: '#/components/schemas/OuterBoolean'
+          description: Output boolean
+      tags:
+      - fake
+  /fake/outer/composite:
+    post:
+      description: Test serialization of object with outer number type
+      operationId: fakeOuterCompositeSerialize
+      requestBody:
+        content:
+          '*/*':
+            schema:
+              $ref: '#/components/schemas/OuterComposite'
+        description: Input composite as post body
+        required: false
+      responses:
+        200:
+          content:
+            '*/*':
+              schema:
+                $ref: '#/components/schemas/OuterComposite'
+          description: Output composite
+      tags:
+      - fake
+  /fake/jsonFormData:
+    get:
+      operationId: testJsonFormData
+      requestBody:
+        content:
+          application/x-www-form-urlencoded:
+            schema:
+              properties:
+                param:
+                  description: field1
+                  type: string
+                param2:
+                  description: field2
+                  type: string
+              required:
+              - param
+              - param2
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: test json serialization of form data
+      tags:
+      - fake
+  /fake/inline-additionalProperties:
+    post:
+      operationId: testInlineAdditionalProperties
+      requestBody:
+        content:
+          application/json:
+            schema:
+              additionalProperties:
+                type: string
+              type: object
+        description: request body
+        required: true
+      responses:
+        200:
+          content: {}
+          description: successful operation
+      summary: test inline additionalProperties
+      tags:
+      - fake
+  /fake/body-with-query-params:
+    put:
+      operationId: testBodyWithQueryParams
+      parameters:
+      - in: query
+        name: query
+        required: true
+        schema:
+          type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/User'
+        required: true
+      responses:
+        200:
+          content: {}
+          description: Success
+      tags:
+      - fake
+  /another-fake/dummy:
+    patch:
+      description: To test special tags
+      operationId: test_special_tags
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Client'
+        description: client model
+        required: true
+      responses:
+        200:
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Client'
+          description: successful operation
+      summary: To test special tags
+      tags:
+      - $another-fake?
+components:
+  schemas:
+    Category:
+      example:
+        name: name
+        id: 6
+      properties:
+        id:
+          format: int64
+          type: integer
+        name:
+          type: string
+      type: object
+      xml:
+        name: Category
+    User:
+      example:
+        firstName: firstName
+        lastName: lastName
+        password: password
+        userStatus: 6
+        phone: phone
+        id: 0
+        email: email
+        username: username
+      properties:
+        id:
+          format: int64
+          type: integer
+          x-is-unique: true
+        username:
+          type: string
+        firstName:
+          type: string
+        lastName:
+          type: string
+        email:
+          type: string
+        password:
+          type: string
+        phone:
+          type: string
+        userStatus:
+          description: User Status
+          format: int32
+          type: integer
+      type: object
+      xml:
+        name: User
+    OuterNumber:
+      type: number
+    ArrayOfNumberOnly:
+      properties:
+        ArrayNumber:
+          items:
+            type: number
+          type: array
+      type: object
+    Capitalization:
+      properties:
+        smallCamel:
+          type: string
+        CapitalCamel:
+          type: string
+        small_Snake:
+          type: string
+        Capital_Snake:
+          type: string
+        SCA_ETH_Flow_Points:
+          type: string
+        ATT_NAME:
+          description: |
+            Name of the pet
+          type: string
+      type: object
+    MixedPropertiesAndAdditionalPropertiesClass:
+      properties:
+        uuid:
+          format: uuid
+          type: string
+        dateTime:
+          format: date-time
+          type: string
+        map:
+          additionalProperties:
+            $ref: '#/components/schemas/Animal'
+          type: object
+      type: object
+    ApiResponse:
+      example:
+        code: 0
+        type: type
+        message: message
+      properties:
+        code:
+          format: int32
+          type: integer
+        type:
+          type: string
+        message:
+          type: string
+      type: object
+    Name:
+      description: Model for testing model name same as property name
+      properties:
+        name:
+          format: int32
+          type: integer
+        snake_case:
+          format: int32
+          readOnly: true
+          type: integer
+        property:
+          type: string
+        123Number:
+          readOnly: true
+          type: integer
+      required:
+      - name
+      type: object
+      xml:
+        name: Name
+    EnumClass:
+      default: -efg
+      enum:
+      - _abc
+      - -efg
+      - (xyz)
+      type: string
+    List:
+      properties:
+        123-list:
+          type: string
+      type: object
+    NumberOnly:
+      properties:
+        JustNumber:
+          type: number
+      type: object
+    200_response:
+      description: Model for testing model name starting with number
+      properties:
+        name:
+          format: int32
+          type: integer
+        class:
+          type: string
+      type: object
+      xml:
+        name: Name
+    Client:
+      example:
+        client: client
+      properties:
+        client:
+          type: string
+      type: object
+    Dog:
+      allOf:
+      - $ref: '#/components/schemas/Animal'
+      - properties:
+          breed:
+            type: string
+        type: object
+    Enum_Test:
+      properties:
+        enum_string:
+          enum:
+          - UPPER
+          - lower
+          - ""
+          type: string
+        enum_string_required:
+          enum:
+          - UPPER
+          - lower
+          - ""
+          type: string
+        enum_integer:
+          enum:
+          - 1
+          - -1
+          format: int32
+          type: integer
+        enum_number:
+          enum:
+          - 1.1
+          - -1.2
+          format: double
+          type: number
+        outerEnum:
+          $ref: '#/components/schemas/OuterEnum'
+      required:
+      - enum_string_required
+      type: object
+    Order:
+      example:
+        petId: 6
+        quantity: 1
+        id: 0
+        shipDate: 2000-01-23T04:56:07.000+00:00
+        complete: false
+        status: placed
+      properties:
+        id:
+          format: int64
+          type: integer
+        petId:
+          format: int64
+          type: integer
+        quantity:
+          format: int32
+          type: integer
+        shipDate:
+          format: date-time
+          type: string
+        status:
+          description: Order Status
+          enum:
+          - placed
+          - approved
+          - delivered
+          type: string
+        complete:
+          default: false
+          type: boolean
+      type: object
+      xml:
+        name: Order
+    AdditionalPropertiesClass:
+      properties:
+        map_property:
+          additionalProperties:
+            type: string
+          type: object
+        map_of_map_property:
+          additionalProperties:
+            additionalProperties:
+              type: string
+            type: object
+          type: object
+      type: object
+    $special[model.name]:
+      properties:
+        $special[property.name]:
+          format: int64
+          type: integer
+      type: object
+      xml:
+        name: $special[model.name]
+    Return:
+      description: Model for testing reserved words
+      properties:
+        return:
+          format: int32
+          type: integer
+      type: object
+      xml:
+        name: Return
+    ReadOnlyFirst:
+      properties:
+        bar:
+          readOnly: true
+          type: string
+        baz:
+          type: string
+      type: object
+    ArrayOfArrayOfNumberOnly:
+      properties:
+        ArrayArrayNumber:
+          items:
+            items:
+              type: number
+            type: array
+          type: array
+      type: object
+    OuterEnum:
+      enum:
+      - placed
+      - approved
+      - delivered
+      type: string
+    ArrayTest:
+      properties:
+        array_of_string:
+          items:
+            type: string
+          type: array
+        array_array_of_integer:
+          items:
+            items:
+              format: int64
+              type: integer
+            type: array
+          type: array
+        array_array_of_model:
+          items:
+            items:
+              $ref: '#/components/schemas/ReadOnlyFirst'
+            type: array
+          type: array
+      type: object
+    OuterComposite:
+      example: {}
+      properties:
+        my_number:
+          $ref: '#/components/schemas/OuterNumber'
+        my_string:
+          $ref: '#/components/schemas/OuterString'
+        my_boolean:
+          $ref: '#/components/schemas/OuterBoolean'
+      type: object
+    format_test:
+      properties:
+        integer:
+          maximum: 1E+2
+          minimum: 1E+1
+          type: integer
+        int32:
+          format: int32
+          maximum: 2E+2
+          minimum: 2E+1
+          type: integer
+        int64:
+          format: int64
+          type: integer
+        number:
+          maximum: 543.2
+          minimum: 32.1
+          type: number
+        float:
+          format: float
+          maximum: 987.6
+          minimum: 54.3
+          type: number
+        double:
+          format: double
+          maximum: 123.4
+          minimum: 67.8
+          type: number
+        string:
+          pattern: /[a-z]/i
+          type: string
+        byte:
+          format: byte
+          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
+          type: string
+        date:
+          format: date
+          type: string
+        dateTime:
+          format: date-time
+          type: string
+        uuid:
+          format: uuid
+          type: string
+        password:
+          format: password
+          maxLength: 64
+          minLength: 10
+          type: string
+      required:
+      - byte
+      - date
+      - number
+      - password
+      type: object
+    EnumArrays:
+      properties:
+        just_symbol:
+          enum:
+          - '>='
+          - $
+          type: string
+        array_enum:
+          items:
+            enum:
+            - fish
+            - crab
+            type: string
+          type: array
+      type: object
+    OuterString:
+      type: string
+    ClassModel:
+      description: Model for testing model with "_class" property
+      properties:
+        _class:
+          type: string
+      type: object
+    OuterBoolean:
+      type: boolean
+      x-codegen-body-parameter-name: boolean_post_body
+    Animal:
+      discriminator:
+        propertyName: className
+      properties:
+        className:
+          type: string
+        color:
+          default: red
+          type: string
+      required:
+      - className
+      type: object
+    Cat:
+      allOf:
+      - $ref: '#/components/schemas/Animal'
+      - properties:
+          declawed:
+            type: boolean
+        type: object
+    MapTest:
+      properties:
+        map_map_of_string:
+          additionalProperties:
+            additionalProperties:
+              type: string
+            type: object
+          type: object
+        map_of_enum_string:
+          additionalProperties:
+            enum:
+            - UPPER
+            - lower
+            type: string
+          type: object
+      type: object
+    Tag:
+      example:
+        name: name
+        id: 1
+      properties:
+        id:
+          format: int64
+          type: integer
+        name:
+          type: string
+      type: object
+      xml:
+        name: Tag
+    AnimalFarm:
+      items:
+        $ref: '#/components/schemas/Animal'
+      type: array
+    Pet:
+      example:
+        photoUrls:
+        - photoUrls
+        - photoUrls
+        name: doggie
+        id: 0
+        category:
+          name: name
+          id: 6
+        tags:
+        - name: name
+          id: 1
+        - name: name
+          id: 1
+        status: available
+      properties:
+        id:
+          format: int64
+          type: integer
+          x-is-unique: true
+        category:
+          $ref: '#/components/schemas/Category'
+        name:
+          example: doggie
+          type: string
+        photoUrls:
+          items:
+            type: string
+          type: array
+          xml:
+            name: photoUrl
+            wrapped: true
+        tags:
+          items:
+            $ref: '#/components/schemas/Tag'
+          type: array
+          xml:
+            name: tag
+            wrapped: true
+        status:
+          description: pet status in the store
+          enum:
+          - available
+          - pending
+          - sold
+          type: string
+      required:
+      - name
+      - photoUrls
+      type: object
+      xml:
+        name: Pet
+    hasOnlyReadOnly:
+      properties:
+        bar:
+          readOnly: true
+          type: string
+        foo:
+          readOnly: true
+          type: string
+      type: object
+  securitySchemes:
+    petstore_auth:
+      flows:
+        implicit:
+          authorizationUrl: http://petstore.swagger.io/api/oauth/dialog
+          scopes:
+            write:pets: modify pets in your account
+            read:pets: read your pets
+      type: oauth2
+    http_basic_test:
+      scheme: basic
+      type: http
+    api_key:
+      in: header
+      name: api_key
+      type: apiKey
+    api_key_query:
+      in: query
+      name: api_key_query
+      type: apiKey
+
diff --git a/samples/server/petstore/rust-server/api/swagger.yaml b/samples/server/petstore/rust-server/api/swagger.yaml
deleted file mode 100644
index 3849ef4c25a..00000000000
--- a/samples/server/petstore/rust-server/api/swagger.yaml
+++ /dev/null
@@ -1,2122 +0,0 @@
----
-swagger: "2.0"
-info:
-  description: "This spec is mainly for testing Petstore server and contains fake\
-    \ endpoints, models. Please do not use this for any other purpose. Special characters:\
-    \ \" \\"
-  version: "1.0.0"
-  title: "Swagger Petstore"
-  termsOfService: "http://swagger.io/terms/"
-  contact:
-    email: "apiteam@swagger.io"
-  license:
-    name: "Apache-2.0"
-    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
-host: "petstore.swagger.io:80"
-basePath: "/v2"
-tags:
-- name: "pet"
-  description: "Everything about your Pets"
-  externalDocs:
-    description: "Find out more"
-    url: "http://swagger.io"
-- name: "store"
-  description: "Access to Petstore orders"
-- name: "user"
-  description: "Operations about user"
-  externalDocs:
-    description: "Find out more about our store"
-    url: "http://swagger.io"
-schemes:
-- "http"
-paths:
-  /pet:
-    post:
-      tags:
-      - "pet"
-      summary: "Add a new pet to the store"
-      description: ""
-      operationId: "addPet"
-      consumes:
-      - "application/json"
-      - "application/xml"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Pet object that needs to be added to the store"
-        required: true
-        schema:
-          $ref: "#/definitions/Pet"
-        uppercase_data_type: "PET"
-        refName: "Pet"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "ADD_PET"
-        consumesXml: true
-      responses:
-        405:
-          description: "Invalid input"
-          x-responseId: "InvalidInput"
-          x-uppercaseResponseId: "INVALID_INPUT"
-          uppercase_operation_id: "ADD_PET"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "add_pet"
-      uppercase_operation_id: "ADD_PET"
-      path: "/pet"
-      PATH_ID: "PET"
-      hasPathParams: false
-      HttpMethod: "Post"
-      noClientExample: true
-    put:
-      tags:
-      - "pet"
-      summary: "Update an existing pet"
-      description: ""
-      operationId: "updatePet"
-      consumes:
-      - "application/json"
-      - "application/xml"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Pet object that needs to be added to the store"
-        required: true
-        schema:
-          $ref: "#/definitions/Pet"
-        uppercase_data_type: "PET"
-        refName: "Pet"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "UPDATE_PET"
-        consumesXml: true
-      responses:
-        400:
-          description: "Invalid ID supplied"
-          x-responseId: "InvalidIDSupplied"
-          x-uppercaseResponseId: "INVALID_ID_SUPPLIED"
-          uppercase_operation_id: "UPDATE_PET"
-        404:
-          description: "Pet not found"
-          x-responseId: "PetNotFound"
-          x-uppercaseResponseId: "PET_NOT_FOUND"
-          uppercase_operation_id: "UPDATE_PET"
-        405:
-          description: "Validation exception"
-          x-responseId: "ValidationException"
-          x-uppercaseResponseId: "VALIDATION_EXCEPTION"
-          uppercase_operation_id: "UPDATE_PET"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "update_pet"
-      uppercase_operation_id: "UPDATE_PET"
-      path: "/pet"
-      PATH_ID: "PET"
-      hasPathParams: false
-      HttpMethod: "Put"
-      noClientExample: true
-  /pet/findByStatus:
-    get:
-      tags:
-      - "pet"
-      summary: "Finds Pets by status"
-      description: "Multiple status values can be provided with comma separated strings"
-      operationId: "findPetsByStatus"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "status"
-        in: "query"
-        description: "Status values that need to be considered for filter"
-        required: true
-        type: "array"
-        items:
-          type: "string"
-          default: "available"
-          enum:
-          - "available"
-          - "pending"
-          - "sold"
-        collectionFormat: "csv"
-        formatString: "{:?}"
-        example: "&Vec::new()"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "array"
-            items:
-              $ref: "#/definitions/Pet"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "FIND_PETS_BY_STATUS"
-          uppercase_data_type: "VEC"
-          producesXml: true
-        400:
-          description: "Invalid status value"
-          x-responseId: "InvalidStatusValue"
-          x-uppercaseResponseId: "INVALID_STATUS_VALUE"
-          uppercase_operation_id: "FIND_PETS_BY_STATUS"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "find_pets_by_status"
-      uppercase_operation_id: "FIND_PETS_BY_STATUS"
-      path: "/pet/findByStatus"
-      PATH_ID: "PET_FINDBYSTATUS"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /pet/findByTags:
-    get:
-      tags:
-      - "pet"
-      summary: "Finds Pets by tags"
-      description: "Multiple tags can be provided with comma separated strings. Use\
-        \ tag1, tag2, tag3 for testing."
-      operationId: "findPetsByTags"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "tags"
-        in: "query"
-        description: "Tags to filter by"
-        required: true
-        type: "array"
-        items:
-          type: "string"
-        collectionFormat: "csv"
-        formatString: "{:?}"
-        example: "&Vec::new()"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "array"
-            items:
-              $ref: "#/definitions/Pet"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "FIND_PETS_BY_TAGS"
-          uppercase_data_type: "VEC"
-          producesXml: true
-        400:
-          description: "Invalid tag value"
-          x-responseId: "InvalidTagValue"
-          x-uppercaseResponseId: "INVALID_TAG_VALUE"
-          uppercase_operation_id: "FIND_PETS_BY_TAGS"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      deprecated: true
-      operation_id: "find_pets_by_tags"
-      uppercase_operation_id: "FIND_PETS_BY_TAGS"
-      path: "/pet/findByTags"
-      PATH_ID: "PET_FINDBYTAGS"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /pet/{petId}:
-    get:
-      tags:
-      - "pet"
-      summary: "Find pet by ID"
-      description: "Returns a single pet"
-      operationId: "getPetById"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "petId"
-        in: "path"
-        description: "ID of pet to return"
-        required: true
-        type: "integer"
-        format: "int64"
-        formatString: "{}"
-        example: "789"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Pet"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "GET_PET_BY_ID"
-          uppercase_data_type: "PET"
-          producesXml: true
-        400:
-          description: "Invalid ID supplied"
-          x-responseId: "InvalidIDSupplied"
-          x-uppercaseResponseId: "INVALID_ID_SUPPLIED"
-          uppercase_operation_id: "GET_PET_BY_ID"
-        404:
-          description: "Pet not found"
-          x-responseId: "PetNotFound"
-          x-uppercaseResponseId: "PET_NOT_FOUND"
-          uppercase_operation_id: "GET_PET_BY_ID"
-      security:
-      - api_key: []
-      operation_id: "get_pet_by_id"
-      uppercase_operation_id: "GET_PET_BY_ID"
-      path: "/pet/:petId"
-      PATH_ID: "PET_PETID"
-      hasPathParams: true
-      HttpMethod: "Get"
-    post:
-      tags:
-      - "pet"
-      summary: "Updates a pet in the store with form data"
-      description: ""
-      operationId: "updatePetWithForm"
-      consumes:
-      - "application/x-www-form-urlencoded"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "petId"
-        in: "path"
-        description: "ID of pet that needs to be updated"
-        required: true
-        type: "integer"
-        format: "int64"
-        formatString: "{}"
-        example: "789"
-      - name: "name"
-        in: "formData"
-        description: "Updated name of the pet"
-        required: false
-        type: "string"
-        formatString: "{:?}"
-        example: "Some(\"name_example\".to_string())"
-      - name: "status"
-        in: "formData"
-        description: "Updated status of the pet"
-        required: false
-        type: "string"
-        formatString: "{:?}"
-        example: "Some(\"status_example\".to_string())"
-      responses:
-        405:
-          description: "Invalid input"
-          x-responseId: "InvalidInput"
-          x-uppercaseResponseId: "INVALID_INPUT"
-          uppercase_operation_id: "UPDATE_PET_WITH_FORM"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "update_pet_with_form"
-      uppercase_operation_id: "UPDATE_PET_WITH_FORM"
-      path: "/pet/:petId"
-      PATH_ID: "PET_PETID"
-      hasPathParams: true
-      HttpMethod: "Post"
-    delete:
-      tags:
-      - "pet"
-      summary: "Deletes a pet"
-      description: ""
-      operationId: "deletePet"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "api_key"
-        in: "header"
-        required: false
-        type: "string"
-        formatString: "{:?}"
-        example: "Some(\"api_key_example\".to_string())"
-      - name: "petId"
-        in: "path"
-        description: "Pet id to delete"
-        required: true
-        type: "integer"
-        format: "int64"
-        formatString: "{}"
-        example: "789"
-      responses:
-        400:
-          description: "Invalid pet value"
-          x-responseId: "InvalidPetValue"
-          x-uppercaseResponseId: "INVALID_PET_VALUE"
-          uppercase_operation_id: "DELETE_PET"
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "delete_pet"
-      uppercase_operation_id: "DELETE_PET"
-      path: "/pet/:petId"
-      PATH_ID: "PET_PETID"
-      hasPathParams: true
-      HttpMethod: "Delete"
-  /pet/{petId}/uploadImage:
-    post:
-      tags:
-      - "pet"
-      summary: "uploads an image"
-      description: ""
-      operationId: "uploadFile"
-      consumes:
-      - "multipart/form-data"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "petId"
-        in: "path"
-        description: "ID of pet to update"
-        required: true
-        type: "integer"
-        format: "int64"
-        formatString: "{}"
-        example: "789"
-      - name: "additionalMetadata"
-        in: "formData"
-        description: "Additional data to pass to server"
-        required: false
-        type: "string"
-        formatString: "{:?}"
-        example: "Some(\"additional_metadata_example\".to_string())"
-      - name: "file"
-        in: "formData"
-        description: "file to upload"
-        required: false
-        type: "file"
-        formatString: "{:?}"
-        example: "Box::new(future::ok(Some(Box::new(stream::once(Ok(b\"hello\".to_vec())))\
-          \ as Box + Send>))) as Box\
-          \ + Send>"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/ApiResponse"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "UPLOAD_FILE"
-          uppercase_data_type: "APIRESPONSE"
-          producesJson: true
-      security:
-      - petstore_auth:
-        - "write:pets"
-        - "read:pets"
-      operation_id: "upload_file"
-      uppercase_operation_id: "UPLOAD_FILE"
-      path: "/pet/:petId/uploadImage"
-      PATH_ID: "PET_PETID_UPLOADIMAGE"
-      hasPathParams: true
-      HttpMethod: "Post"
-      hasFile: true
-  /store/inventory:
-    get:
-      tags:
-      - "store"
-      summary: "Returns pet inventories by status"
-      description: "Returns a map of status codes to quantities"
-      operationId: "getInventory"
-      produces:
-      - "application/json"
-      parameters: []
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-            additionalProperties:
-              type: "integer"
-              format: "int32"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "GET_INVENTORY"
-          uppercase_data_type: "HASHMAP"
-          producesJson: true
-      security:
-      - api_key: []
-      operation_id: "get_inventory"
-      uppercase_operation_id: "GET_INVENTORY"
-      path: "/store/inventory"
-      PATH_ID: "STORE_INVENTORY"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /store/order:
-    post:
-      tags:
-      - "store"
-      summary: "Place an order for a pet"
-      description: ""
-      operationId: "placeOrder"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "order placed for purchasing the pet"
-        required: true
-        schema:
-          $ref: "#/definitions/Order"
-        uppercase_data_type: "ORDER"
-        refName: "Order"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "PLACE_ORDER"
-        consumesJson: true
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Order"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "PLACE_ORDER"
-          uppercase_data_type: "ORDER"
-          producesXml: true
-        400:
-          description: "Invalid Order"
-          x-responseId: "InvalidOrder"
-          x-uppercaseResponseId: "INVALID_ORDER"
-          uppercase_operation_id: "PLACE_ORDER"
-      operation_id: "place_order"
-      uppercase_operation_id: "PLACE_ORDER"
-      path: "/store/order"
-      PATH_ID: "STORE_ORDER"
-      hasPathParams: false
-      HttpMethod: "Post"
-      noClientExample: true
-  /store/order/{order_id}:
-    get:
-      tags:
-      - "store"
-      summary: "Find purchase order by ID"
-      description: "For valid response try integer IDs with value <= 5 or > 10. Other\
-        \ values will generated exceptions"
-      operationId: "getOrderById"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "order_id"
-        in: "path"
-        description: "ID of pet that needs to be fetched"
-        required: true
-        type: "integer"
-        maximum: 5
-        minimum: 1
-        format: "int64"
-        formatString: "{}"
-        example: "789"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Order"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "GET_ORDER_BY_ID"
-          uppercase_data_type: "ORDER"
-          producesXml: true
-        400:
-          description: "Invalid ID supplied"
-          x-responseId: "InvalidIDSupplied"
-          x-uppercaseResponseId: "INVALID_ID_SUPPLIED"
-          uppercase_operation_id: "GET_ORDER_BY_ID"
-        404:
-          description: "Order not found"
-          x-responseId: "OrderNotFound"
-          x-uppercaseResponseId: "ORDER_NOT_FOUND"
-          uppercase_operation_id: "GET_ORDER_BY_ID"
-      operation_id: "get_order_by_id"
-      uppercase_operation_id: "GET_ORDER_BY_ID"
-      path: "/store/order/:order_id"
-      PATH_ID: "STORE_ORDER_ORDER_ID"
-      hasPathParams: true
-      HttpMethod: "Get"
-    delete:
-      tags:
-      - "store"
-      summary: "Delete purchase order by ID"
-      description: "For valid response try integer IDs with value < 1000. Anything\
-        \ above 1000 or nonintegers will generate API errors"
-      operationId: "deleteOrder"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "order_id"
-        in: "path"
-        description: "ID of the order that needs to be deleted"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"order_id_example\".to_string()"
-      responses:
-        400:
-          description: "Invalid ID supplied"
-          x-responseId: "InvalidIDSupplied"
-          x-uppercaseResponseId: "INVALID_ID_SUPPLIED"
-          uppercase_operation_id: "DELETE_ORDER"
-        404:
-          description: "Order not found"
-          x-responseId: "OrderNotFound"
-          x-uppercaseResponseId: "ORDER_NOT_FOUND"
-          uppercase_operation_id: "DELETE_ORDER"
-      operation_id: "delete_order"
-      uppercase_operation_id: "DELETE_ORDER"
-      path: "/store/order/:order_id"
-      PATH_ID: "STORE_ORDER_ORDER_ID"
-      hasPathParams: true
-      HttpMethod: "Delete"
-  /user:
-    post:
-      tags:
-      - "user"
-      summary: "Create user"
-      description: "This can only be done by the logged in user."
-      operationId: "createUser"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Created user object"
-        required: true
-        schema:
-          $ref: "#/definitions/User"
-        uppercase_data_type: "USER"
-        refName: "User"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "CREATE_USER"
-        consumesJson: true
-      responses:
-        default:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "CREATE_USER"
-      operation_id: "create_user"
-      uppercase_operation_id: "CREATE_USER"
-      path: "/user"
-      PATH_ID: "USER"
-      hasPathParams: false
-      HttpMethod: "Post"
-      noClientExample: true
-  /user/createWithArray:
-    post:
-      tags:
-      - "user"
-      summary: "Creates list of users with given input array"
-      description: ""
-      operationId: "createUsersWithArrayInput"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "List of user object"
-        required: true
-        schema:
-          type: "array"
-          items:
-            $ref: "#/definitions/User"
-        formatString: "{:?}"
-        example: "&Vec::new()"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "CREATE_USERS_WITH_ARRAY_INPUT"
-        consumesJson: true
-      responses:
-        default:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "CREATE_USERS_WITH_ARRAY_INPUT"
-      operation_id: "create_users_with_array_input"
-      uppercase_operation_id: "CREATE_USERS_WITH_ARRAY_INPUT"
-      path: "/user/createWithArray"
-      PATH_ID: "USER_CREATEWITHARRAY"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /user/createWithList:
-    post:
-      tags:
-      - "user"
-      summary: "Creates list of users with given input array"
-      description: ""
-      operationId: "createUsersWithListInput"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "List of user object"
-        required: true
-        schema:
-          type: "array"
-          items:
-            $ref: "#/definitions/User"
-        formatString: "{:?}"
-        example: "&Vec::new()"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "CREATE_USERS_WITH_LIST_INPUT"
-        consumesJson: true
-      responses:
-        default:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "CREATE_USERS_WITH_LIST_INPUT"
-      operation_id: "create_users_with_list_input"
-      uppercase_operation_id: "CREATE_USERS_WITH_LIST_INPUT"
-      path: "/user/createWithList"
-      PATH_ID: "USER_CREATEWITHLIST"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /user/login:
-    get:
-      tags:
-      - "user"
-      summary: "Logs user into the system"
-      description: ""
-      operationId: "loginUser"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "username"
-        in: "query"
-        description: "The user name for login"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"username_example\".to_string()"
-      - name: "password"
-        in: "query"
-        description: "The password for login in clear text"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"password_example\".to_string()"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "string"
-          headers:
-            X-Rate-Limit:
-              type: "integer"
-              format: "int32"
-              description: "calls per hour allowed by the user"
-            X-Expires-After:
-              type: "string"
-              format: "date-time"
-              description: "date in UTC when token expires"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "LOGIN_USER"
-          uppercase_data_type: "STRING"
-          producesXml: true
-        400:
-          description: "Invalid username/password supplied"
-          x-responseId: "InvalidUsername"
-          x-uppercaseResponseId: "INVALID_USERNAME"
-          uppercase_operation_id: "LOGIN_USER"
-      operation_id: "login_user"
-      uppercase_operation_id: "LOGIN_USER"
-      path: "/user/login"
-      PATH_ID: "USER_LOGIN"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /user/logout:
-    get:
-      tags:
-      - "user"
-      summary: "Logs out current logged in user session"
-      description: ""
-      operationId: "logoutUser"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters: []
-      responses:
-        default:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "LOGOUT_USER"
-      operation_id: "logout_user"
-      uppercase_operation_id: "LOGOUT_USER"
-      path: "/user/logout"
-      PATH_ID: "USER_LOGOUT"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /user/{username}:
-    get:
-      tags:
-      - "user"
-      summary: "Get user by user name"
-      description: ""
-      operationId: "getUserByName"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "username"
-        in: "path"
-        description: "The name that needs to be fetched. Use user1 for testing."
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"username_example\".to_string()"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/User"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "GET_USER_BY_NAME"
-          uppercase_data_type: "USER"
-          producesXml: true
-        400:
-          description: "Invalid username supplied"
-          x-responseId: "InvalidUsernameSupplied"
-          x-uppercaseResponseId: "INVALID_USERNAME_SUPPLIED"
-          uppercase_operation_id: "GET_USER_BY_NAME"
-        404:
-          description: "User not found"
-          x-responseId: "UserNotFound"
-          x-uppercaseResponseId: "USER_NOT_FOUND"
-          uppercase_operation_id: "GET_USER_BY_NAME"
-      operation_id: "get_user_by_name"
-      uppercase_operation_id: "GET_USER_BY_NAME"
-      path: "/user/:username"
-      PATH_ID: "USER_USERNAME"
-      hasPathParams: true
-      HttpMethod: "Get"
-    put:
-      tags:
-      - "user"
-      summary: "Updated user"
-      description: "This can only be done by the logged in user."
-      operationId: "updateUser"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "username"
-        in: "path"
-        description: "name that need to be deleted"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"username_example\".to_string()"
-      - in: "body"
-        name: "body"
-        description: "Updated user object"
-        required: true
-        schema:
-          $ref: "#/definitions/User"
-        uppercase_data_type: "USER"
-        refName: "User"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "UPDATE_USER"
-        consumesJson: true
-      responses:
-        400:
-          description: "Invalid user supplied"
-          x-responseId: "InvalidUserSupplied"
-          x-uppercaseResponseId: "INVALID_USER_SUPPLIED"
-          uppercase_operation_id: "UPDATE_USER"
-        404:
-          description: "User not found"
-          x-responseId: "UserNotFound"
-          x-uppercaseResponseId: "USER_NOT_FOUND"
-          uppercase_operation_id: "UPDATE_USER"
-      operation_id: "update_user"
-      uppercase_operation_id: "UPDATE_USER"
-      path: "/user/:username"
-      PATH_ID: "USER_USERNAME"
-      hasPathParams: true
-      HttpMethod: "Put"
-      noClientExample: true
-    delete:
-      tags:
-      - "user"
-      summary: "Delete user"
-      description: "This can only be done by the logged in user."
-      operationId: "deleteUser"
-      produces:
-      - "application/xml"
-      - "application/json"
-      parameters:
-      - name: "username"
-        in: "path"
-        description: "The name that needs to be deleted"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"username_example\".to_string()"
-      responses:
-        400:
-          description: "Invalid username supplied"
-          x-responseId: "InvalidUsernameSupplied"
-          x-uppercaseResponseId: "INVALID_USERNAME_SUPPLIED"
-          uppercase_operation_id: "DELETE_USER"
-        404:
-          description: "User not found"
-          x-responseId: "UserNotFound"
-          x-uppercaseResponseId: "USER_NOT_FOUND"
-          uppercase_operation_id: "DELETE_USER"
-      operation_id: "delete_user"
-      uppercase_operation_id: "DELETE_USER"
-      path: "/user/:username"
-      PATH_ID: "USER_USERNAME"
-      hasPathParams: true
-      HttpMethod: "Delete"
-  /fake_classname_test:
-    patch:
-      tags:
-      - "fake_classname_tags 123#$%^"
-      summary: "To test class name in snake case"
-      description: "To test class name in snake case"
-      operationId: "testClassname"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "client model"
-        required: true
-        schema:
-          $ref: "#/definitions/Client"
-        uppercase_data_type: "CLIENT"
-        refName: "Client"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "TEST_CLASSNAME"
-        consumesJson: true
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Client"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "TEST_CLASSNAME"
-          uppercase_data_type: "CLIENT"
-          producesJson: true
-      security:
-      - api_key_query: []
-      operation_id: "test_classname"
-      uppercase_operation_id: "TEST_CLASSNAME"
-      path: "/fake_classname_test"
-      PATH_ID: "FAKE_CLASSNAME_TEST"
-      hasPathParams: false
-      HttpMethod: "Patch"
-      noClientExample: true
-  /fake:
-    get:
-      tags:
-      - "fake"
-      summary: "To test enum parameters"
-      description: "To test enum parameters"
-      operationId: "testEnumParameters"
-      consumes:
-      - "*/*"
-      produces:
-      - "*/*"
-      parameters:
-      - name: "enum_form_string_array"
-        in: "formData"
-        description: "Form parameter enum test (string array)"
-        required: false
-        type: "array"
-        items:
-          type: "string"
-          default: "$"
-          enum:
-          - ">"
-          - "$"
-        formatString: "{:?}"
-        example: "Some(&Vec::new())"
-      - name: "enum_form_string"
-        in: "formData"
-        description: "Form parameter enum test (string)"
-        required: false
-        type: "string"
-        default: "-efg"
-        enum:
-        - "_abc"
-        - "-efg"
-        - "(xyz)"
-        formatString: "{:?}"
-        example: "Some(\"enum_form_string_example\".to_string())"
-      - name: "enum_header_string_array"
-        in: "header"
-        description: "Header parameter enum test (string array)"
-        required: false
-        type: "array"
-        items:
-          type: "string"
-          default: "$"
-          enum:
-          - ">"
-          - "$"
-        formatString: "{:?}"
-        example: "Some(&Vec::new())"
-      - name: "enum_header_string"
-        in: "header"
-        description: "Header parameter enum test (string)"
-        required: false
-        type: "string"
-        default: "-efg"
-        enum:
-        - "_abc"
-        - "-efg"
-        - "(xyz)"
-        formatString: "{:?}"
-        example: "Some(\"enum_header_string_example\".to_string())"
-      - name: "enum_query_string_array"
-        in: "query"
-        description: "Query parameter enum test (string array)"
-        required: false
-        type: "array"
-        items:
-          type: "string"
-          default: "$"
-          enum:
-          - ">"
-          - "$"
-        formatString: "{:?}"
-        example: "Some(&Vec::new())"
-      - name: "enum_query_string"
-        in: "query"
-        description: "Query parameter enum test (string)"
-        required: false
-        type: "string"
-        default: "-efg"
-        enum:
-        - "_abc"
-        - "-efg"
-        - "(xyz)"
-        formatString: "{:?}"
-        example: "Some(\"enum_query_string_example\".to_string())"
-      - name: "enum_query_integer"
-        in: "query"
-        description: "Query parameter enum test (double)"
-        required: false
-        type: "integer"
-        format: "int32"
-        enum:
-        - 1
-        - -2
-        formatString: "{:?}"
-        example: "Some(56)"
-      - name: "enum_query_double"
-        in: "formData"
-        description: "Query parameter enum test (double)"
-        required: false
-        type: "number"
-        format: "double"
-        enum:
-        - 1.1
-        - -1.2
-        formatString: "{:?}"
-        example: "Some(1.2)"
-      responses:
-        400:
-          description: "Invalid request"
-          x-responseId: "InvalidRequest"
-          x-uppercaseResponseId: "INVALID_REQUEST"
-          uppercase_operation_id: "TEST_ENUM_PARAMETERS"
-        404:
-          description: "Not found"
-          x-responseId: "NotFound"
-          x-uppercaseResponseId: "NOT_FOUND"
-          uppercase_operation_id: "TEST_ENUM_PARAMETERS"
-      operation_id: "test_enum_parameters"
-      uppercase_operation_id: "TEST_ENUM_PARAMETERS"
-      path: "/fake"
-      PATH_ID: "FAKE"
-      hasPathParams: false
-      HttpMethod: "Get"
-    post:
-      tags:
-      - "fake"
-      summary: "Fake endpoint for testing various parameters\n假端點\n偽のエンドポイント\n가짜 엔\
-        드 포인트\n"
-      description: "Fake endpoint for testing various parameters\n假端點\n偽のエンドポイント\n\
-        가짜 엔드 포인트\n"
-      operationId: "testEndpointParameters"
-      consumes:
-      - "application/xml; charset=utf-8"
-      - "application/json; charset=utf-8"
-      produces:
-      - "application/xml; charset=utf-8"
-      - "application/json; charset=utf-8"
-      parameters:
-      - name: "integer"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "integer"
-        maximum: 100
-        minimum: 10
-        formatString: "{:?}"
-        example: "Some(56)"
-      - name: "int32"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "integer"
-        maximum: 200
-        minimum: 20
-        format: "int32"
-        formatString: "{:?}"
-        example: "Some(56)"
-      - name: "int64"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "integer"
-        format: "int64"
-        formatString: "{:?}"
-        example: "Some(789)"
-      - name: "number"
-        in: "formData"
-        description: "None"
-        required: true
-        type: "number"
-        maximum: 543.2
-        minimum: 32.1
-        formatString: "{}"
-        example: "8.14"
-      - name: "float"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "number"
-        maximum: 987.6
-        format: "float"
-        formatString: "{:?}"
-        example: "Some(3.4)"
-      - name: "double"
-        in: "formData"
-        description: "None"
-        required: true
-        type: "number"
-        maximum: 123.4
-        minimum: 67.8
-        format: "double"
-        formatString: "{}"
-        example: "1.2"
-      - name: "string"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        pattern: "/[a-z]/i"
-        formatString: "{:?}"
-        example: "Some(\"string_example\".to_string())"
-      - name: "pattern_without_delimiter"
-        in: "formData"
-        description: "None"
-        required: true
-        type: "string"
-        pattern: "^[A-Z].*"
-        formatString: "\\\"{}\\\""
-        example: "\"pattern_without_delimiter_example\".to_string()"
-      - name: "byte"
-        in: "formData"
-        description: "None"
-        required: true
-        type: "string"
-        format: "byte"
-        formatString: "{:?}"
-        example: "swagger::ByteArray(Vec::from(\"B\"))"
-      - name: "binary"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        format: "binary"
-        formatString: "{:?}"
-        example: "Some(swagger::ByteArray(Vec::from(\"B\")))"
-      - name: "date"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        format: "date"
-        formatString: "{:?}"
-        example: "None"
-      - name: "dateTime"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        format: "date-time"
-        formatString: "{:?}"
-        example: "None"
-      - name: "password"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        maxLength: 64
-        minLength: 10
-        format: "password"
-        formatString: "{:?}"
-        example: "Some(\"password_example\".to_string())"
-      - name: "callback"
-        in: "formData"
-        description: "None"
-        required: false
-        type: "string"
-        formatString: "{:?}"
-        example: "Some(\"callback_example\".to_string())"
-      responses:
-        400:
-          description: "Invalid username supplied"
-          x-responseId: "InvalidUsernameSupplied"
-          x-uppercaseResponseId: "INVALID_USERNAME_SUPPLIED"
-          uppercase_operation_id: "TEST_ENDPOINT_PARAMETERS"
-        404:
-          description: "User not found"
-          x-responseId: "UserNotFound"
-          x-uppercaseResponseId: "USER_NOT_FOUND"
-          uppercase_operation_id: "TEST_ENDPOINT_PARAMETERS"
-      security:
-      - http_basic_test: []
-      operation_id: "test_endpoint_parameters"
-      uppercase_operation_id: "TEST_ENDPOINT_PARAMETERS"
-      path: "/fake"
-      PATH_ID: "FAKE"
-      hasPathParams: false
-      HttpMethod: "Post"
-    patch:
-      tags:
-      - "fake"
-      summary: "To test \"client\" model"
-      description: "To test \"client\" model"
-      operationId: "testClientModel"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "client model"
-        required: true
-        schema:
-          $ref: "#/definitions/Client"
-        uppercase_data_type: "CLIENT"
-        refName: "Client"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "TEST_CLIENT_MODEL"
-        consumesJson: true
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Client"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "TEST_CLIENT_MODEL"
-          uppercase_data_type: "CLIENT"
-          producesJson: true
-      operation_id: "test_client_model"
-      uppercase_operation_id: "TEST_CLIENT_MODEL"
-      path: "/fake"
-      PATH_ID: "FAKE"
-      hasPathParams: false
-      HttpMethod: "Patch"
-      noClientExample: true
-  /fake/outer/number:
-    post:
-      tags:
-      - "fake"
-      description: "Test serialization of outer number types"
-      operationId: "fakeOuterNumberSerialize"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Input number as post body"
-        required: false
-        schema:
-          $ref: "#/definitions/OuterNumber"
-        uppercase_data_type: "OUTERNUMBER"
-        refName: "OuterNumber"
-        formatString: "{:?}"
-        example: "None"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "FAKE_OUTER_NUMBER_SERIALIZE"
-        consumesJson: true
-      responses:
-        200:
-          description: "Output number"
-          schema:
-            $ref: "#/definitions/OuterNumber"
-          x-responseId: "OutputNumber"
-          x-uppercaseResponseId: "OUTPUT_NUMBER"
-          uppercase_operation_id: "FAKE_OUTER_NUMBER_SERIALIZE"
-          uppercase_data_type: "OUTERNUMBER"
-          producesJson: true
-      operation_id: "fake_outer_number_serialize"
-      uppercase_operation_id: "FAKE_OUTER_NUMBER_SERIALIZE"
-      path: "/fake/outer/number"
-      PATH_ID: "FAKE_OUTER_NUMBER"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /fake/outer/string:
-    post:
-      tags:
-      - "fake"
-      description: "Test serialization of outer string types"
-      operationId: "fakeOuterStringSerialize"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Input string as post body"
-        required: false
-        schema:
-          $ref: "#/definitions/OuterString"
-        uppercase_data_type: "OUTERSTRING"
-        refName: "OuterString"
-        formatString: "{:?}"
-        example: "None"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "FAKE_OUTER_STRING_SERIALIZE"
-        consumesJson: true
-      responses:
-        200:
-          description: "Output string"
-          schema:
-            $ref: "#/definitions/OuterString"
-          x-responseId: "OutputString"
-          x-uppercaseResponseId: "OUTPUT_STRING"
-          uppercase_operation_id: "FAKE_OUTER_STRING_SERIALIZE"
-          uppercase_data_type: "OUTERSTRING"
-          producesJson: true
-      operation_id: "fake_outer_string_serialize"
-      uppercase_operation_id: "FAKE_OUTER_STRING_SERIALIZE"
-      path: "/fake/outer/string"
-      PATH_ID: "FAKE_OUTER_STRING"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /fake/outer/boolean:
-    post:
-      tags:
-      - "fake"
-      description: "Test serialization of outer boolean types"
-      operationId: "fakeOuterBooleanSerialize"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Input boolean as post body"
-        required: false
-        schema:
-          $ref: "#/definitions/OuterBoolean"
-        uppercase_data_type: "OUTERBOOLEAN"
-        refName: "OuterBoolean"
-        formatString: "{:?}"
-        example: "None"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "FAKE_OUTER_BOOLEAN_SERIALIZE"
-        consumesJson: true
-      responses:
-        200:
-          description: "Output boolean"
-          schema:
-            $ref: "#/definitions/OuterBoolean"
-          x-responseId: "OutputBoolean"
-          x-uppercaseResponseId: "OUTPUT_BOOLEAN"
-          uppercase_operation_id: "FAKE_OUTER_BOOLEAN_SERIALIZE"
-          uppercase_data_type: "OUTERBOOLEAN"
-          producesJson: true
-      operation_id: "fake_outer_boolean_serialize"
-      uppercase_operation_id: "FAKE_OUTER_BOOLEAN_SERIALIZE"
-      path: "/fake/outer/boolean"
-      PATH_ID: "FAKE_OUTER_BOOLEAN"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /fake/outer/composite:
-    post:
-      tags:
-      - "fake"
-      description: "Test serialization of object with outer number type"
-      operationId: "fakeOuterCompositeSerialize"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Input composite as post body"
-        required: false
-        schema:
-          $ref: "#/definitions/OuterComposite"
-        uppercase_data_type: "OUTERCOMPOSITE"
-        refName: "OuterComposite"
-        formatString: "{:?}"
-        example: "None"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "FAKE_OUTER_COMPOSITE_SERIALIZE"
-        consumesJson: true
-      responses:
-        200:
-          description: "Output composite"
-          schema:
-            $ref: "#/definitions/OuterComposite"
-          x-responseId: "OutputComposite"
-          x-uppercaseResponseId: "OUTPUT_COMPOSITE"
-          uppercase_operation_id: "FAKE_OUTER_COMPOSITE_SERIALIZE"
-          uppercase_data_type: "OUTERCOMPOSITE"
-          producesJson: true
-      operation_id: "fake_outer_composite_serialize"
-      uppercase_operation_id: "FAKE_OUTER_COMPOSITE_SERIALIZE"
-      path: "/fake/outer/composite"
-      PATH_ID: "FAKE_OUTER_COMPOSITE"
-      hasPathParams: false
-      HttpMethod: "Post"
-  /fake/jsonFormData:
-    get:
-      tags:
-      - "fake"
-      summary: "test json serialization of form data"
-      description: ""
-      operationId: "testJsonFormData"
-      consumes:
-      - "application/json"
-      parameters:
-      - name: "param"
-        in: "formData"
-        description: "field1"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"param_example\".to_string()"
-      - name: "param2"
-        in: "formData"
-        description: "field2"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"param2_example\".to_string()"
-      responses:
-        200:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "TEST_JSON_FORM_DATA"
-      operation_id: "test_json_form_data"
-      uppercase_operation_id: "TEST_JSON_FORM_DATA"
-      path: "/fake/jsonFormData"
-      PATH_ID: "FAKE_JSONFORMDATA"
-      hasPathParams: false
-      HttpMethod: "Get"
-  /fake/inline-additionalProperties:
-    post:
-      tags:
-      - "fake"
-      summary: "test inline additionalProperties"
-      description: ""
-      operationId: "testInlineAdditionalProperties"
-      consumes:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "param"
-        description: "request body"
-        required: true
-        schema:
-          type: "object"
-          additionalProperties:
-            type: "string"
-          upperCaseName: "PARAM"
-        refName: null
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "TEST_INLINE_ADDITIONAL_PROPERTIES"
-        consumesJson: true
-      responses:
-        200:
-          description: "successful operation"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "TEST_INLINE_ADDITIONAL_PROPERTIES"
-      operation_id: "test_inline_additional_properties"
-      uppercase_operation_id: "TEST_INLINE_ADDITIONAL_PROPERTIES"
-      path: "/fake/inline-additionalProperties"
-      PATH_ID: "FAKE_INLINE_ADDITIONALPROPERTIES"
-      hasPathParams: false
-      HttpMethod: "Post"
-      noClientExample: true
-  /fake/body-with-query-params:
-    put:
-      operationId: "testBodyWithQueryParams"
-      consumes:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        required: true
-        schema:
-          $ref: "#/definitions/User"
-        uppercase_data_type: "USER"
-        refName: "User"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "TEST_BODY_WITH_QUERY_PARAMS"
-        consumesJson: true
-      - name: "query"
-        in: "query"
-        required: true
-        type: "string"
-        formatString: "\\\"{}\\\""
-        example: "\"query_example\".to_string()"
-      responses:
-        200:
-          description: "Success"
-          x-responseId: "Success"
-          x-uppercaseResponseId: "SUCCESS"
-          uppercase_operation_id: "TEST_BODY_WITH_QUERY_PARAMS"
-      operation_id: "test_body_with_query_params"
-      uppercase_operation_id: "TEST_BODY_WITH_QUERY_PARAMS"
-      path: "/fake/body-with-query-params"
-      PATH_ID: "FAKE_BODY_WITH_QUERY_PARAMS"
-      hasPathParams: false
-      HttpMethod: "Put"
-      noClientExample: true
-  /another-fake/dummy:
-    patch:
-      tags:
-      - "$another-fake?"
-      summary: "To test special tags"
-      description: "To test special tags"
-      operationId: "test_special_tags"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "client model"
-        required: true
-        schema:
-          $ref: "#/definitions/Client"
-        uppercase_data_type: "CLIENT"
-        refName: "Client"
-        formatString: "{:?}"
-        example: "???"
-        model_key: "OuterBoolean"
-        uppercase_operation_id: "TEST_SPECIAL_TAGS"
-        consumesJson: true
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/Client"
-          x-responseId: "SuccessfulOperation"
-          x-uppercaseResponseId: "SUCCESSFUL_OPERATION"
-          uppercase_operation_id: "TEST_SPECIAL_TAGS"
-          uppercase_data_type: "CLIENT"
-          producesJson: true
-      operation_id: "test_special_tags"
-      uppercase_operation_id: "TEST_SPECIAL_TAGS"
-      path: "/another-fake/dummy"
-      PATH_ID: "ANOTHER_FAKE_DUMMY"
-      hasPathParams: false
-      HttpMethod: "Patch"
-      noClientExample: true
-securityDefinitions:
-  petstore_auth:
-    type: "oauth2"
-    authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog"
-    flow: "implicit"
-    scopes:
-      write:pets: "modify pets in your account"
-      read:pets: "read your pets"
-  api_key:
-    type: "apiKey"
-    name: "api_key"
-    in: "header"
-  api_key_query:
-    type: "apiKey"
-    name: "api_key_query"
-    in: "query"
-  http_basic_test:
-    type: "basic"
-definitions:
-  Order:
-    type: "object"
-    properties:
-      id:
-        type: "integer"
-        format: "int64"
-      petId:
-        type: "integer"
-        format: "int64"
-      quantity:
-        type: "integer"
-        format: "int32"
-      shipDate:
-        type: "string"
-        format: "date-time"
-      status:
-        type: "string"
-        description: "Order Status"
-        enum:
-        - "placed"
-        - "approved"
-        - "delivered"
-      complete:
-        type: "boolean"
-        default: false
-    example:
-      petId: 6
-      quantity: 1
-      id: 0
-      shipDate: "2000-01-23T04:56:07.000+00:00"
-      complete: false
-      status: "placed"
-    xml:
-      name: "Order"
-    upperCaseName: "ORDER"
-  Category:
-    type: "object"
-    properties:
-      id:
-        type: "integer"
-        format: "int64"
-      name:
-        type: "string"
-    example:
-      name: "name"
-      id: 6
-    xml:
-      name: "Category"
-    upperCaseName: "CATEGORY"
-  User:
-    type: "object"
-    properties:
-      id:
-        type: "integer"
-        format: "int64"
-        x-is-unique: true
-      username:
-        type: "string"
-      firstName:
-        type: "string"
-      lastName:
-        type: "string"
-      email:
-        type: "string"
-      password:
-        type: "string"
-      phone:
-        type: "string"
-      userStatus:
-        type: "integer"
-        format: "int32"
-        description: "User Status"
-    example:
-      firstName: "firstName"
-      lastName: "lastName"
-      password: "password"
-      userStatus: 6
-      phone: "phone"
-      id: 0
-      email: "email"
-      username: "username"
-    xml:
-      name: "User"
-    upperCaseName: "USER"
-  Tag:
-    type: "object"
-    properties:
-      id:
-        type: "integer"
-        format: "int64"
-      name:
-        type: "string"
-    example:
-      name: "name"
-      id: 1
-    xml:
-      name: "Tag"
-    upperCaseName: "TAG"
-  Pet:
-    type: "object"
-    required:
-    - "name"
-    - "photoUrls"
-    properties:
-      id:
-        type: "integer"
-        format: "int64"
-        x-is-unique: true
-      category:
-        $ref: "#/definitions/Category"
-      name:
-        type: "string"
-        example: "doggie"
-      photoUrls:
-        type: "array"
-        xml:
-          name: "photoUrl"
-          wrapped: true
-        items:
-          type: "string"
-      tags:
-        type: "array"
-        xml:
-          name: "tag"
-          wrapped: true
-        items:
-          $ref: "#/definitions/Tag"
-      status:
-        type: "string"
-        description: "pet status in the store"
-        enum:
-        - "available"
-        - "pending"
-        - "sold"
-    example:
-      photoUrls:
-      - "photoUrls"
-      - "photoUrls"
-      name: "doggie"
-      id: 0
-      category:
-        name: "name"
-        id: 6
-      tags:
-      - name: "name"
-        id: 1
-      - name: "name"
-        id: 1
-      status: "available"
-    xml:
-      name: "Pet"
-    upperCaseName: "PET"
-  ApiResponse:
-    type: "object"
-    properties:
-      code:
-        type: "integer"
-        format: "int32"
-      type:
-        type: "string"
-      message:
-        type: "string"
-    example:
-      code: 0
-      type: "type"
-      message: "message"
-    upperCaseName: "APIRESPONSE"
-  $special[model.name]:
-    properties:
-      $special[property.name]:
-        type: "integer"
-        format: "int64"
-    xml:
-      name: "$special[model.name]"
-    upperCaseName: "$SPECIAL[MODEL.NAME]"
-  Return:
-    properties:
-      return:
-        type: "integer"
-        format: "int32"
-    description: "Model for testing reserved words"
-    xml:
-      name: "Return"
-    upperCaseName: "RETURN"
-  Name:
-    required:
-    - "name"
-    properties:
-      name:
-        type: "integer"
-        format: "int32"
-      snake_case:
-        type: "integer"
-        format: "int32"
-        readOnly: true
-      property:
-        type: "string"
-      123Number:
-        type: "integer"
-        readOnly: true
-    description: "Model for testing model name same as property name"
-    xml:
-      name: "Name"
-    upperCaseName: "NAME"
-  200_response:
-    properties:
-      name:
-        type: "integer"
-        format: "int32"
-      class:
-        type: "string"
-    description: "Model for testing model name starting with number"
-    xml:
-      name: "Name"
-    upperCaseName: "200_RESPONSE"
-  ClassModel:
-    properties:
-      _class:
-        type: "string"
-    description: "Model for testing model with \"_class\" property"
-    upperCaseName: "CLASSMODEL"
-  Dog:
-    allOf:
-    - $ref: "#/definitions/Animal"
-    - type: "object"
-      properties:
-        breed:
-          type: "string"
-    upperCaseName: "DOG"
-  Cat:
-    allOf:
-    - $ref: "#/definitions/Animal"
-    - type: "object"
-      properties:
-        declawed:
-          type: "boolean"
-    upperCaseName: "CAT"
-  Animal:
-    type: "object"
-    required:
-    - "className"
-    discriminator: "className"
-    properties:
-      className:
-        type: "string"
-      color:
-        type: "string"
-        default: "red"
-    upperCaseName: "ANIMAL"
-  AnimalFarm:
-    type: "array"
-    items:
-      $ref: "#/definitions/Animal"
-    upperCaseName: "ANIMALFARM"
-  format_test:
-    type: "object"
-    required:
-    - "byte"
-    - "date"
-    - "number"
-    - "password"
-    properties:
-      integer:
-        type: "integer"
-        minimum: 10
-        maximum: 100
-      int32:
-        type: "integer"
-        format: "int32"
-        minimum: 20
-        maximum: 200
-      int64:
-        type: "integer"
-        format: "int64"
-      number:
-        type: "number"
-        minimum: 32.1
-        maximum: 543.2
-      float:
-        type: "number"
-        format: "float"
-        minimum: 54.3
-        maximum: 987.6
-      double:
-        type: "number"
-        format: "double"
-        minimum: 67.8
-        maximum: 123.4
-      string:
-        type: "string"
-        pattern: "/[a-z]/i"
-      byte:
-        type: "string"
-        format: "byte"
-        pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
-      binary:
-        type: "string"
-        format: "binary"
-      date:
-        type: "string"
-        format: "date"
-      dateTime:
-        type: "string"
-        format: "date-time"
-      uuid:
-        type: "string"
-        format: "uuid"
-      password:
-        type: "string"
-        format: "password"
-        minLength: 10
-        maxLength: 64
-    upperCaseName: "FORMAT_TEST"
-  EnumClass:
-    type: "string"
-    enum:
-    - "_abc"
-    - "-efg"
-    - "(xyz)"
-    default: "-efg"
-    upperCaseName: "ENUMCLASS"
-  Enum_Test:
-    type: "object"
-    required:
-    - "enum_string_required"
-    properties:
-      enum_string:
-        type: "string"
-        enum:
-        - "UPPER"
-        - "lower"
-        - ""
-      enum_string_required:
-        type: "string"
-        enum:
-        - "UPPER"
-        - "lower"
-        - ""
-      enum_integer:
-        type: "integer"
-        format: "int32"
-        enum:
-        - 1
-        - -1
-      enum_number:
-        type: "number"
-        format: "double"
-        enum:
-        - 1.1
-        - -1.2
-      outerEnum:
-        $ref: "#/definitions/OuterEnum"
-    upperCaseName: "ENUM_TEST"
-  AdditionalPropertiesClass:
-    type: "object"
-    properties:
-      map_property:
-        type: "object"
-        additionalProperties:
-          type: "string"
-      map_of_map_property:
-        type: "object"
-        additionalProperties:
-          type: "object"
-          additionalProperties:
-            type: "string"
-    upperCaseName: "ADDITIONALPROPERTIESCLASS"
-  MixedPropertiesAndAdditionalPropertiesClass:
-    type: "object"
-    properties:
-      uuid:
-        type: "string"
-        format: "uuid"
-      dateTime:
-        type: "string"
-        format: "date-time"
-      map:
-        type: "object"
-        additionalProperties:
-          $ref: "#/definitions/Animal"
-    upperCaseName: "MIXEDPROPERTIESANDADDITIONALPROPERTIESCLASS"
-  List:
-    type: "object"
-    properties:
-      123-list:
-        type: "string"
-    upperCaseName: "LIST"
-  Client:
-    type: "object"
-    properties:
-      client:
-        type: "string"
-    example:
-      client: "client"
-    upperCaseName: "CLIENT"
-  ReadOnlyFirst:
-    type: "object"
-    properties:
-      bar:
-        type: "string"
-        readOnly: true
-      baz:
-        type: "string"
-    upperCaseName: "READONLYFIRST"
-  hasOnlyReadOnly:
-    type: "object"
-    properties:
-      bar:
-        type: "string"
-        readOnly: true
-      foo:
-        type: "string"
-        readOnly: true
-    upperCaseName: "HASONLYREADONLY"
-  Capitalization:
-    type: "object"
-    properties:
-      smallCamel:
-        type: "string"
-      CapitalCamel:
-        type: "string"
-      small_Snake:
-        type: "string"
-      Capital_Snake:
-        type: "string"
-      SCA_ETH_Flow_Points:
-        type: "string"
-      ATT_NAME:
-        type: "string"
-        description: "Name of the pet\n"
-    upperCaseName: "CAPITALIZATION"
-  MapTest:
-    type: "object"
-    properties:
-      map_map_of_string:
-        type: "object"
-        additionalProperties:
-          type: "object"
-          additionalProperties:
-            type: "string"
-      map_of_enum_string:
-        type: "object"
-        additionalProperties:
-          type: "string"
-          enum:
-          - "UPPER"
-          - "lower"
-    upperCaseName: "MAPTEST"
-  ArrayTest:
-    type: "object"
-    properties:
-      array_of_string:
-        type: "array"
-        items:
-          type: "string"
-      array_array_of_integer:
-        type: "array"
-        items:
-          type: "array"
-          items:
-            type: "integer"
-            format: "int64"
-      array_array_of_model:
-        type: "array"
-        items:
-          type: "array"
-          items:
-            $ref: "#/definitions/ReadOnlyFirst"
-    upperCaseName: "ARRAYTEST"
-  NumberOnly:
-    type: "object"
-    properties:
-      JustNumber:
-        type: "number"
-    upperCaseName: "NUMBERONLY"
-  ArrayOfNumberOnly:
-    type: "object"
-    properties:
-      ArrayNumber:
-        type: "array"
-        items:
-          type: "number"
-    upperCaseName: "ARRAYOFNUMBERONLY"
-  ArrayOfArrayOfNumberOnly:
-    type: "object"
-    properties:
-      ArrayArrayNumber:
-        type: "array"
-        items:
-          type: "array"
-          items:
-            type: "number"
-    upperCaseName: "ARRAYOFARRAYOFNUMBERONLY"
-  EnumArrays:
-    type: "object"
-    properties:
-      just_symbol:
-        type: "string"
-        enum:
-        - ">="
-        - "$"
-      array_enum:
-        type: "array"
-        items:
-          type: "string"
-          enum:
-          - "fish"
-          - "crab"
-    upperCaseName: "ENUMARRAYS"
-  OuterEnum:
-    type: "string"
-    enum:
-    - "placed"
-    - "approved"
-    - "delivered"
-    upperCaseName: "OUTERENUM"
-  OuterComposite:
-    type: "object"
-    properties:
-      my_number:
-        $ref: "#/definitions/OuterNumber"
-      my_string:
-        $ref: "#/definitions/OuterString"
-      my_boolean:
-        $ref: "#/definitions/OuterBoolean"
-    example:
-      my_string: {}
-      my_number: {}
-      my_boolean: {}
-    upperCaseName: "OUTERCOMPOSITE"
-  OuterNumber:
-    type: "number"
-    upperCaseName: "OUTERNUMBER"
-  OuterString:
-    type: "string"
-    upperCaseName: "OUTERSTRING"
-  OuterBoolean:
-    type: "boolean"
-    upperCaseName: "OUTERBOOLEAN"
-externalDocs:
-  description: "Find out more about Swagger"
-  url: "http://swagger.io"
diff --git a/samples/server/petstore/rust-server/examples/client.rs b/samples/server/petstore/rust-server/examples/client.rs
index 2b2f69d1179..3bd3a350970 100644
--- a/samples/server/petstore/rust-server/examples/client.rs
+++ b/samples/server/petstore/rust-server/examples/client.rs
@@ -4,12 +4,15 @@ extern crate petstore_api;
 #[allow(unused_extern_crates)]
 extern crate futures;
 #[allow(unused_extern_crates)]
+#[macro_use]
 extern crate swagger;
 #[allow(unused_extern_crates)]
 extern crate uuid;
 extern crate clap;
 extern crate tokio_core;
 
+use swagger::{ContextBuilder, EmptyContext, XSpanIdString, Has, Push, AuthData};
+
 #[allow(unused_imports)]
 use futures::{Future, future, Stream, stream};
 use tokio_core::reactor;
@@ -17,11 +20,11 @@ use tokio_core::reactor;
 use petstore_api::{ApiNoContext, ContextWrapperExt,
                       ApiError,
                       TestSpecialTagsResponse,
-                      TestBodyWithQueryParamsResponse,
                       FakeOuterBooleanSerializeResponse,
                       FakeOuterCompositeSerializeResponse,
                       FakeOuterNumberSerializeResponse,
                       FakeOuterStringSerializeResponse,
+                      TestBodyWithQueryParamsResponse,
                       TestClientModelResponse,
                       TestEndpointParametersResponse,
                       TestEnumParametersResponse,
@@ -112,179 +115,180 @@ fn main() {
             .expect("Failed to create HTTP client")
     };
 
-    // Using a non-default `Context` is not required; this is just an example!
-    let client = client.with_context(petstore_api::Context::new_with_span_id(self::uuid::Uuid::new_v4().to_string()));
+    let context: make_context_ty!(ContextBuilder, EmptyContext, Option, XSpanIdString) =
+        make_context!(ContextBuilder, EmptyContext, None, XSpanIdString(self::uuid::Uuid::new_v4().to_string()));
+    let client = client.with_context(context);
 
     match matches.value_of("operation") {
 
         // Disabled because there's no example.
         // Some("TestSpecialTags") => {
         //     let result = core.run(client.test_special_tags(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
-        //  },
-
-        // Disabled because there's no example.
-        // Some("TestBodyWithQueryParams") => {
-        //     let result = core.run(client.test_body_with_query_params(???, "query_example".to_string()));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("FakeOuterBooleanSerialize") => {
-            let result = core.run(client.fake_outer_boolean_serialize(None));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            let result = core.run(client.fake_outer_boolean_serialize(Some(true)));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("FakeOuterCompositeSerialize") => {
             let result = core.run(client.fake_outer_composite_serialize(None));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("FakeOuterNumberSerialize") => {
-            let result = core.run(client.fake_outer_number_serialize(None));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            let result = core.run(client.fake_outer_number_serialize(Some(1.2)));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("FakeOuterStringSerialize") => {
-            let result = core.run(client.fake_outer_string_serialize(None));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            let result = core.run(client.fake_outer_string_serialize(Some("body_example".to_string())));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
+        // Disabled because there's no example.
+        // Some("TestBodyWithQueryParams") => {
+        //     let result = core.run(client.test_body_with_query_params("query_example".to_string(), ???));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
+        //  },
+
         // Disabled because there's no example.
         // Some("TestClientModel") => {
         //     let result = core.run(client.test_client_model(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("TestEndpointParameters") => {
-            let result = core.run(client.test_endpoint_parameters(8.14, 1.2, "pattern_without_delimiter_example".to_string(), swagger::ByteArray(Vec::from("B")), Some(56), Some(56), Some(789), Some(3.4), Some("string_example".to_string()), Some(swagger::ByteArray(Vec::from("B"))), None, None, Some("password_example".to_string()), Some("callback_example".to_string())));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            let result = core.run(client.test_endpoint_parameters(8.14, 1.2, "pattern_without_delimiter_example".to_string(), Some(56), Some(56), Some(789), Some(3.4), Some("string_example".to_string()), Box::new(future::ok(Some(Box::new(stream::once(Ok(b"hello".to_vec()))) as Box + Send>))) as Box + Send>, None, None, Some("password_example".to_string()), Some("callback_example".to_string())));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("TestEnumParameters") => {
-            let result = core.run(client.test_enum_parameters(Some(&Vec::new()), Some("enum_form_string_example".to_string()), Some(&Vec::new()), Some("enum_header_string_example".to_string()), Some(&Vec::new()), Some("enum_query_string_example".to_string()), Some(56), Some(1.2)));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            let result = core.run(client.test_enum_parameters(Some(&Vec::new()), Some("enum_header_string_example".to_string()), Some(&Vec::new()), Some("enum_query_string_example".to_string()), Some(56), Some(1.2)));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         // Disabled because there's no example.
         // Some("TestInlineAdditionalProperties") => {
         //     let result = core.run(client.test_inline_additional_properties(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("TestJsonFormData") => {
             let result = core.run(client.test_json_form_data("param_example".to_string(), "param2_example".to_string()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         // Disabled because there's no example.
         // Some("TestClassname") => {
         //     let result = core.run(client.test_classname(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         // Disabled because there's no example.
         // Some("AddPet") => {
         //     let result = core.run(client.add_pet(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("DeletePet") => {
             let result = core.run(client.delete_pet(789, Some("api_key_example".to_string())));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("FindPetsByStatus") => {
             let result = core.run(client.find_pets_by_status(&Vec::new()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("FindPetsByTags") => {
             let result = core.run(client.find_pets_by_tags(&Vec::new()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("GetPetById") => {
             let result = core.run(client.get_pet_by_id(789));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         // Disabled because there's no example.
         // Some("UpdatePet") => {
         //     let result = core.run(client.update_pet(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("UpdatePetWithForm") => {
             let result = core.run(client.update_pet_with_form(789, Some("name_example".to_string()), Some("status_example".to_string())));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("UploadFile") => {
             let result = core.run(client.upload_file(789, Some("additional_metadata_example".to_string()), Box::new(future::ok(Some(Box::new(stream::once(Ok(b"hello".to_vec()))) as Box + Send>))) as Box + Send>));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("DeleteOrder") => {
             let result = core.run(client.delete_order("order_id_example".to_string()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("GetInventory") => {
             let result = core.run(client.get_inventory());
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("GetOrderById") => {
             let result = core.run(client.get_order_by_id(789));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         // Disabled because there's no example.
         // Some("PlaceOrder") => {
         //     let result = core.run(client.place_order(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         // Disabled because there's no example.
         // Some("CreateUser") => {
         //     let result = core.run(client.create_user(???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         Some("CreateUsersWithArrayInput") => {
             let result = core.run(client.create_users_with_array_input(&Vec::new()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("CreateUsersWithListInput") => {
             let result = core.run(client.create_users_with_list_input(&Vec::new()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("DeleteUser") => {
             let result = core.run(client.delete_user("username_example".to_string()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("GetUserByName") => {
             let result = core.run(client.get_user_by_name("username_example".to_string()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("LoginUser") => {
             let result = core.run(client.login_user("username_example".to_string(), "password_example".to_string()));
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         Some("LogoutUser") => {
             let result = core.run(client.logout_user());
-            println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+            println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
          },
 
         // Disabled because there's no example.
         // Some("UpdateUser") => {
         //     let result = core.run(client.update_user("username_example".to_string(), ???));
-        //     println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from("")));
+        //     println!("{:?} (X-Span-ID: {:?})", result, (client.context() as &Has).get().clone());
         //  },
 
         _ => {
diff --git a/samples/server/petstore/rust-server/examples/server.rs b/samples/server/petstore/rust-server/examples/server.rs
index 65b48aced82..f3846ade0ea 100644
--- a/samples/server/petstore/rust-server/examples/server.rs
+++ b/samples/server/petstore/rust-server/examples/server.rs
@@ -29,6 +29,7 @@ use hyper::server::Http;
 use tokio_proto::TcpServer;
 use clap::{App, Arg};
 use swagger::auth::AllowAllAuthenticator;
+use swagger::EmptyContext;
 
 mod server_lib;
 
@@ -54,9 +55,9 @@ fn main() {
         .get_matches();
 
     let service_fn =
-        petstore_api::server::auth::NewService::new(
+        petstore_api::server::auth::NewService::<_, EmptyContext>::new(
             AllowAllAuthenticator::new(
-                server_lib::NewService,
+                server_lib::NewService::new(),
                 "cosmo"
             )
         );
diff --git a/samples/server/petstore/rust-server/examples/server_lib/mod.rs b/samples/server/petstore/rust-server/examples/server_lib/mod.rs
index ac79dc722b5..c4f682d6539 100644
--- a/samples/server/petstore/rust-server/examples/server_lib/mod.rs
+++ b/samples/server/petstore/rust-server/examples/server_lib/mod.rs
@@ -8,19 +8,31 @@ mod errors {
 
 pub use self::errors::*;
 use std::io;
+use std::clone::Clone;
+use std::marker::PhantomData;
 use hyper;
 use petstore_api;
+use swagger::{Has, XSpanIdString};
+use swagger::auth::Authorization;
 
-pub struct NewService;
+pub struct NewService{
+    marker: PhantomData
+}
 
-impl hyper::server::NewService for NewService {
-    type Request = (hyper::Request, petstore_api::Context);
+impl NewService{
+    pub fn new() -> Self {
+        NewService{marker:PhantomData}
+    }
+}
+
+impl hyper::server::NewService for NewService where C: Has + Has> + Clone + 'static {
+    type Request = (hyper::Request, C);
     type Response = hyper::Response;
     type Error = hyper::Error;
-    type Instance = petstore_api::server::Service;
+    type Instance = petstore_api::server::Service, C>;
 
     /// Instantiate a new server.
     fn new_service(&self) -> io::Result {
-        Ok(petstore_api::server::Service::new(server::Server))
+        Ok(petstore_api::server::Service::new(server::Server::new()))
     }
 }
diff --git a/samples/server/petstore/rust-server/examples/server_lib/server.rs b/samples/server/petstore/rust-server/examples/server_lib/server.rs
index bb3a045dcbc..47b50031127 100644
--- a/samples/server/petstore/rust-server/examples/server_lib/server.rs
+++ b/samples/server/petstore/rust-server/examples/server_lib/server.rs
@@ -7,16 +7,18 @@ use chrono;
 use futures::Stream;
 use std::collections::HashMap;
 use std::io::Error;
+use std::marker::PhantomData;
 
 use swagger;
+use swagger::{Has, XSpanIdString};
 
-use petstore_api::{Api, ApiError, Context,
+use petstore_api::{Api, ApiError,
                       TestSpecialTagsResponse,
-                      TestBodyWithQueryParamsResponse,
                       FakeOuterBooleanSerializeResponse,
                       FakeOuterCompositeSerializeResponse,
                       FakeOuterNumberSerializeResponse,
                       FakeOuterStringSerializeResponse,
+                      TestBodyWithQueryParamsResponse,
                       TestClientModelResponse,
                       TestEndpointParametersResponse,
                       TestEnumParametersResponse,
@@ -47,232 +49,241 @@ use petstore_api::{Api, ApiError, Context,
 use petstore_api::models;
 
 #[derive(Copy, Clone)]
-pub struct Server;
+pub struct Server {
+    marker: PhantomData,
+}
 
-impl Api for Server {
+impl Server {
+    pub fn new() -> Self {
+        Server{marker: PhantomData}
+    }
+}
+
+impl Api for Server where C: Has{
 
     /// To test special tags
-    fn test_special_tags(&self, body: models::Client, context: &Context) -> Box> {
+    fn test_special_tags(&self, client: models::Client, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_special_tags({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_special_tags({:?}) - X-Span-ID: {:?}", client, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
 
-    fn test_body_with_query_params(&self, body: models::User, query: String, context: &Context) -> Box> {
+    fn fake_outer_boolean_serialize(&self, body: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_body_with_query_params({:?}, \"{}\") - X-Span-ID: {:?}", body, query, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("fake_outer_boolean_serialize({:?}) - X-Span-ID: {:?}", body, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
 
-    fn fake_outer_boolean_serialize(&self, body: Option, context: &Context) -> Box> {
+    fn fake_outer_composite_serialize(&self, outer_composite: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("fake_outer_boolean_serialize({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("fake_outer_composite_serialize({:?}) - X-Span-ID: {:?}", outer_composite, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
 
-    fn fake_outer_composite_serialize(&self, body: Option, context: &Context) -> Box> {
+    fn fake_outer_number_serialize(&self, body: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("fake_outer_composite_serialize({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("fake_outer_number_serialize({:?}) - X-Span-ID: {:?}", body, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
 
-    fn fake_outer_number_serialize(&self, body: Option, context: &Context) -> Box> {
+    fn fake_outer_string_serialize(&self, body: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("fake_outer_number_serialize({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("fake_outer_string_serialize({:?}) - X-Span-ID: {:?}", body, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
 
-    fn fake_outer_string_serialize(&self, body: Option, context: &Context) -> Box> {
+    fn test_body_with_query_params(&self, query: String, user: models::User, context: &C) -> Box> {
         let context = context.clone();
-        println!("fake_outer_string_serialize({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_body_with_query_params(\"{}\", {:?}) - X-Span-ID: {:?}", query, user, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// To test \"client\" model
-    fn test_client_model(&self, body: models::Client, context: &Context) -> Box> {
+    fn test_client_model(&self, client: models::Client, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_client_model({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_client_model({:?}) - X-Span-ID: {:?}", client, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, byte: swagger::ByteArray, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Option, date: Option>, date_time: Option>, password: Option, callback: Option, context: &Context) -> Box> {
+    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Box, Error=Error> + Send>>, Error=Error> + Send>, date: Option>, date_time: Option>, password: Option, callback: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_endpoint_parameters({}, {}, \"{}\", {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", number, double, pattern_without_delimiter, byte, integer, int32, int64, float, string, binary, date, date_time, password, callback, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_endpoint_parameters({}, {}, \"{}\", {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", number, double, pattern_without_delimiter, integer, int32, int64, float, string, date, date_time, password, callback, context.get().0.clone());
+        let _ = binary; //Suppresses unused param warning
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// To test enum parameters
-    fn test_enum_parameters(&self, enum_form_string_array: Option<&Vec>, enum_form_string: Option, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option, context: &Context) -> Box> {
+    fn test_enum_parameters(&self, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_enum_parameters({:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", enum_form_string_array, enum_form_string, enum_header_string_array, enum_header_string, enum_query_string_array, enum_query_string, enum_query_integer, enum_query_double, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_enum_parameters({:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", enum_header_string_array, enum_header_string, enum_query_string_array, enum_query_string, enum_query_integer, enum_query_double, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// test inline additionalProperties
-    fn test_inline_additional_properties(&self, param: object, context: &Context) -> Box> {
+    fn test_inline_additional_properties(&self, request_body: HashMap, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_inline_additional_properties({:?}) - X-Span-ID: {:?}", param, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_inline_additional_properties({:?}) - X-Span-ID: {:?}", request_body, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// test json serialization of form data
-    fn test_json_form_data(&self, param: String, param2: String, context: &Context) -> Box> {
+    fn test_json_form_data(&self, param: String, param2: String, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_json_form_data(\"{}\", \"{}\") - X-Span-ID: {:?}", param, param2, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_json_form_data(\"{}\", \"{}\") - X-Span-ID: {:?}", param, param2, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// To test class name in snake case
-    fn test_classname(&self, body: models::Client, context: &Context) -> Box> {
+    fn test_classname(&self, client: models::Client, context: &C) -> Box> {
         let context = context.clone();
-        println!("test_classname({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("test_classname({:?}) - X-Span-ID: {:?}", client, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Add a new pet to the store
-    fn add_pet(&self, body: models::Pet, context: &Context) -> Box> {
+    fn add_pet(&self, pet: models::Pet, context: &C) -> Box> {
         let context = context.clone();
-        println!("add_pet({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("add_pet({:?}) - X-Span-ID: {:?}", pet, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Deletes a pet
-    fn delete_pet(&self, pet_id: i64, api_key: Option, context: &Context) -> Box> {
+    fn delete_pet(&self, pet_id: i64, api_key: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("delete_pet({}, {:?}) - X-Span-ID: {:?}", pet_id, api_key, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("delete_pet({}, {:?}) - X-Span-ID: {:?}", pet_id, api_key, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Finds Pets by status
-    fn find_pets_by_status(&self, status: &Vec, context: &Context) -> Box> {
+    fn find_pets_by_status(&self, status: &Vec, context: &C) -> Box> {
         let context = context.clone();
-        println!("find_pets_by_status({:?}) - X-Span-ID: {:?}", status, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("find_pets_by_status({:?}) - X-Span-ID: {:?}", status, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Finds Pets by tags
-    fn find_pets_by_tags(&self, tags: &Vec, context: &Context) -> Box> {
+    fn find_pets_by_tags(&self, tags: &Vec, context: &C) -> Box> {
         let context = context.clone();
-        println!("find_pets_by_tags({:?}) - X-Span-ID: {:?}", tags, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("find_pets_by_tags({:?}) - X-Span-ID: {:?}", tags, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Find pet by ID
-    fn get_pet_by_id(&self, pet_id: i64, context: &Context) -> Box> {
+    fn get_pet_by_id(&self, pet_id: i64, context: &C) -> Box> {
         let context = context.clone();
-        println!("get_pet_by_id({}) - X-Span-ID: {:?}", pet_id, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("get_pet_by_id({}) - X-Span-ID: {:?}", pet_id, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Update an existing pet
-    fn update_pet(&self, body: models::Pet, context: &Context) -> Box> {
+    fn update_pet(&self, pet: models::Pet, context: &C) -> Box> {
         let context = context.clone();
-        println!("update_pet({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("update_pet({:?}) - X-Span-ID: {:?}", pet, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Updates a pet in the store with form data
-    fn update_pet_with_form(&self, pet_id: i64, name: Option, status: Option, context: &Context) -> Box> {
+    fn update_pet_with_form(&self, pet_id: i64, name: Option, status: Option, context: &C) -> Box> {
         let context = context.clone();
-        println!("update_pet_with_form({}, {:?}, {:?}) - X-Span-ID: {:?}", pet_id, name, status, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("update_pet_with_form({}, {:?}, {:?}) - X-Span-ID: {:?}", pet_id, name, status, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// uploads an image
-    fn upload_file(&self, pet_id: i64, additional_metadata: Option, file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &Context) -> Box> {
+    fn upload_file(&self, pet_id: i64, additional_metadata: Option, file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &C) -> Box> {
         let context = context.clone();
-        println!("upload_file({}, {:?}, ) - X-Span-ID: {:?}", pet_id, additional_metadata, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("upload_file({}, {:?}, ) - X-Span-ID: {:?}", pet_id, additional_metadata, context.get().0.clone());
         let _ = file; //Suppresses unused param warning
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Delete purchase order by ID
-    fn delete_order(&self, order_id: String, context: &Context) -> Box> {
+    fn delete_order(&self, order_id: String, context: &C) -> Box> {
         let context = context.clone();
-        println!("delete_order(\"{}\") - X-Span-ID: {:?}", order_id, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("delete_order(\"{}\") - X-Span-ID: {:?}", order_id, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Returns pet inventories by status
-    fn get_inventory(&self, context: &Context) -> Box> {
+    fn get_inventory(&self, context: &C) -> Box> {
         let context = context.clone();
-        println!("get_inventory() - X-Span-ID: {:?}", context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("get_inventory() - X-Span-ID: {:?}", context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Find purchase order by ID
-    fn get_order_by_id(&self, order_id: i64, context: &Context) -> Box> {
+    fn get_order_by_id(&self, order_id: i64, context: &C) -> Box> {
         let context = context.clone();
-        println!("get_order_by_id({}) - X-Span-ID: {:?}", order_id, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("get_order_by_id({}) - X-Span-ID: {:?}", order_id, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Place an order for a pet
-    fn place_order(&self, body: models::Order, context: &Context) -> Box> {
+    fn place_order(&self, order: models::Order, context: &C) -> Box> {
         let context = context.clone();
-        println!("place_order({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("place_order({:?}) - X-Span-ID: {:?}", order, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Create user
-    fn create_user(&self, body: models::User, context: &Context) -> Box> {
+    fn create_user(&self, user: models::User, context: &C) -> Box> {
         let context = context.clone();
-        println!("create_user({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("create_user({:?}) - X-Span-ID: {:?}", user, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Creates list of users with given input array
-    fn create_users_with_array_input(&self, body: &Vec, context: &Context) -> Box> {
+    fn create_users_with_array_input(&self, user: &Vec, context: &C) -> Box> {
         let context = context.clone();
-        println!("create_users_with_array_input({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("create_users_with_array_input({:?}) - X-Span-ID: {:?}", user, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Creates list of users with given input array
-    fn create_users_with_list_input(&self, body: &Vec, context: &Context) -> Box> {
+    fn create_users_with_list_input(&self, user: &Vec, context: &C) -> Box> {
         let context = context.clone();
-        println!("create_users_with_list_input({:?}) - X-Span-ID: {:?}", body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("create_users_with_list_input({:?}) - X-Span-ID: {:?}", user, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Delete user
-    fn delete_user(&self, username: String, context: &Context) -> Box> {
+    fn delete_user(&self, username: String, context: &C) -> Box> {
         let context = context.clone();
-        println!("delete_user(\"{}\") - X-Span-ID: {:?}", username, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("delete_user(\"{}\") - X-Span-ID: {:?}", username, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Get user by user name
-    fn get_user_by_name(&self, username: String, context: &Context) -> Box> {
+    fn get_user_by_name(&self, username: String, context: &C) -> Box> {
         let context = context.clone();
-        println!("get_user_by_name(\"{}\") - X-Span-ID: {:?}", username, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("get_user_by_name(\"{}\") - X-Span-ID: {:?}", username, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Logs user into the system
-    fn login_user(&self, username: String, password: String, context: &Context) -> Box> {
+    fn login_user(&self, username: String, password: String, context: &C) -> Box> {
         let context = context.clone();
-        println!("login_user(\"{}\", \"{}\") - X-Span-ID: {:?}", username, password, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("login_user(\"{}\", \"{}\") - X-Span-ID: {:?}", username, password, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Logs out current logged in user session
-    fn logout_user(&self, context: &Context) -> Box> {
+    fn logout_user(&self, context: &C) -> Box> {
         let context = context.clone();
-        println!("logout_user() - X-Span-ID: {:?}", context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("logout_user() - X-Span-ID: {:?}", context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
     /// Updated user
-    fn update_user(&self, username: String, body: models::User, context: &Context) -> Box> {
+    fn update_user(&self, username: String, user: models::User, context: &C) -> Box> {
         let context = context.clone();
-        println!("update_user(\"{}\", {:?}) - X-Span-ID: {:?}", username, body, context.x_span_id.unwrap_or(String::from("")).clone());
+        println!("update_user(\"{}\", {:?}) - X-Span-ID: {:?}", username, user, context.get().0.clone());
         Box::new(futures::failed("Generic failure".into()))
     }
 
diff --git a/samples/server/petstore/rust-server/pom.xml b/samples/server/petstore/rust-server/pom.xml
new file mode 100644
index 00000000000..6255746d0ef
--- /dev/null
+++ b/samples/server/petstore/rust-server/pom.xml
@@ -0,0 +1,46 @@
+
+    4.0.0
+    org.openapitools
+    RustServerTests
+    pom
+    1.0-SNAPSHOT
+    Rust Petstore Sample
+    
+        
+            
+                maven-dependency-plugin
+                
+                    
+                        package
+                        
+                            copy-dependencies
+                        
+                        
+                            ${project.build.directory}
+                        
+                    
+                
+            
+            
+                org.codehaus.mojo
+                exec-maven-plugin
+                1.2.1
+                
+                    
+                        bundle-test
+                        integration-test
+                        
+                            exec
+                        
+                        
+                            cargo
+                            
+                                test
+                            
+                        
+                    
+                
+            
+        
+    
+
diff --git a/samples/server/petstore/rust-server/src/client/mod.rs b/samples/server/petstore/rust-server/src/client/mod.rs
index 645907ba2d1..8ce1b41ce1c 100644
--- a/samples/server/petstore/rust-server/src/client/mod.rs
+++ b/samples/server/petstore/rust-server/src/client/mod.rs
@@ -38,15 +38,15 @@ use std::collections::{HashMap, BTreeMap};
 #[allow(unused_imports)]
 use swagger;
 
-use swagger::{Context, ApiError, XSpanId};
+use swagger::{ApiError, XSpanId, XSpanIdString, Has, AuthData};
 
 use {Api,
      TestSpecialTagsResponse,
-     TestBodyWithQueryParamsResponse,
      FakeOuterBooleanSerializeResponse,
      FakeOuterCompositeSerializeResponse,
      FakeOuterNumberSerializeResponse,
      FakeOuterStringSerializeResponse,
+     TestBodyWithQueryParamsResponse,
      TestClientModelResponse,
      TestEndpointParametersResponse,
      TestEnumParametersResponse,
@@ -98,8 +98,7 @@ fn into_base_path(input: &str, correct_scheme: Option<&'static str>) -> Result Box, Response=hyper::Response, Error=hyper::Error, Future=hyper::client::FutureResponse>> + Sync + Send>,
-    handle: Arc,
+    hyper_client: Arc, Response=hyper::Response, Error=hyper::Error, Future=hyper::client::FutureResponse>>>,
     base_path: String,
 }
 
@@ -204,25 +203,13 @@ impl Client {
     where
         C: hyper::client::Connect + hyper::client::Service,
     {
-        let hyper_client = {
-            move |handle: &Handle| -> Box<
-                hyper::client::Service<
-                    Request = hyper::Request,
-                    Response = hyper::Response,
-                    Error = hyper::Error,
-                    Future = hyper::client::FutureResponse,
-                >,
-            > {
-                let connector = connector_fn(handle);
-                Box::new(hyper::Client::configure().connector(connector).build(
-                    handle,
-                ))
-            }
-        };
+        let connector = connector_fn(&handle);
+        let hyper_client = Box::new(hyper::Client::configure().connector(connector).build(
+            &handle,
+        ));
 
         Ok(Client {
             hyper_client: Arc::new(hyper_client),
-            handle: Arc::new(handle),
             base_path: into_base_path(base_path, protocol)?,
         })
     }
@@ -236,22 +223,21 @@ impl Client {
     /// The reason for this function's existence is to support legacy test code, which did mocking at the hyper layer.
     /// This is not a recommended way to write new tests. If other reasons are found for using this function, they
     /// should be mentioned here.
-    pub fn try_new_with_hyper_client(hyper_client: Arc Box, Response=hyper::Response, Error=hyper::Error, Future=hyper::client::FutureResponse>> + Sync + Send>,
+    pub fn try_new_with_hyper_client(hyper_client: Arc, Response=hyper::Response, Error=hyper::Error, Future=hyper::client::FutureResponse>>>,
                                      handle: Handle,
                                      base_path: &str)
                                     -> Result
     {
         Ok(Client {
             hyper_client: hyper_client,
-            handle: Arc::new(handle),
             base_path: into_base_path(base_path, None)?,
         })
     }
 }
 
-impl Api for Client {
+impl Api for Client where C: Has + Has>{
 
-    fn test_special_tags(&self, param_body: models::Client, context: &Context) -> Box> {
+    fn test_special_tags(&self, param_client: models::Client, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -267,20 +253,21 @@ impl Api for Client {
         let mut request = hyper::Request::new(hyper::Method::Patch, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        // Body parameter
+
+        let body = serde_json::to_string(¶m_client).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::TEST_SPECIAL_TAGS.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -328,77 +315,7 @@ impl Api for Client {
 
     }
 
-    fn test_body_with_query_params(&self, param_body: models::User, param_query: String, context: &Context) -> Box> {
-
-        // Query parameters
-        let query_query = format!("query={query}&", query=param_query.to_string());
-
-
-        let uri = format!(
-            "{}/v2/fake/body-with-query-params?{query}",
-            self.base_path,
-            query=utf8_percent_encode(&query_query, QUERY_ENCODE_SET)
-        );
-
-        let uri = match Uri::from_str(&uri) {
-            Ok(uri) => uri,
-            Err(err) => return Box::new(futures::done(Err(ApiError(format!("Unable to build URI: {}", err))))),
-        };
-
-        let mut request = hyper::Request::new(hyper::Method::Put, uri);
-
-
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
-
-
-        request.set_body(body.into_bytes());
-
-
-        request.headers_mut().set(ContentType(mimetypes::requests::TEST_BODY_WITH_QUERY_PARAMS.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
-
-
-
-
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
-                             .map_err(|e| ApiError(format!("No response received: {}", e)))
-                             .and_then(|mut response| {
-            match response.status().as_u16() {
-                200 => {
-                    let body = response.body();
-                    Box::new(
-
-                        future::ok(
-                            TestBodyWithQueryParamsResponse::Success
-                        )
-                    ) as Box>
-                },
-                code => {
-                    let headers = response.headers().clone();
-                    Box::new(response.body()
-                            .take(100)
-                            .concat2()
-                            .then(move |body|
-                                future::err(ApiError(format!("Unexpected response code {}:\n{:?}\n\n{}",
-                                    code,
-                                    headers,
-                                    match body {
-                                        Ok(ref body) => match str::from_utf8(body) {
-                                            Ok(body) => Cow::from(body),
-                                            Err(e) => Cow::from(format!("", e)),
-                                        },
-                                        Err(e) => Cow::from(format!("", e)),
-                                    })))
-                            )
-                    ) as Box>
-                }
-            }
-        }))
-
-    }
-
-    fn fake_outer_boolean_serialize(&self, param_body: Option, context: &Context) -> Box> {
+    fn fake_outer_boolean_serialize(&self, param_body: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -413,6 +330,8 @@ impl Api for Client {
 
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
+
+        // Body parameter
         let body = param_body.map(|ref body| {
 
             serde_json::to_string(body).expect("impossible to fail to serialize")
@@ -423,13 +342,12 @@ if let Some(body) = body {
         }
 
         request.headers_mut().set(ContentType(mimetypes::requests::FAKE_OUTER_BOOLEAN_SERIALIZE.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -477,7 +395,7 @@ if let Some(body) = body {
 
     }
 
-    fn fake_outer_composite_serialize(&self, param_body: Option, context: &Context) -> Box> {
+    fn fake_outer_composite_serialize(&self, param_outer_composite: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -492,7 +410,7 @@ if let Some(body) = body {
 
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
-        let body = param_body.map(|ref body| {
+        let body = param_outer_composite.map(|ref body| {
 
             serde_json::to_string(body).expect("impossible to fail to serialize")
         });
@@ -502,13 +420,12 @@ if let Some(body) = body {
         }
 
         request.headers_mut().set(ContentType(mimetypes::requests::FAKE_OUTER_COMPOSITE_SERIALIZE.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -556,7 +473,7 @@ if let Some(body) = body {
 
     }
 
-    fn fake_outer_number_serialize(&self, param_body: Option, context: &Context) -> Box> {
+    fn fake_outer_number_serialize(&self, param_body: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -581,13 +498,12 @@ if let Some(body) = body {
         }
 
         request.headers_mut().set(ContentType(mimetypes::requests::FAKE_OUTER_NUMBER_SERIALIZE.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -635,7 +551,7 @@ if let Some(body) = body {
 
     }
 
-    fn fake_outer_string_serialize(&self, param_body: Option, context: &Context) -> Box> {
+    fn fake_outer_string_serialize(&self, param_body: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -660,13 +576,12 @@ if let Some(body) = body {
         }
 
         request.headers_mut().set(ContentType(mimetypes::requests::FAKE_OUTER_STRING_SERIALIZE.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -714,7 +629,76 @@ if let Some(body) = body {
 
     }
 
-    fn test_client_model(&self, param_body: models::Client, context: &Context) -> Box> {
+    fn test_body_with_query_params(&self, param_query: String, param_user: models::User, context: &C) -> Box> {
+
+        // Query parameters
+        let query_query = format!("query={query}&", query=param_query.to_string());
+
+
+        let uri = format!(
+            "{}/v2/fake/body-with-query-params?{query}",
+            self.base_path,
+            query=utf8_percent_encode(&query_query, QUERY_ENCODE_SET)
+        );
+
+        let uri = match Uri::from_str(&uri) {
+            Ok(uri) => uri,
+            Err(err) => return Box::new(futures::done(Err(ApiError(format!("Unable to build URI: {}", err))))),
+        };
+
+        let mut request = hyper::Request::new(hyper::Method::Put, uri);
+
+
+        let body = serde_json::to_string(¶m_user).expect("impossible to fail to serialize");
+
+
+        request.set_body(body.into_bytes());
+
+
+        request.headers_mut().set(ContentType(mimetypes::requests::TEST_BODY_WITH_QUERY_PARAMS.clone()));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
+
+
+
+
+        Box::new(self.hyper_client.call(request)
+                             .map_err(|e| ApiError(format!("No response received: {}", e)))
+                             .and_then(|mut response| {
+            match response.status().as_u16() {
+                200 => {
+                    let body = response.body();
+                    Box::new(
+
+                        future::ok(
+                            TestBodyWithQueryParamsResponse::Success
+                        )
+                    ) as Box>
+                },
+                code => {
+                    let headers = response.headers().clone();
+                    Box::new(response.body()
+                            .take(100)
+                            .concat2()
+                            .then(move |body|
+                                future::err(ApiError(format!("Unexpected response code {}:\n{:?}\n\n{}",
+                                    code,
+                                    headers,
+                                    match body {
+                                        Ok(ref body) => match str::from_utf8(body) {
+                                            Ok(body) => Cow::from(body),
+                                            Err(e) => Cow::from(format!("", e)),
+                                        },
+                                        Err(e) => Cow::from(format!("", e)),
+                                    })))
+                            )
+                    ) as Box>
+                }
+            }
+        }))
+
+    }
+
+    fn test_client_model(&self, param_client: models::Client, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -730,20 +714,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Patch, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_client).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::TEST_CLIENT_MODEL.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -791,7 +774,7 @@ if let Some(body) = body {
 
     }
 
-    fn test_endpoint_parameters(&self, param_number: f64, param_double: f64, param_pattern_without_delimiter: String, param_byte: swagger::ByteArray, param_integer: Option, param_int32: Option, param_int64: Option, param_float: Option, param_string: Option, param_binary: Option, param_date: Option>, param_date_time: Option>, param_password: Option, param_callback: Option, context: &Context) -> Box> {
+    fn test_endpoint_parameters(&self, param_number: f64, param_double: f64, param_pattern_without_delimiter: String, param_integer: Option, param_int32: Option, param_int64: Option, param_float: Option, param_string: Option, param_binary: Box, Error=Error> + Send>>, Error=Error> + Send>, param_date: Option>, param_date_time: Option>, param_password: Option, param_callback: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -806,30 +789,45 @@ if let Some(body) = body {
 
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
-        let params = &[
-            ("integer", param_integer.map(|param| format!("{:?}", param))),
-            ("int32", param_int32.map(|param| format!("{:?}", param))),
-            ("int64", param_int64.map(|param| format!("{:?}", param))),
-            ("number", Some(format!("{:?}", param_number))),
-            ("float", param_float.map(|param| format!("{:?}", param))),
-            ("double", Some(format!("{:?}", param_double))),
-            ("string", param_string),
-            ("pattern_without_delimiter", Some(param_pattern_without_delimiter)),
-            ("byte", Some(format!("{:?}", param_byte))),
-            ("binary", param_binary.map(|param| format!("{:?}", param))),
-            ("date", param_date.map(|param| format!("{:?}", param))),
-            ("dateTime", param_date_time.map(|param| format!("{:?}", param))),
-            ("password", param_password),
-            ("callback", param_callback),
-        ];
-        let body = serde_urlencoded::to_string(params).expect("impossible to fail to serialize");
+        // Form data body
+        let mut multipart = Multipart::new();
 
-        request.headers_mut().set(ContentType(mimetypes::requests::TEST_ENDPOINT_PARAMETERS.clone()));
-        request.set_body(body.into_bytes());
+        // Helper function to convert a Stream into a String. The String can then be used to build the HTTP body.
+        fn convert_stream_to_string(stream: Box, Error=Error> + Send>) -> Result {
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
-        context.auth_data.as_ref().map(|auth_data| {
-            if let &swagger::AuthData::Basic(ref basic_header) = auth_data {
+            stream.concat2()
+              .wait()
+              .map_err(|e| ApiError(format!("Unable to collect stream: {}", e)))
+              .and_then(|body| String::from_utf8(body)
+                .map_err(|e| ApiError(format!("Failed to convert utf8 stream to String: {}", e))))
+        }
+
+        if let Ok(Some(param_binary)) = param_binary.wait() { 
+            match convert_stream_to_string(param_binary) {
+                Ok(param_binary) => {
+                    // Add file to multipart form.
+                    multipart.add_text("binary", param_binary);
+                },
+                Err(err) => return Box::new(futures::done(Err(err))),
+            }
+        }
+
+        let mut fields = match multipart.prepare() {
+            Ok(fields) => fields,
+            Err(err) => return Box::new(futures::done(Err(ApiError(format!("Unable to build request: {}", err))))),
+        };
+
+        let mut body_string = String::new();
+        let body = fields.to_body().read_to_string(&mut body_string);
+        let boundary = fields.boundary();
+        let multipart_header = match mime::Mime::from_str(&format!("multipart/form-data;boundary={}", boundary)) {
+            Ok(multipart_header) => multipart_header,
+            Err(err) => return Box::new(futures::done(Err(ApiError(format!("Unable to build multipart header: {:?}", err))))),
+        };
+
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
+        (context as &Has>).get().as_ref().map(|auth_data| {
+            if let &AuthData::Basic(ref basic_header) = auth_data {
                 request.headers_mut().set(hyper::header::Authorization(
                     basic_header.clone(),
                 ))
@@ -837,9 +835,11 @@ if let Some(body) = body {
         });
 
 
+        request.headers_mut().set(ContentType(multipart_header));
+        request.set_body(body_string.into_bytes());
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -885,20 +885,22 @@ if let Some(body) = body {
 
     }
 
-    fn test_enum_parameters(&self, param_enum_form_string_array: Option<&Vec>, param_enum_form_string: Option, param_enum_header_string_array: Option<&Vec>, param_enum_header_string: Option, param_enum_query_string_array: Option<&Vec>, param_enum_query_string: Option, param_enum_query_integer: Option, param_enum_query_double: Option, context: &Context) -> Box> {
+    fn test_enum_parameters(&self, param_enum_header_string_array: Option<&Vec>, param_enum_header_string: Option, param_enum_query_string_array: Option<&Vec>, param_enum_query_string: Option, param_enum_query_integer: Option, param_enum_query_double: Option, context: &C) -> Box> {
 
         // Query parameters
         let query_enum_query_string_array = param_enum_query_string_array.map_or_else(String::new, |query| format!("enum_query_string_array={enum_query_string_array}&", enum_query_string_array=query.join(",")));
         let query_enum_query_string = param_enum_query_string.map_or_else(String::new, |query| format!("enum_query_string={enum_query_string}&", enum_query_string=query.to_string()));
         let query_enum_query_integer = param_enum_query_integer.map_or_else(String::new, |query| format!("enum_query_integer={enum_query_integer}&", enum_query_integer=query.to_string()));
+        let query_enum_query_double = param_enum_query_double.map_or_else(String::new, |query| format!("enum_query_double={enum_query_double}&", enum_query_double=query.to_string()));
 
 
         let uri = format!(
-            "{}/v2/fake?{enum_query_string_array}{enum_query_string}{enum_query_integer}",
+            "{}/v2/fake?{enum_query_string_array}{enum_query_string}{enum_query_integer}{enum_query_double}",
             self.base_path,
             enum_query_string_array=utf8_percent_encode(&query_enum_query_string_array, QUERY_ENCODE_SET),
             enum_query_string=utf8_percent_encode(&query_enum_query_string, QUERY_ENCODE_SET),
-            enum_query_integer=utf8_percent_encode(&query_enum_query_integer, QUERY_ENCODE_SET)
+            enum_query_integer=utf8_percent_encode(&query_enum_query_integer, QUERY_ENCODE_SET),
+            enum_query_double=utf8_percent_encode(&query_enum_query_double, QUERY_ENCODE_SET)
         );
 
         let uri = match Uri::from_str(&uri) {
@@ -908,17 +910,9 @@ if let Some(body) = body {
 
         let mut request = hyper::Request::new(hyper::Method::Get, uri);
 
-        let params = &[
-            ("enum_form_string_array", param_enum_form_string_array.map(|param| format!("{:?}", param))),
-            ("enum_form_string", param_enum_form_string),
-            ("enum_query_double", param_enum_query_double.map(|param| format!("{:?}", param))),
-        ];
-        let body = serde_urlencoded::to_string(params).expect("impossible to fail to serialize");
 
-        request.headers_mut().set(ContentType(mimetypes::requests::TEST_ENUM_PARAMETERS.clone()));
-        request.set_body(body.into_bytes());
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
         // Header parameters
         header! { (RequestEnumHeaderStringArray, "enum_header_string_array") => (String)* }
@@ -929,8 +923,7 @@ if let Some(body) = body {
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -976,7 +969,7 @@ if let Some(body) = body {
 
     }
 
-    fn test_inline_additional_properties(&self, param_param: object, context: &Context) -> Box> {
+    fn test_inline_additional_properties(&self, param_request_body: HashMap, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -992,20 +985,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_json::to_string(¶m_param).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_request_body).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::TEST_INLINE_ADDITIONAL_PROPERTIES.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1042,7 +1034,7 @@ if let Some(body) = body {
 
     }
 
-    fn test_json_form_data(&self, param_param: String, param_param2: String, context: &Context) -> Box> {
+    fn test_json_form_data(&self, param_param: String, param_param2: String, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1066,13 +1058,12 @@ if let Some(body) = body {
         request.headers_mut().set(ContentType(mimetypes::requests::TEST_JSON_FORM_DATA.clone()));
         request.set_body(body.into_bytes());
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1109,7 +1100,7 @@ if let Some(body) = body {
 
     }
 
-    fn test_classname(&self, param_body: models::Client, context: &Context) -> Box> {
+    fn test_classname(&self, param_client: models::Client, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1125,20 +1116,21 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Patch, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        // Body parameter
+
+        let body = serde_json::to_string(¶m_client).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::TEST_CLASSNAME.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1186,7 +1178,7 @@ if let Some(body) = body {
 
     }
 
-    fn add_pet(&self, param_body: models::Pet, context: &Context) -> Box> {
+    fn add_pet(&self, param_pet: models::Pet, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1202,20 +1194,21 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_xml_rs::to_string(¶m_body).expect("impossible to fail to serialize");
+        // Body parameter
+
+        let body = serde_xml_rs::to_string(¶m_pet).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::ADD_PET.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1252,7 +1245,7 @@ if let Some(body) = body {
 
     }
 
-    fn delete_pet(&self, param_pet_id: i64, param_api_key: Option, context: &Context) -> Box> {
+    fn delete_pet(&self, param_pet_id: i64, param_api_key: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1269,7 +1262,7 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
         // Header parameters
         header! { (RequestApiKey, "api_key") => [String] }
@@ -1278,8 +1271,7 @@ if let Some(body) = body {
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1316,7 +1308,7 @@ if let Some(body) = body {
 
     }
 
-    fn find_pets_by_status(&self, param_status: &Vec, context: &Context) -> Box> {
+    fn find_pets_by_status(&self, param_status: &Vec, context: &C) -> Box> {
 
         // Query parameters
         let query_status = format!("status={status}&", status=param_status.join(","));
@@ -1337,13 +1329,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1402,7 +1393,7 @@ if let Some(body) = body {
 
     }
 
-    fn find_pets_by_tags(&self, param_tags: &Vec, context: &Context) -> Box> {
+    fn find_pets_by_tags(&self, param_tags: &Vec, context: &C) -> Box> {
 
         // Query parameters
         let query_tags = format!("tags={tags}&", tags=param_tags.join(","));
@@ -1423,13 +1414,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1488,7 +1478,7 @@ if let Some(body) = body {
 
     }
 
-    fn get_pet_by_id(&self, param_pet_id: i64, context: &Context) -> Box> {
+    fn get_pet_by_id(&self, param_pet_id: i64, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1505,13 +1495,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1579,7 +1568,7 @@ if let Some(body) = body {
 
     }
 
-    fn update_pet(&self, param_body: models::Pet, context: &Context) -> Box> {
+    fn update_pet(&self, param_pet: models::Pet, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1595,20 +1584,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Put, uri);
 
 
-        let body = serde_xml_rs::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_xml_rs::to_string(¶m_pet).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::UPDATE_PET.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1663,7 +1651,7 @@ if let Some(body) = body {
 
     }
 
-    fn update_pet_with_form(&self, param_pet_id: i64, param_name: Option, param_status: Option, context: &Context) -> Box> {
+    fn update_pet_with_form(&self, param_pet_id: i64, param_name: Option, param_status: Option, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1687,13 +1675,12 @@ if let Some(body) = body {
         request.headers_mut().set(ContentType(mimetypes::requests::UPDATE_PET_WITH_FORM.clone()));
         request.set_body(body.into_bytes());
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1730,7 +1717,7 @@ if let Some(body) = body {
 
     }
 
-    fn upload_file(&self, param_pet_id: i64, param_additional_metadata: Option, param_file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &Context) -> Box> {
+    fn upload_file(&self, param_pet_id: i64, param_additional_metadata: Option, param_file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1781,7 +1768,7 @@ if let Some(body) = body {
             Err(err) => return Box::new(futures::done(Err(ApiError(format!("Unable to build multipart header: {:?}", err))))),
         };
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
@@ -1789,8 +1776,7 @@ if let Some(body) = body {
         request.set_body(body_string.into_bytes());
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1838,7 +1824,7 @@ if let Some(body) = body {
 
     }
 
-    fn delete_order(&self, param_order_id: String, context: &Context) -> Box> {
+    fn delete_order(&self, param_order_id: String, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1855,13 +1841,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1907,7 +1892,7 @@ if let Some(body) = body {
 
     }
 
-    fn get_inventory(&self, context: &Context) -> Box> {
+    fn get_inventory(&self, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1924,13 +1909,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -1978,7 +1962,7 @@ if let Some(body) = body {
 
     }
 
-    fn get_order_by_id(&self, param_order_id: i64, context: &Context) -> Box> {
+    fn get_order_by_id(&self, param_order_id: i64, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -1995,13 +1979,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2069,7 +2052,7 @@ if let Some(body) = body {
 
     }
 
-    fn place_order(&self, param_body: models::Order, context: &Context) -> Box> {
+    fn place_order(&self, param_order: models::Order, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2085,20 +2068,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_order).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::PLACE_ORDER.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2157,7 +2139,7 @@ if let Some(body) = body {
 
     }
 
-    fn create_user(&self, param_body: models::User, context: &Context) -> Box> {
+    fn create_user(&self, param_user: models::User, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2173,20 +2155,21 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        // Body parameter
+
+        let body = serde_json::to_string(¶m_user).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::CREATE_USER.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2223,7 +2206,7 @@ if let Some(body) = body {
 
     }
 
-    fn create_users_with_array_input(&self, param_body: &Vec, context: &Context) -> Box> {
+    fn create_users_with_array_input(&self, param_user: &Vec, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2239,20 +2222,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_user).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::CREATE_USERS_WITH_ARRAY_INPUT.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2289,7 +2271,7 @@ if let Some(body) = body {
 
     }
 
-    fn create_users_with_list_input(&self, param_body: &Vec, context: &Context) -> Box> {
+    fn create_users_with_list_input(&self, param_user: &Vec, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2305,20 +2287,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Post, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_user).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::CREATE_USERS_WITH_LIST_INPUT.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2355,7 +2336,7 @@ if let Some(body) = body {
 
     }
 
-    fn delete_user(&self, param_username: String, context: &Context) -> Box> {
+    fn delete_user(&self, param_username: String, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2372,13 +2353,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2424,7 +2404,7 @@ if let Some(body) = body {
 
     }
 
-    fn get_user_by_name(&self, param_username: String, context: &Context) -> Box> {
+    fn get_user_by_name(&self, param_username: String, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2441,13 +2421,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2515,7 +2494,7 @@ if let Some(body) = body {
 
     }
 
-    fn login_user(&self, param_username: String, param_password: String, context: &Context) -> Box> {
+    fn login_user(&self, param_username: String, param_password: String, context: &C) -> Box> {
 
         // Query parameters
         let query_username = format!("username={username}&", username=param_username.to_string());
@@ -2538,48 +2517,15 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
-                200 => {
-                    header! { (ResponseXRateLimit, "X-Rate-Limit") => [i32] }
-                    let response_x_rate_limit = match response.headers().get::() {
-                        Some(response_x_rate_limit) => response_x_rate_limit.0.clone(),
-                        None => return Box::new(future::err(ApiError(String::from("Required response header X-Rate-Limit for response 200 was not found.")))) as Box>,
-                    };
-                    header! { (ResponseXExpiresAfter, "X-Expires-After") => [chrono::DateTime] }
-                    let response_x_expires_after = match response.headers().get::() {
-                        Some(response_x_expires_after) => response_x_expires_after.0.clone(),
-                        None => return Box::new(future::err(ApiError(String::from("Required response header X-Expires-After for response 200 was not found.")))) as Box>,
-                    };
-                    let body = response.body();
-                    Box::new(
-
-                        body
-                        .concat2()
-                        .map_err(|e| ApiError(format!("Failed to read response: {}", e)))
-                        .and_then(|body| str::from_utf8(&body)
-                                             .map_err(|e| ApiError(format!("Response was not valid UTF8: {}", e)))
-                                             .and_then(|body|
-
-                                                 // ToDo: this will move to swagger-rs and become a standard From conversion trait
-                                                 // once https://github.com/RReverser/serde-xml-rs/pull/45 is accepted upstream
-                                                 serde_xml_rs::from_str::(body)
-                                                     .map_err(|e| ApiError(format!("Response body did not match the schema: {}", e)))
-
-                                             ))
-                        .map(move |body|
-                            LoginUserResponse::SuccessfulOperation{ body: body, x_rate_limit: response_x_rate_limit, x_expires_after: response_x_expires_after }
-                        )
-                    ) as Box>
-                },
                 400 => {
                     let body = response.body();
                     Box::new(
@@ -2613,7 +2559,7 @@ if let Some(body) = body {
 
     }
 
-    fn logout_user(&self, context: &Context) -> Box> {
+    fn logout_user(&self, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2630,13 +2576,12 @@ if let Some(body) = body {
 
 
 
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
@@ -2673,7 +2618,7 @@ if let Some(body) = body {
 
     }
 
-    fn update_user(&self, param_username: String, param_body: models::User, context: &Context) -> Box> {
+    fn update_user(&self, param_username: String, param_user: models::User, context: &C) -> Box> {
 
 
         let uri = format!(
@@ -2689,20 +2634,19 @@ if let Some(body) = body {
         let mut request = hyper::Request::new(hyper::Method::Put, uri);
 
 
-        let body = serde_json::to_string(¶m_body).expect("impossible to fail to serialize");
+        let body = serde_json::to_string(¶m_user).expect("impossible to fail to serialize");
 
 
         request.set_body(body.into_bytes());
 
 
         request.headers_mut().set(ContentType(mimetypes::requests::UPDATE_USER.clone()));
-        context.x_span_id.as_ref().map(|header| request.headers_mut().set(XSpanId(header.clone())));
+        request.headers_mut().set(XSpanId((context as &Has).get().0.clone()));
 
 
 
 
-        let hyper_client = (self.hyper_client)(&*self.handle);
-        Box::new(hyper_client.call(request)
+        Box::new(self.hyper_client.call(request)
                              .map_err(|e| ApiError(format!("No response received: {}", e)))
                              .and_then(|mut response| {
             match response.status().as_u16() {
diff --git a/samples/server/petstore/rust-server/src/lib.rs b/samples/server/petstore/rust-server/src/lib.rs
index cdfe30c6d01..e0311e33321 100644
--- a/samples/server/petstore/rust-server/src/lib.rs
+++ b/samples/server/petstore/rust-server/src/lib.rs
@@ -30,7 +30,7 @@ pub use futures::Future;
 #[cfg(any(feature = "client", feature = "server"))]
 mod mimetypes;
 
-pub use swagger::{ApiError, Context, ContextWrapper};
+pub use swagger::{ApiError, ContextWrapper};
 
 pub const BASE_PATH: &'static str = "/v2";
 pub const API_VERSION: &'static str = "1.0.0";
@@ -42,12 +42,6 @@ pub enum TestSpecialTagsResponse {
     SuccessfulOperation ( models::Client ) ,
 }
 
-#[derive(Debug, PartialEq)]
-pub enum TestBodyWithQueryParamsResponse {
-    /// Success
-    Success ,
-}
-
 #[derive(Debug, PartialEq)]
 pub enum FakeOuterBooleanSerializeResponse {
     /// Output boolean
@@ -72,6 +66,12 @@ pub enum FakeOuterStringSerializeResponse {
     OutputString ( models::OuterString ) ,
 }
 
+#[derive(Debug, PartialEq)]
+pub enum TestBodyWithQueryParamsResponse {
+    /// Success
+    Success ,
+}
+
 #[derive(Debug, PartialEq)]
 pub enum TestClientModelResponse {
     /// successful operation
@@ -242,8 +242,6 @@ pub enum GetUserByNameResponse {
 
 #[derive(Debug, PartialEq)]
 pub enum LoginUserResponse {
-    /// successful operation
-    SuccessfulOperation { body: String, x_rate_limit: i32, x_expires_after: chrono::DateTime } ,
     /// Invalid username/password supplied
     InvalidUsername ,
 }
@@ -264,103 +262,103 @@ pub enum UpdateUserResponse {
 
 
 /// API
-pub trait Api {
+pub trait Api {
 
     /// To test special tags
-    fn test_special_tags(&self, body: models::Client, context: &Context) -> Box>;
+    fn test_special_tags(&self, client: models::Client, context: &C) -> Box>;
 
 
-    fn test_body_with_query_params(&self, body: models::User, query: String, context: &Context) -> Box>;
+    fn fake_outer_boolean_serialize(&self, body: Option, context: &C) -> Box>;
 
 
-    fn fake_outer_boolean_serialize(&self, body: Option, context: &Context) -> Box>;
+    fn fake_outer_composite_serialize(&self, outer_composite: Option, context: &C) -> Box>;
 
 
-    fn fake_outer_composite_serialize(&self, body: Option, context: &Context) -> Box>;
+    fn fake_outer_number_serialize(&self, body: Option, context: &C) -> Box>;
 
 
-    fn fake_outer_number_serialize(&self, body: Option, context: &Context) -> Box>;
+    fn fake_outer_string_serialize(&self, body: Option, context: &C) -> Box>;
 
 
-    fn fake_outer_string_serialize(&self, body: Option, context: &Context) -> Box>;
+    fn test_body_with_query_params(&self, query: String, user: models::User, context: &C) -> Box>;
 
     /// To test \"client\" model
-    fn test_client_model(&self, body: models::Client, context: &Context) -> Box>;
+    fn test_client_model(&self, client: models::Client, context: &C) -> Box>;
 
     /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, byte: swagger::ByteArray, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Option, date: Option>, date_time: Option>, password: Option, callback: Option, context: &Context) -> Box>;
+    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Box, Error=Error> + Send>>, Error=Error> + Send>, date: Option>, date_time: Option>, password: Option, callback: Option, context: &C) -> Box>;
 
     /// To test enum parameters
-    fn test_enum_parameters(&self, enum_form_string_array: Option<&Vec>, enum_form_string: Option, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option, context: &Context) -> Box>;
+    fn test_enum_parameters(&self, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option, context: &C) -> Box>;
 
     /// test inline additionalProperties
-    fn test_inline_additional_properties(&self, param: object, context: &Context) -> Box>;
+    fn test_inline_additional_properties(&self, request_body: HashMap, context: &C) -> Box>;
 
     /// test json serialization of form data
-    fn test_json_form_data(&self, param: String, param2: String, context: &Context) -> Box>;
+    fn test_json_form_data(&self, param: String, param2: String, context: &C) -> Box>;
 
     /// To test class name in snake case
-    fn test_classname(&self, body: models::Client, context: &Context) -> Box>;
+    fn test_classname(&self, client: models::Client, context: &C) -> Box>;
 
     /// Add a new pet to the store
-    fn add_pet(&self, body: models::Pet, context: &Context) -> Box>;
+    fn add_pet(&self, pet: models::Pet, context: &C) -> Box>;
 
     /// Deletes a pet
-    fn delete_pet(&self, pet_id: i64, api_key: Option, context: &Context) -> Box>;
+    fn delete_pet(&self, pet_id: i64, api_key: Option, context: &C) -> Box>;
 
     /// Finds Pets by status
-    fn find_pets_by_status(&self, status: &Vec, context: &Context) -> Box>;
+    fn find_pets_by_status(&self, status: &Vec, context: &C) -> Box>;
 
     /// Finds Pets by tags
-    fn find_pets_by_tags(&self, tags: &Vec, context: &Context) -> Box>;
+    fn find_pets_by_tags(&self, tags: &Vec, context: &C) -> Box>;
 
     /// Find pet by ID
-    fn get_pet_by_id(&self, pet_id: i64, context: &Context) -> Box>;
+    fn get_pet_by_id(&self, pet_id: i64, context: &C) -> Box>;
 
     /// Update an existing pet
-    fn update_pet(&self, body: models::Pet, context: &Context) -> Box>;
+    fn update_pet(&self, pet: models::Pet, context: &C) -> Box>;
 
     /// Updates a pet in the store with form data
-    fn update_pet_with_form(&self, pet_id: i64, name: Option, status: Option, context: &Context) -> Box>;
+    fn update_pet_with_form(&self, pet_id: i64, name: Option, status: Option, context: &C) -> Box>;
 
     /// uploads an image
-    fn upload_file(&self, pet_id: i64, additional_metadata: Option, file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &Context) -> Box>;
+    fn upload_file(&self, pet_id: i64, additional_metadata: Option, file: Box, Error=Error> + Send>>, Error=Error> + Send>, context: &C) -> Box>;
 
     /// Delete purchase order by ID
-    fn delete_order(&self, order_id: String, context: &Context) -> Box>;
+    fn delete_order(&self, order_id: String, context: &C) -> Box>;
 
     /// Returns pet inventories by status
-    fn get_inventory(&self, context: &Context) -> Box>;
+    fn get_inventory(&self, context: &C) -> Box>;
 
     /// Find purchase order by ID
-    fn get_order_by_id(&self, order_id: i64, context: &Context) -> Box>;
+    fn get_order_by_id(&self, order_id: i64, context: &C) -> Box>;
 
     /// Place an order for a pet
-    fn place_order(&self, body: models::Order, context: &Context) -> Box>;
+    fn place_order(&self, order: models::Order, context: &C) -> Box>;
 
     /// Create user
-    fn create_user(&self, body: models::User, context: &Context) -> Box>;
+    fn create_user(&self, user: models::User, context: &C) -> Box>;
 
     /// Creates list of users with given input array
-    fn create_users_with_array_input(&self, body: &Vec, context: &Context) -> Box>;
+    fn create_users_with_array_input(&self, user: &Vec, context: &C) -> Box>;
 
     /// Creates list of users with given input array
-    fn create_users_with_list_input(&self, body: &Vec, context: &Context) -> Box>;
+    fn create_users_with_list_input(&self, user: &Vec, context: &C) -> Box>;
 
     /// Delete user
-    fn delete_user(&self, username: String, context: &Context) -> Box>;
+    fn delete_user(&self, username: String, context: &C) -> Box>;
 
     /// Get user by user name
-    fn get_user_by_name(&self, username: String, context: &Context) -> Box>;
+    fn get_user_by_name(&self, username: String, context: &C) -> Box>;
 
     /// Logs user into the system
-    fn login_user(&self, username: String, password: String, context: &Context) -> Box>;
+    fn login_user(&self, username: String, password: String, context: &C) -> Box>;
 
     /// Logs out current logged in user session
-    fn logout_user(&self, context: &Context) -> Box>;
+    fn logout_user(&self, context: &C) -> Box>;
 
     /// Updated user
-    fn update_user(&self, username: String, body: models::User, context: &Context) -> Box>;
+    fn update_user(&self, username: String, user: models::User, context: &C) -> Box>;
 
 }
 
@@ -368,43 +366,43 @@ pub trait Api {
 pub trait ApiNoContext {
 
     /// To test special tags
-    fn test_special_tags(&self, body: models::Client) -> Box>;
+    fn test_special_tags(&self, client: models::Client) -> Box>;
 
 
-    fn test_body_with_query_params(&self, body: models::User, query: String) -> Box>;
+    fn fake_outer_boolean_serialize(&self, body: Option) -> Box>;
 
 
-    fn fake_outer_boolean_serialize(&self, body: Option) -> Box>;
+    fn fake_outer_composite_serialize(&self, outer_composite: Option) -> Box>;
 
 
-    fn fake_outer_composite_serialize(&self, body: Option) -> Box>;
+    fn fake_outer_number_serialize(&self, body: Option) -> Box>;
 
 
-    fn fake_outer_number_serialize(&self, body: Option) -> Box>;
+    fn fake_outer_string_serialize(&self, body: Option) -> Box>;
 
 
-    fn fake_outer_string_serialize(&self, body: Option) -> Box>;
+    fn test_body_with_query_params(&self, query: String, user: models::User) -> Box>;
 
     /// To test \"client\" model
-    fn test_client_model(&self, body: models::Client) -> Box>;
+    fn test_client_model(&self, client: models::Client) -> Box>;
 
     /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, byte: swagger::ByteArray, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Option, date: Option>, date_time: Option>, password: Option, callback: Option) -> Box>;
+    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Box, Error=Error> + Send>>, Error=Error> + Send>, date: Option>, date_time: Option>, password: Option, callback: Option) -> Box>;
 
     /// To test enum parameters
-    fn test_enum_parameters(&self, enum_form_string_array: Option<&Vec>, enum_form_string: Option, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option) -> Box>;
+    fn test_enum_parameters(&self, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option) -> Box>;
 
     /// test inline additionalProperties
-    fn test_inline_additional_properties(&self, param: object) -> Box>;
+    fn test_inline_additional_properties(&self, request_body: HashMap) -> Box>;
 
     /// test json serialization of form data
     fn test_json_form_data(&self, param: String, param2: String) -> Box>;
 
     /// To test class name in snake case
-    fn test_classname(&self, body: models::Client) -> Box>;
+    fn test_classname(&self, client: models::Client) -> Box>;
 
     /// Add a new pet to the store
-    fn add_pet(&self, body: models::Pet) -> Box>;
+    fn add_pet(&self, pet: models::Pet) -> Box>;
 
     /// Deletes a pet
     fn delete_pet(&self, pet_id: i64, api_key: Option) -> Box>;
@@ -419,7 +417,7 @@ pub trait ApiNoContext {
     fn get_pet_by_id(&self, pet_id: i64) -> Box>;
 
     /// Update an existing pet
-    fn update_pet(&self, body: models::Pet) -> Box>;
+    fn update_pet(&self, pet: models::Pet) -> Box>;
 
     /// Updates a pet in the store with form data
     fn update_pet_with_form(&self, pet_id: i64, name: Option, status: Option) -> Box>;
@@ -437,16 +435,16 @@ pub trait ApiNoContext {
     fn get_order_by_id(&self, order_id: i64) -> Box>;
 
     /// Place an order for a pet
-    fn place_order(&self, body: models::Order) -> Box>;
+    fn place_order(&self, order: models::Order) -> Box>;
 
     /// Create user
-    fn create_user(&self, body: models::User) -> Box>;
+    fn create_user(&self, user: models::User) -> Box>;
 
     /// Creates list of users with given input array
-    fn create_users_with_array_input(&self, body: &Vec) -> Box>;
+    fn create_users_with_array_input(&self, user: &Vec) -> Box>;
 
     /// Creates list of users with given input array
-    fn create_users_with_list_input(&self, body: &Vec) -> Box>;
+    fn create_users_with_list_input(&self, user: &Vec) -> Box>;
 
     /// Delete user
     fn delete_user(&self, username: String) -> Box>;
@@ -461,72 +459,72 @@ pub trait ApiNoContext {
     fn logout_user(&self) -> Box>;
 
     /// Updated user
-    fn update_user(&self, username: String, body: models::User) -> Box>;
+    fn update_user(&self, username: String, user: models::User) -> Box>;
 
 }
 
 /// Trait to extend an API to make it easy to bind it to a context.
-pub trait ContextWrapperExt<'a> where Self: Sized {
+pub trait ContextWrapperExt<'a, C> where Self: Sized {
     /// Binds this API to a context.
-    fn with_context(self: &'a Self, context: Context) -> ContextWrapper<'a, Self>;
+    fn with_context(self: &'a Self, context: C) -> ContextWrapper<'a, Self, C>;
 }
 
-impl<'a, T: Api + Sized> ContextWrapperExt<'a> for T {
-    fn with_context(self: &'a T, context: Context) -> ContextWrapper<'a, T> {
-         ContextWrapper::::new(self, context)
+impl<'a, T: Api + Sized, C> ContextWrapperExt<'a, C> for T {
+    fn with_context(self: &'a T, context: C) -> ContextWrapper<'a, T, C> {
+         ContextWrapper::::new(self, context)
     }
 }
 
-impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
+impl<'a, T: Api, C> ApiNoContext for ContextWrapper<'a, T, C> {
 
     /// To test special tags
-    fn test_special_tags(&self, body: models::Client) -> Box> {
-        self.api().test_special_tags(body, &self.context())
+    fn test_special_tags(&self, client: models::Client) -> Box> {
+        self.api().test_special_tags(client, &self.context())
     }
 
 
-    fn test_body_with_query_params(&self, body: models::User, query: String) -> Box> {
-        self.api().test_body_with_query_params(body, query, &self.context())
-    }
-
-
-    fn fake_outer_boolean_serialize(&self, body: Option) -> Box> {
+    fn fake_outer_boolean_serialize(&self, body: Option) -> Box> {
         self.api().fake_outer_boolean_serialize(body, &self.context())
     }
 
 
-    fn fake_outer_composite_serialize(&self, body: Option) -> Box> {
-        self.api().fake_outer_composite_serialize(body, &self.context())
+    fn fake_outer_composite_serialize(&self, outer_composite: Option) -> Box> {
+        self.api().fake_outer_composite_serialize(outer_composite, &self.context())
     }
 
 
-    fn fake_outer_number_serialize(&self, body: Option) -> Box> {
+    fn fake_outer_number_serialize(&self, body: Option) -> Box> {
         self.api().fake_outer_number_serialize(body, &self.context())
     }
 
 
-    fn fake_outer_string_serialize(&self, body: Option) -> Box> {
+    fn fake_outer_string_serialize(&self, body: Option) -> Box> {
         self.api().fake_outer_string_serialize(body, &self.context())
     }
 
+
+    fn test_body_with_query_params(&self, query: String, user: models::User) -> Box> {
+        self.api().test_body_with_query_params(query, user, &self.context())
+    }
+
     /// To test \"client\" model
-    fn test_client_model(&self, body: models::Client) -> Box> {
-        self.api().test_client_model(body, &self.context())
+    fn test_client_model(&self, client: models::Client) -> Box> {
+        self.api().test_client_model(client, &self.context())
     }
 
     /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 
-    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, byte: swagger::ByteArray, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Option, date: Option>, date_time: Option>, password: Option, callback: Option) -> Box> {
-        self.api().test_endpoint_parameters(number, double, pattern_without_delimiter, byte, integer, int32, int64, float, string, binary, date, date_time, password, callback, &self.context())
+    fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Box, Error=Error> + Send>>, Error=Error> + Send>, date: Option>, date_time: Option>, password: Option, callback: Option) -> Box> {
+        self.api().test_endpoint_parameters(number, double, pattern_without_delimiter, integer, int32, int64, float, string, binary, date, date_time, password, callback, &self.context())
     }
 
     /// To test enum parameters
-    fn test_enum_parameters(&self, enum_form_string_array: Option<&Vec>, enum_form_string: Option, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option) -> Box> {
-        self.api().test_enum_parameters(enum_form_string_array, enum_form_string, enum_header_string_array, enum_header_string, enum_query_string_array, enum_query_string, enum_query_integer, enum_query_double, &self.context())
+    fn test_enum_parameters(&self, enum_header_string_array: Option<&Vec>, enum_header_string: Option, enum_query_string_array: Option<&Vec>, enum_query_string: Option, enum_query_integer: Option, enum_query_double: Option) -> Box> {
+        self.api().test_enum_parameters(enum_header_string_array, enum_header_string, enum_query_string_array, enum_query_string, enum_query_integer, enum_query_double, &self.context())
     }
 
     /// test inline additionalProperties
-    fn test_inline_additional_properties(&self, param: object) -> Box> {
-        self.api().test_inline_additional_properties(param, &self.context())
+    fn test_inline_additional_properties(&self, request_body: HashMap) -> Box> {
+        self.api().test_inline_additional_properties(request_body, &self.context())
     }
 
     /// test json serialization of form data
@@ -535,13 +533,13 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
     }
 
     /// To test class name in snake case
-    fn test_classname(&self, body: models::Client) -> Box> {
-        self.api().test_classname(body, &self.context())
+    fn test_classname(&self, client: models::Client) -> Box> {
+        self.api().test_classname(client, &self.context())
     }
 
     /// Add a new pet to the store
-    fn add_pet(&self, body: models::Pet) -> Box> {
-        self.api().add_pet(body, &self.context())
+    fn add_pet(&self, pet: models::Pet) -> Box> {
+        self.api().add_pet(pet, &self.context())
     }
 
     /// Deletes a pet
@@ -565,8 +563,8 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
     }
 
     /// Update an existing pet
-    fn update_pet(&self, body: models::Pet) -> Box> {
-        self.api().update_pet(body, &self.context())
+    fn update_pet(&self, pet: models::Pet) -> Box> {
+        self.api().update_pet(pet, &self.context())
     }
 
     /// Updates a pet in the store with form data
@@ -595,23 +593,23 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
     }
 
     /// Place an order for a pet
-    fn place_order(&self, body: models::Order) -> Box> {
-        self.api().place_order(body, &self.context())
+    fn place_order(&self, order: models::Order) -> Box> {
+        self.api().place_order(order, &self.context())
     }
 
     /// Create user
-    fn create_user(&self, body: models::User) -> Box> {
-        self.api().create_user(body, &self.context())
+    fn create_user(&self, user: models::User) -> Box> {
+        self.api().create_user(user, &self.context())
     }
 
     /// Creates list of users with given input array
-    fn create_users_with_array_input(&self, body: &Vec) -> Box> {
-        self.api().create_users_with_array_input(body, &self.context())
+    fn create_users_with_array_input(&self, user: &Vec) -> Box> {
+        self.api().create_users_with_array_input(user, &self.context())
     }
 
     /// Creates list of users with given input array
-    fn create_users_with_list_input(&self, body: &Vec) -> Box> {
-        self.api().create_users_with_list_input(body, &self.context())
+    fn create_users_with_list_input(&self, user: &Vec) -> Box> {
+        self.api().create_users_with_list_input(user, &self.context())
     }
 
     /// Delete user
@@ -635,8 +633,8 @@ impl<'a, T: Api> ApiNoContext for ContextWrapper<'a, T> {
     }
 
     /// Updated user
-    fn update_user(&self, username: String, body: models::User) -> Box> {
-        self.api().update_user(username, body, &self.context())
+    fn update_user(&self, username: String, user: models::User) -> Box> {
+        self.api().update_user(username, user, &self.context())
     }
 
 }
diff --git a/samples/server/petstore/rust-server/src/mimetypes.rs b/samples/server/petstore/rust-server/src/mimetypes.rs
index 1ad0e1d9b0c..1aeb6ad47c8 100644
--- a/samples/server/petstore/rust-server/src/mimetypes.rs
+++ b/samples/server/petstore/rust-server/src/mimetypes.rs
@@ -8,6 +8,22 @@ pub mod responses {
     lazy_static! {
         pub static ref TEST_SPECIAL_TAGS_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
+    /// Create Mime objects for the response content types for FakeOuterBooleanSerialize
+    lazy_static! {
+        pub static ref FAKE_OUTER_BOOLEAN_SERIALIZE_OUTPUT_BOOLEAN: Mime = "*/*".parse().unwrap();
+    }
+    /// Create Mime objects for the response content types for FakeOuterCompositeSerialize
+    lazy_static! {
+        pub static ref FAKE_OUTER_COMPOSITE_SERIALIZE_OUTPUT_COMPOSITE: Mime = "*/*".parse().unwrap();
+    }
+    /// Create Mime objects for the response content types for FakeOuterNumberSerialize
+    lazy_static! {
+        pub static ref FAKE_OUTER_NUMBER_SERIALIZE_OUTPUT_NUMBER: Mime = "*/*".parse().unwrap();
+    }
+    /// Create Mime objects for the response content types for FakeOuterStringSerialize
+    lazy_static! {
+        pub static ref FAKE_OUTER_STRING_SERIALIZE_OUTPUT_STRING: Mime = "*/*".parse().unwrap();
+    }
     /// Create Mime objects for the response content types for TestClientModel
     lazy_static! {
         pub static ref TEST_CLIENT_MODEL_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
@@ -18,15 +34,15 @@ pub mod responses {
     }
     /// Create Mime objects for the response content types for FindPetsByStatus
     lazy_static! {
-        pub static ref FIND_PETS_BY_STATUS_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref FIND_PETS_BY_STATUS_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
     /// Create Mime objects for the response content types for FindPetsByTags
     lazy_static! {
-        pub static ref FIND_PETS_BY_TAGS_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref FIND_PETS_BY_TAGS_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
     /// Create Mime objects for the response content types for GetPetById
     lazy_static! {
-        pub static ref GET_PET_BY_ID_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref GET_PET_BY_ID_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
     /// Create Mime objects for the response content types for UploadFile
     lazy_static! {
@@ -38,19 +54,15 @@ pub mod responses {
     }
     /// Create Mime objects for the response content types for GetOrderById
     lazy_static! {
-        pub static ref GET_ORDER_BY_ID_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref GET_ORDER_BY_ID_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
     /// Create Mime objects for the response content types for PlaceOrder
     lazy_static! {
-        pub static ref PLACE_ORDER_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref PLACE_ORDER_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
     /// Create Mime objects for the response content types for GetUserByName
     lazy_static! {
-        pub static ref GET_USER_BY_NAME_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
-    }
-    /// Create Mime objects for the response content types for LoginUser
-    lazy_static! {
-        pub static ref LOGIN_USER_SUCCESSFUL_OPERATION: Mime = "application/xml".parse().unwrap();
+        pub static ref GET_USER_BY_NAME_SUCCESSFUL_OPERATION: Mime = "application/json".parse().unwrap();
     }
 
 }
@@ -61,10 +73,6 @@ pub mod requests {
     lazy_static! {
         pub static ref TEST_SPECIAL_TAGS: Mime = "application/json".parse().unwrap();
     }
-   /// Create Mime objects for the request content types for TestBodyWithQueryParams
-    lazy_static! {
-        pub static ref TEST_BODY_WITH_QUERY_PARAMS: Mime = "application/json".parse().unwrap();
-    }
    /// Create Mime objects for the request content types for FakeOuterBooleanSerialize
     lazy_static! {
         pub static ref FAKE_OUTER_BOOLEAN_SERIALIZE: Mime = "application/json".parse().unwrap();
@@ -81,25 +89,21 @@ pub mod requests {
     lazy_static! {
         pub static ref FAKE_OUTER_STRING_SERIALIZE: Mime = "application/json".parse().unwrap();
     }
+   /// Create Mime objects for the request content types for TestBodyWithQueryParams
+    lazy_static! {
+        pub static ref TEST_BODY_WITH_QUERY_PARAMS: Mime = "application/json".parse().unwrap();
+    }
    /// Create Mime objects for the request content types for TestClientModel
     lazy_static! {
         pub static ref TEST_CLIENT_MODEL: Mime = "application/json".parse().unwrap();
     }
-   /// Create Mime objects for the request content types for TestEndpointParameters
-    lazy_static! {
-        pub static ref TEST_ENDPOINT_PARAMETERS: Mime = "application/xml; charset=utf-8".parse().unwrap();
-    }
-   /// Create Mime objects for the request content types for TestEnumParameters
-    lazy_static! {
-        pub static ref TEST_ENUM_PARAMETERS: Mime = "*/*".parse().unwrap();
-    }
    /// Create Mime objects for the request content types for TestInlineAdditionalProperties
     lazy_static! {
         pub static ref TEST_INLINE_ADDITIONAL_PROPERTIES: Mime = "application/json".parse().unwrap();
     }
    /// Create Mime objects for the request content types for TestJsonFormData
     lazy_static! {
-        pub static ref TEST_JSON_FORM_DATA: Mime = "application/json".parse().unwrap();
+        pub static ref TEST_JSON_FORM_DATA: Mime = "application/x-www-form-urlencoded".parse().unwrap();
     }
    /// Create Mime objects for the request content types for TestClassname
     lazy_static! {
diff --git a/samples/server/petstore/rust-server/src/models.rs b/samples/server/petstore/rust-server/src/models.rs
index ce98abe8dca..05dfeb9f3b5 100644
--- a/samples/server/petstore/rust-server/src/models.rs
+++ b/samples/server/petstore/rust-server/src/models.rs
@@ -239,6 +239,31 @@ impl Capitalization {
     }
 }
 
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct Cat {
+    #[serde(rename = "className")]
+    pub class_name: String,
+
+    #[serde(rename = "color")]
+    #[serde(skip_serializing_if="Option::is_none")]
+    pub color: Option,
+
+    #[serde(rename = "declawed")]
+    #[serde(skip_serializing_if="Option::is_none")]
+    pub declawed: Option,
+
+}
+
+impl Cat {
+    pub fn new(class_name: String, ) -> Cat {
+        Cat {
+            class_name: class_name,
+            color: Some("red".to_string()),
+            declawed: None,
+        }
+    }
+}
+
 #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 #[serde(rename = "Category")]
 pub struct Category {
@@ -294,14 +319,39 @@ impl Client {
     }
 }
 
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct Dog {
+    #[serde(rename = "className")]
+    pub class_name: String,
+
+    #[serde(rename = "color")]
+    #[serde(skip_serializing_if="Option::is_none")]
+    pub color: Option,
+
+    #[serde(rename = "breed")]
+    #[serde(skip_serializing_if="Option::is_none")]
+    pub breed: Option,
+
+}
+
+impl Dog {
+    pub fn new(class_name: String, ) -> Dog {
+        Dog {
+            class_name: class_name,
+            color: Some("red".to_string()),
+            breed: None,
+        }
+    }
+}
+
 #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub struct EnumArrays {
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "just_symbol")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub just_symbol: Option,
 
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "array_enum")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub array_enum: Option>,
@@ -356,21 +406,21 @@ impl ::std::str::FromStr for EnumClass {
 
 #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
 pub struct EnumTest {
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "enum_string")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub enum_string: Option,
 
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "enum_string_required")]
     pub enum_string_required: String,
 
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "enum_integer")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub enum_integer: Option,
 
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "enum_number")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub enum_number: Option,
@@ -425,10 +475,6 @@ pub struct FormatTest {
     #[serde(rename = "byte")]
     pub byte: swagger::ByteArray,
 
-    #[serde(rename = "binary")]
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub binary: Option,
-
     #[serde(rename = "date")]
     pub date: chrono::DateTime,
 
@@ -456,7 +502,6 @@ impl FormatTest {
             double: None,
             string: None,
             byte: byte,
-            binary: None,
             date: date,
             date_time: None,
             uuid: None,
@@ -508,7 +553,7 @@ pub struct MapTest {
     #[serde(skip_serializing_if="Option::is_none")]
     pub map_map_of_string: Option>>,
 
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "map_of_enum_string")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub map_of_enum_string: Option>,
@@ -659,7 +704,7 @@ pub struct Order {
     pub ship_date: Option>,
 
     /// Order Status
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "status")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub status: Option,
@@ -858,7 +903,7 @@ pub struct Pet {
     pub tags: Option>,
 
     /// pet status in the store
-    // Note: inline enums are not fully supported by swagger-codegen
+    // Note: inline enums are not fully supported by openapi-generator
     #[serde(rename = "status")]
     #[serde(skip_serializing_if="Option::is_none")]
     pub status: Option,
@@ -990,53 +1035,3 @@ impl User {
         }
     }
 }
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct Cat {
-    #[serde(rename = "className")]
-    pub class_name: String,
-
-    #[serde(rename = "color")]
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub color: Option,
-
-    #[serde(rename = "declawed")]
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub declawed: Option,
-
-}
-
-impl Cat {
-    pub fn new(class_name: String, ) -> Cat {
-        Cat {
-            class_name: class_name,
-            color: Some("red".to_string()),
-            declawed: None,
-        }
-    }
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct Dog {
-    #[serde(rename = "className")]
-    pub class_name: String,
-
-    #[serde(rename = "color")]
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub color: Option,
-
-    #[serde(rename = "breed")]
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub breed: Option,
-
-}
-
-impl Dog {
-    pub fn new(class_name: String, ) -> Dog {
-        Dog {
-            class_name: class_name,
-            color: Some("red".to_string()),
-            breed: None,
-        }
-    }
-}
diff --git a/samples/server/petstore/rust-server/src/server/auth.rs b/samples/server/petstore/rust-server/src/server/auth.rs
index 5c120b74c7c..1c770bcf6a7 100644
--- a/samples/server/petstore/rust-server/src/server/auth.rs
+++ b/samples/server/petstore/rust-server/src/server/auth.rs
@@ -1,25 +1,47 @@
 use std::io;
+use std::marker::PhantomData;
+use std::default::Default;
 use hyper;
 use hyper::{Request, Response, Error, StatusCode};
 use server::url::form_urlencoded;
 use swagger::auth::{Authorization, AuthData, Scopes};
+use swagger::{Has, Pop, Push, XSpanIdString};
 use Api;
 
-pub struct NewService where T: hyper::server::NewService), Response=Response, Error=Error> {
+pub struct NewService
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::NewService>>::Result), Response = Response, Error = Error>,
+{
     inner: T,
+    marker: PhantomData,
 }
 
-impl NewService where T: hyper::server::NewService), Response=Response, Error=Error> + 'static {
-    pub fn new(inner: T) -> NewService {
-        NewService{inner}
+impl NewService
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::NewService>>::Result), Response = Response, Error = Error> + 'static,
+{
+    pub fn new(inner: T) -> NewService {
+        NewService {
+            inner,
+            marker: PhantomData,
+        }
     }
 }
 
-impl hyper::server::NewService for NewService where T: hyper::server::NewService), Response=Response, Error=Error> + 'static {
+impl hyper::server::NewService for NewService
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::NewService>>::Result), Response = Response, Error = Error> + 'static,
+{
     type Request = Request;
     type Response = Response;
     type Error = Error;
-    type Instance = Service;
+    type Instance = Service;
 
     fn new_service(&self) -> Result {
         self.inner.new_service().map(|s| Service::new(s))
@@ -27,28 +49,50 @@ impl hyper::server::NewService for NewService where T: hyper::server::NewS
 }
 
 /// Middleware to extract authentication data from request
-pub struct Service where T: hyper::server::Service), Response=Response, Error=Error> {
+pub struct Service
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::Service>>::Result), Response = Response, Error = Error>,
+{
     inner: T,
+    marker: PhantomData,
 }
 
-impl Service where T: hyper::server::Service), Response=Response, Error=Error> {
-    pub fn new(inner: T) -> Service {
-        Service{inner}
+impl Service
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::Service>>::Result), Response = Response, Error = Error>,
+{
+    pub fn new(inner: T) -> Service {
+        Service {
+            inner,
+            marker: PhantomData,
+        }
     }
 }
 
-impl hyper::server::Service for Service where T: hyper::server::Service), Response=Response, Error=Error> {
+impl hyper::server::Service for Service
+    where
+        C: Default + Push,
+        C::Result: Push>,
+        T: hyper::server::Service>>::Result), Response = Response, Error = Error>,
+{
     type Request = Request;
     type Response = Response;
     type Error = Error;
     type Future = T::Future;
 
     fn call(&self, req: Self::Request) -> Self::Future {
+        let context = C::default().push(XSpanIdString::get_or_generate(&req));
+
         {
             header! { (ApiKey1, "api_key") => [String] }
             if let Some(header) = req.headers().get::().cloned() {
                 let auth_data = AuthData::ApiKey(header.0);
-                return self.inner.call((req, Some(auth_data)));
+                let context = context.push(Some(auth_data));
+                return self.inner.call((req, context));
             }
         }
         {
@@ -58,7 +102,8 @@ impl hyper::server::Service for Service where T: hyper::server::Service hyper::server::Service for Service where T: hyper::server::Service>().cloned() {
                 let auth_data = AuthData::Basic(basic.deref().clone());
-                return self.inner.call((req, Some(auth_data)));
+                let context = context.push(Some(auth_data));
+                return self.inner.call((req, context));
             }
         }
         {
@@ -74,10 +120,12 @@ impl hyper::server::Service for Service where T: hyper::server::Service>().cloned() {
                 let auth_data = AuthData::Bearer(bearer.deref().clone());
-                return self.inner.call((req, Some(auth_data)));
+                let context = context.push(Some(auth_data));
+                return self.inner.call((req, context));
             }
         }
 
-        return self.inner.call((req, None));
+        let context = context.push(None);
+        return self.inner.call((req, context));
     }
 }
diff --git a/samples/server/petstore/rust-server/src/server/mod.rs b/samples/server/petstore/rust-server/src/server/mod.rs
index 7f88b6b3ad8..0c246daad47 100644
--- a/samples/server/petstore/rust-server/src/server/mod.rs
+++ b/samples/server/petstore/rust-server/src/server/mod.rs
@@ -13,6 +13,7 @@ extern crate url;
 
 
 use std::sync::Arc;
+use std::marker::PhantomData;
 use futures::{Future, future, Stream, stream};
 use hyper;
 use hyper::{Request, Response, Error, StatusCode};
@@ -35,16 +36,16 @@ use std::io;
 use std::collections::BTreeSet;
 
 pub use swagger::auth::Authorization;
-use swagger::{ApiError, Context, XSpanId};
+use swagger::{ApiError, XSpanId, XSpanIdString, Has};
 use swagger::auth::Scopes;
 
 use {Api,
      TestSpecialTagsResponse,
-     TestBodyWithQueryParamsResponse,
      FakeOuterBooleanSerializeResponse,
      FakeOuterCompositeSerializeResponse,
      FakeOuterNumberSerializeResponse,
      FakeOuterStringSerializeResponse,
+     TestBodyWithQueryParamsResponse,
      TestClientModelResponse,
      TestEndpointParametersResponse,
      TestEnumParametersResponse,
@@ -148,39 +149,56 @@ mod paths {
     }
 }
 
-pub struct NewService {
+pub struct NewService {
     api_impl: Arc,
+    marker: PhantomData,
 }
 
-impl NewService where T: Api + Clone + 'static {
-    pub fn new>>(api_impl: U) -> NewService {
-        NewService{api_impl: api_impl.into()}
+impl NewService
+where
+    T: Api + Clone + 'static,
+    C: Has + Has> + 'static
+{
+    pub fn new>>(api_impl: U) -> NewService {
+        NewService{api_impl: api_impl.into(), marker: PhantomData}
     }
 }
 
-impl hyper::server::NewService for NewService where T: Api + Clone + 'static {
-    type Request = (Request, Context);
+impl hyper::server::NewService for NewService
+where
+    T: Api + Clone + 'static,
+    C: Has + Has> + 'static
+{
+    type Request = (Request, C);
     type Response = Response;
     type Error = Error;
-    type Instance = Service;
+    type Instance = Service;
 
     fn new_service(&self) -> Result {
         Ok(Service::new(self.api_impl.clone()))
     }
 }
 
-pub struct Service {
+pub struct Service {
     api_impl: Arc,
+    marker: PhantomData,
 }
 
-impl Service where T: Api + Clone + 'static {
-    pub fn new>>(api_impl: U) -> Service {
-        Service{api_impl: api_impl.into()}
+impl Service
+where
+    T: Api + Clone + 'static,
+    C: Has + Has> + 'static {
+    pub fn new>>(api_impl: U) -> Service {
+        Service{api_impl: api_impl.into(), marker: PhantomData}
     }
 }
 
-impl hyper::server::Service for Service where T: Api + Clone + 'static {
-    type Request = (Request, Context);
+impl hyper::server::Service for Service
+where
+    T: Api + Clone + 'static,
+    C: Has + Has> + 'static
+{
+    type Request = (Request, C);
     type Response = Response;
     type Error = Error;
     type Future = Box>;
@@ -193,9 +211,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestSpecialTags - PATCH /another-fake/dummy
             &hyper::Method::Patch if path.matched(paths::ID_ANOTHER_FAKE_DUMMY) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -211,7 +226,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_client: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -219,23 +234,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_client) => param_client,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Client - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_client = match param_client {
+                                    Some(param_client) => param_client,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Client"))),
                                 };
 
 
-                                Box::new(api_impl.test_special_tags(param_body, &context)
+                                Box::new(api_impl.test_special_tags(param_client, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -273,102 +288,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
-                        }
-                    })
-                ) as Box>
-
-            },
-
-
-            // TestBodyWithQueryParams - PUT /fake/body-with-query-params
-            &hyper::Method::Put if path.matched(paths::ID_FAKE_BODY_WITH_QUERY_PARAMS) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
-
-
-
-
-
-                // Query parameters (note that non-required or collection query parameters will ignore garbage values, rather than causing a 400 response)
-                let query_params = form_urlencoded::parse(uri.query().unwrap_or_default().as_bytes()).collect::>();
-                let param_query = query_params.iter().filter(|e| e.0 == "query").map(|e| e.1.to_owned())
-
-                    .nth(0);
-                let param_query = match param_query {
-                    Some(param_query) => match param_query.parse::() {
-                        Ok(param_query) => param_query,
-                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse query parameter query - doesn't match schema: {}", e)))),
-                    },
-                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required query parameter query"))),
-                };
-
-
-                // Body parameters (note that non-required body parameters will ignore garbage
-                // values, rather than causing a 400 response). Produce warning header and logs for
-                // any unused fields.
-                Box::new(body.concat2()
-                    .then(move |result| -> Box> {
-                        match result {
-                            Ok(body) => {
-
-                                let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
-
-                                    let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
-
-                                    match serde_ignored::deserialize(deserializer, |path| {
-                                            warn!("Ignoring unknown field in body: {}", path);
-                                            unused_elements.push(path.to_string());
-                                    }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
-                                    }
-
-                                } else {
-                                    None
-                                };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
-                                };
-
-
-                                Box::new(api_impl.test_body_with_query_params(param_body, param_query, &context)
-                                    .then(move |result| {
-                                        let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
-
-                                        if !unused_elements.is_empty() {
-                                            response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
-                                        }
-
-                                        match result {
-                                            Ok(rsp) => match rsp {
-                                                TestBodyWithQueryParamsResponse::Success
-
-
-                                                => {
-                                                    response.set_status(StatusCode::try_from(200).unwrap());
-
-                                                },
-                                            },
-                                            Err(_) => {
-                                                // Application code returned an error. This should not happen, as the implementation should
-                                                // return a valid response.
-                                                response.set_status(StatusCode::InternalServerError);
-                                                response.set_body("An internal error occurred");
-                                            },
-                                        }
-
-                                        future::ok(response)
-                                    }
-                                ))
-
-
-                            },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Client: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -378,9 +298,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FakeOuterBooleanSerialize - POST /fake/outer/boolean
             &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_BOOLEAN) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -396,7 +313,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_body: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -417,7 +334,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.fake_outer_boolean_serialize(param_body, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -433,6 +350,8 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                                 => {
                                                     response.set_status(StatusCode::try_from(200).unwrap());
 
+                                                    response.headers_mut().set(ContentType(mimetypes::responses::FAKE_OUTER_BOOLEAN_SERIALIZE_OUTPUT_BOOLEAN.clone()));
+
 
                                                     let body = serde_json::to_string(&body).expect("impossible to fail to serialize");
 
@@ -463,9 +382,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FakeOuterCompositeSerialize - POST /fake/outer/composite
             &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_COMPOSITE) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -481,7 +397,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_outer_composite: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -489,7 +405,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
+                                        Ok(param_outer_composite) => param_outer_composite,
 
                                         Err(_) => None,
                                     }
@@ -499,10 +415,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 };
 
 
-                                Box::new(api_impl.fake_outer_composite_serialize(param_body, &context)
+                                Box::new(api_impl.fake_outer_composite_serialize(param_outer_composite, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -518,6 +434,8 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                                 => {
                                                     response.set_status(StatusCode::try_from(200).unwrap());
 
+                                                    response.headers_mut().set(ContentType(mimetypes::responses::FAKE_OUTER_COMPOSITE_SERIALIZE_OUTPUT_COMPOSITE.clone()));
+
 
                                                     let body = serde_json::to_string(&body).expect("impossible to fail to serialize");
 
@@ -538,7 +456,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter OuterComposite: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -548,9 +466,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FakeOuterNumberSerialize - POST /fake/outer/number
             &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_NUMBER) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -566,7 +481,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_body: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -587,7 +502,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.fake_outer_number_serialize(param_body, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -603,6 +518,8 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                                 => {
                                                     response.set_status(StatusCode::try_from(200).unwrap());
 
+                                                    response.headers_mut().set(ContentType(mimetypes::responses::FAKE_OUTER_NUMBER_SERIALIZE_OUTPUT_NUMBER.clone()));
+
 
                                                     let body = serde_json::to_string(&body).expect("impossible to fail to serialize");
 
@@ -633,9 +550,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FakeOuterStringSerialize - POST /fake/outer/string
             &hyper::Method::Post if path.matched(paths::ID_FAKE_OUTER_STRING) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -651,7 +565,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_body: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -672,7 +586,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.fake_outer_string_serialize(param_body, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -688,6 +602,8 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                                 => {
                                                     response.set_status(StatusCode::try_from(200).unwrap());
 
+                                                    response.headers_mut().set(ContentType(mimetypes::responses::FAKE_OUTER_STRING_SERIALIZE_OUTPUT_STRING.clone()));
+
 
                                                     let body = serde_json::to_string(&body).expect("impossible to fail to serialize");
 
@@ -716,11 +632,100 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
             },
 
 
+            // TestBodyWithQueryParams - PUT /fake/body-with-query-params
+            &hyper::Method::Put if path.matched(paths::ID_FAKE_BODY_WITH_QUERY_PARAMS) => {
+
+
+
+
+
+                // Query parameters (note that non-required or collection query parameters will ignore garbage values, rather than causing a 400 response)
+                let query_params = form_urlencoded::parse(uri.query().unwrap_or_default().as_bytes()).collect::>();
+                let param_query = query_params.iter().filter(|e| e.0 == "query").map(|e| e.1.to_owned())
+
+                    .nth(0);
+                let param_query = match param_query {
+                    Some(param_query) => match param_query.parse::() {
+                        Ok(param_query) => param_query,
+                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse query parameter query - doesn't match schema: {}", e)))),
+                    },
+                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required query parameter query"))),
+                };
+
+
+                // Body parameters (note that non-required body parameters will ignore garbage
+                // values, rather than causing a 400 response). Produce warning header and logs for
+                // any unused fields.
+                Box::new(body.concat2()
+                    .then(move |result| -> Box> {
+                        match result {
+                            Ok(body) => {
+
+                                let mut unused_elements = Vec::new();
+                                let param_user: Option = if !body.is_empty() {
+
+                                    let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
+
+                                    match serde_ignored::deserialize(deserializer, |path| {
+                                            warn!("Ignoring unknown field in body: {}", path);
+                                            unused_elements.push(path.to_string());
+                                    }) {
+                                        Ok(param_user) => param_user,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter User - doesn't match schema: {}", e)))),
+                                    }
+
+                                } else {
+                                    None
+                                };
+                                let param_user = match param_user {
+                                    Some(param_user) => param_user,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter User"))),
+                                };
+
+
+                                Box::new(api_impl.test_body_with_query_params(param_query, param_user, &context)
+                                    .then(move |result| {
+                                        let mut response = Response::new();
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
+
+                                        if !unused_elements.is_empty() {
+                                            response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
+                                        }
+
+                                        match result {
+                                            Ok(rsp) => match rsp {
+                                                TestBodyWithQueryParamsResponse::Success
+
+
+                                                => {
+                                                    response.set_status(StatusCode::try_from(200).unwrap());
+
+                                                },
+                                            },
+                                            Err(_) => {
+                                                // Application code returned an error. This should not happen, as the implementation should
+                                                // return a valid response.
+                                                response.set_status(StatusCode::InternalServerError);
+                                                response.set_body("An internal error occurred");
+                                            },
+                                        }
+
+                                        future::ok(response)
+                                    }
+                                ))
+
+
+                            },
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter User: {}", e)))),
+                        }
+                    })
+                ) as Box>
+
+            },
+
+
             // TestClientModel - PATCH /fake
             &hyper::Method::Patch if path.matched(paths::ID_FAKE) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -736,7 +741,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_client: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -744,23 +749,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_client) => param_client,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Client - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_client = match param_client {
+                                    Some(param_client) => param_client,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Client"))),
                                 };
 
 
-                                Box::new(api_impl.test_client_model(param_body, &context)
+                                Box::new(api_impl.test_client_model(param_client, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -798,7 +803,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Client: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -808,13 +813,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestEndpointParameters - POST /fake
             &hyper::Method::Post if path.matched(paths::ID_FAKE) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -827,29 +829,188 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
-                        {{
+                let boundary = match multipart_boundary(&headers) {
+                    Some(boundary) => boundary.to_string(),
+                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Couldn't find valid multipart body"))),
+                };
+
+                Box::new(body.concat2()
+                    .then(move |result| -> Box> {
+                        match result {
+                            Ok(body) => {
+                                let mut entries = match Multipart::with_body(&body.to_vec()[..], boundary).save().temp() {
+                                    SaveResult::Full(entries) => {
+                                        entries
+                                    },
+                                    _ => {
+                                        return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Unable to process all message parts"))))
+                                    },
+                                };
 
                                 // Form parameters
-                                let param_integer = Some(56);
-                                let param_int32 = Some(56);
-                                let param_int64 = Some(789);
-                                let param_number = 8.14;
-                                let param_float = Some(3.4);
-                                let param_double = 1.2;
-                                let param_string = Some("string_example".to_string());
-                                let param_pattern_without_delimiter = "pattern_without_delimiter_example".to_string();
-                                let param_byte = swagger::ByteArray(Vec::from("B"));
-                                let param_binary = Some(swagger::ByteArray(Vec::from("B")));
-                                let param_date = None;
-                                let param_date_time = None;
-                                let param_password = Some("password_example".to_string());
-                                let param_callback = Some("callback_example".to_string());
+                                let param_integer = entries.fields.remove("integer");
+                                let param_integer = match param_integer {
+                                    Some(entry) =>
 
-                                Box::new(api_impl.test_endpoint_parameters(param_number, param_double, param_pattern_without_delimiter, param_byte, param_integer, param_int32, param_int64, param_float, param_string, param_binary, param_date, param_date_time, param_password, param_callback, &context)
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_int32 = entries.fields.remove("int32");
+                                let param_int32 = match param_int32 {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_int64 = entries.fields.remove("int64");
+                                let param_int64 = match param_int64 {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_number = entries.fields.remove("number");
+                                let param_number = match param_number {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => entry,
+                                            Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse form parameter number - doesn't match schema: {}", e)))),
+                                        },
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Missing required form parameter number")))),
+                                };
+
+                                let param_float = entries.fields.remove("float");
+                                let param_float = match param_float {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_double = entries.fields.remove("double");
+                                let param_double = match param_double {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => entry,
+                                            Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse form parameter double - doesn't match schema: {}", e)))),
+                                        },
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Missing required form parameter double")))),
+                                };
+
+                                let param_string = entries.fields.remove("string");
+                                let param_string = match param_string {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_pattern_without_delimiter = entries.fields.remove("pattern_without_delimiter");
+                                let param_pattern_without_delimiter = match param_pattern_without_delimiter {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => entry,
+                                            Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse form parameter pattern_without_delimiter - doesn't match schema: {}", e)))),
+                                        },
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Missing required form parameter pattern_without_delimiter")))),
+                                };
+
+                                let param_binary = entries.fields.remove("binary");
+                                let param_binary = match param_binary {
+                                    Some(entry) =>
+                                        Some(Box::new(stream::once(Ok(entry.as_bytes().to_vec()))) as Box, Error=io::Error> + Send>),
+
+                                    None => None,
+                                };
+                                let param_binary = Box::new(future::ok(param_binary));
+                                let param_date = entries.fields.remove("date");
+                                let param_date = match param_date {
+                                    Some(entry) =>
+
+                                        match entry.parse::>() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_date_time = entries.fields.remove("date_time");
+                                let param_date_time = match param_date_time {
+                                    Some(entry) =>
+
+                                        match entry.parse::>() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_password = entries.fields.remove("password");
+                                let param_password = match param_password {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+                                let param_callback = entries.fields.remove("callback");
+                                let param_callback = match param_callback {
+                                    Some(entry) =>
+
+                                        match entry.parse::() {
+                                            Ok(entry) => Some(entry),
+
+                                            Err(_) => None,
+                                        },
+
+                                    None => None,
+                                };
+
+
+                                Box::new(api_impl.test_endpoint_parameters(param_number, param_double, param_pattern_without_delimiter, param_integer, param_int32, param_int64, param_float, param_string, param_binary, param_date, param_date_time, param_password, param_callback, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -880,8 +1041,12 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                     }
                                 ))
 
-                        }}
-                })) as Box>
+                                as Box>
+                            },
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read multipart body")))),
+                        }
+                    })
+                )
 
 
             },
@@ -889,9 +1054,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestEnumParameters - GET /fake
             &hyper::Method::Get if path.matched(paths::ID_FAKE) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -923,21 +1085,21 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                     .nth(0);
 
                 let param_enum_query_integer = param_enum_query_integer.and_then(|param_enum_query_integer| param_enum_query_integer.parse::<>().ok());
+                let param_enum_query_double = query_params.iter().filter(|e| e.0 == "enum_query_double").map(|e| e.1.to_owned())
+
+                    .nth(0);
+
+                let param_enum_query_double = param_enum_query_double.and_then(|param_enum_query_double| param_enum_query_double.parse::<>().ok());
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
-                                // Form parameters
-                                let param_enum_form_string_array = None;
-                                let param_enum_form_string = Some("enum_form_string_example".to_string());
-                                let param_enum_query_double = Some(1.2);
-
-                                Box::new(api_impl.test_enum_parameters(param_enum_form_string_array.as_ref(), param_enum_form_string, param_enum_header_string_array.as_ref(), param_enum_header_string, param_enum_query_string_array.as_ref(), param_enum_query_string, param_enum_query_integer, param_enum_query_double, &context)
+                                Box::new(api_impl.test_enum_parameters(param_enum_header_string_array.as_ref(), param_enum_header_string, param_enum_query_string_array.as_ref(), param_enum_query_string, param_enum_query_integer, param_enum_query_double, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -969,7 +1131,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -977,9 +1139,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestInlineAdditionalProperties - POST /fake/inline-additionalProperties
             &hyper::Method::Post if path.matched(paths::ID_FAKE_INLINE_ADDITIONALPROPERTIES) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -995,7 +1154,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_param: Option = if !body.is_empty() {
+                                let param_request_body: Option> = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -1003,23 +1162,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_param) => param_param,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter param - doesn't match schema: {}", e)))),
+                                        Ok(param_request_body) => param_request_body,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter request_body - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_param = match param_param {
-                                    Some(param_param) => param_param,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter param"))),
+                                let param_request_body = match param_request_body {
+                                    Some(param_request_body) => param_request_body,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter request_body"))),
                                 };
 
 
-                                Box::new(api_impl.test_inline_additional_properties(param_param, &context)
+                                Box::new(api_impl.test_inline_additional_properties(param_request_body, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -1049,7 +1208,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter param: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter request_body: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -1059,9 +1218,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestJsonFormData - GET /fake/jsonFormData
             &hyper::Method::Get if path.matched(paths::ID_FAKE_JSONFORMDATA) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -1069,7 +1225,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 // Form parameters
@@ -1079,7 +1235,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.test_json_form_data(param_param, param_param2, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1104,7 +1260,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1112,13 +1268,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // TestClassname - PATCH /fake_classname_test
             &hyper::Method::Patch if path.matched(paths::ID_FAKE_CLASSNAME_TEST) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1139,7 +1292,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_client: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -1147,23 +1300,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_client) => param_client,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Client - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_client = match param_client {
+                                    Some(param_client) => param_client,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Client"))),
                                 };
 
 
-                                Box::new(api_impl.test_classname(param_body, &context)
+                                Box::new(api_impl.test_classname(param_client, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -1201,7 +1354,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Client: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -1211,13 +1364,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // AddPet - POST /pet
             &hyper::Method::Post if path.matched(paths::ID_PET) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1256,30 +1406,30 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_pet: Option = if !body.is_empty() {
                                     let deserializer = &mut serde_xml_rs::de::Deserializer::new_from_reader(&*body);
 
                                     match serde_ignored::deserialize(deserializer, |path| {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_pet) => param_pet,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Pet - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_pet = match param_pet {
+                                    Some(param_pet) => param_pet,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Pet"))),
                                 };
 
 
-                                Box::new(api_impl.add_pet(param_body, &context)
+                                Box::new(api_impl.add_pet(param_pet, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -1309,7 +1459,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Pet: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -1319,13 +1469,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // DeletePet - DELETE /pet/{petId}
             &hyper::Method::Delete if path.matched(paths::ID_PET_PETID) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1376,13 +1523,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.delete_pet(param_pet_id, param_api_key, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1407,7 +1554,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1415,13 +1562,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FindPetsByStatus - GET /pet/findByStatus
             &hyper::Method::Get if path.matched(paths::ID_PET_FINDBYSTATUS) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1458,13 +1602,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.find_pets_by_status(param_status.as_ref(), &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1504,7 +1648,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1512,13 +1656,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // FindPetsByTags - GET /pet/findByTags
             &hyper::Method::Get if path.matched(paths::ID_PET_FINDBYTAGS) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1555,13 +1696,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.find_pets_by_tags(param_tags.as_ref(), &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1601,7 +1742,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1609,13 +1750,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // GetPetById - GET /pet/{petId}
             &hyper::Method::Get if path.matched(paths::ID_PET_PETID) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1644,13 +1782,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.get_pet_by_id(param_pet_id, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1697,7 +1835,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1705,13 +1843,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // UpdatePet - PUT /pet
             &hyper::Method::Put if path.matched(paths::ID_PET) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1750,30 +1885,30 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_pet: Option = if !body.is_empty() {
                                     let deserializer = &mut serde_xml_rs::de::Deserializer::new_from_reader(&*body);
 
                                     match serde_ignored::deserialize(deserializer, |path| {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_pet) => param_pet,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Pet - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_pet = match param_pet {
+                                    Some(param_pet) => param_pet,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Pet"))),
                                 };
 
 
-                                Box::new(api_impl.update_pet(param_body, &context)
+                                Box::new(api_impl.update_pet(param_pet, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -1817,7 +1952,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Pet: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -1827,13 +1962,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // UpdatePetWithForm - POST /pet/{petId}
             &hyper::Method::Post if path.matched(paths::ID_PET_PETID) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -1880,7 +2012,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 // Form parameters
@@ -1890,7 +2022,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.update_pet_with_form(param_pet_id, param_name, param_status, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -1915,7 +2047,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -1923,13 +2055,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // UploadFile - POST /pet/{petId}/uploadImage
             &hyper::Method::Post if path.matched(paths::ID_PET_PETID_UPLOADIMAGE) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -2020,7 +2149,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 Box::new(api_impl.upload_file(param_pet_id, param_additional_metadata, param_file, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2065,9 +2194,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // DeleteOrder - DELETE /store/order/{order_id}
             &hyper::Method::Delete if path.matched(paths::ID_STORE_ORDER_ORDER_ID) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
                 // Path parameters
@@ -2091,13 +2217,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.delete_order(param_order_id, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2129,7 +2255,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2137,13 +2263,10 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // GetInventory - GET /store/inventory
             &hyper::Method::Get if path.matched(paths::ID_STORE_INVENTORY) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
                 {
-                    let authorization = match context.authorization.as_ref() {
-                        Some(authorization) => authorization,
-                        None => return Box::new(future::ok(Response::new()
+                    let authorization = match (&context as &Has>).get() {
+                        &Some(ref authorization) => authorization,
+                        &None => return Box::new(future::ok(Response::new()
                                                 .with_status(StatusCode::Forbidden)
                                                 .with_body("Unauthenticated"))),
                     };
@@ -2156,13 +2279,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.get_inventory(&context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2195,7 +2318,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2203,9 +2326,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // GetOrderById - GET /store/order/{order_id}
             &hyper::Method::Get if path.matched(paths::ID_STORE_ORDER_ORDER_ID) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
                 // Path parameters
@@ -2229,13 +2349,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.get_order_by_id(param_order_id, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2282,7 +2402,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2290,9 +2410,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // PlaceOrder - POST /store/order
             &hyper::Method::Post if path.matched(paths::ID_STORE_ORDER) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2308,7 +2425,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_order: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -2316,23 +2433,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_order) => param_order,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter Order - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_order = match param_order {
+                                    Some(param_order) => param_order,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter Order"))),
                                 };
 
 
-                                Box::new(api_impl.place_order(param_body, &context)
+                                Box::new(api_impl.place_order(param_order, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -2377,7 +2494,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter Order: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -2387,9 +2504,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // CreateUser - POST /user
             &hyper::Method::Post if path.matched(paths::ID_USER) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2405,7 +2519,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_user: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -2413,23 +2527,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_user) => param_user,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter User - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_user = match param_user {
+                                    Some(param_user) => param_user,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter User"))),
                                 };
 
 
-                                Box::new(api_impl.create_user(param_body, &context)
+                                Box::new(api_impl.create_user(param_user, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -2459,7 +2573,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter User: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -2469,9 +2583,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // CreateUsersWithArrayInput - POST /user/createWithArray
             &hyper::Method::Post if path.matched(paths::ID_USER_CREATEWITHARRAY) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2487,7 +2598,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option> = if !body.is_empty() {
+                                let param_user: Option> = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -2495,23 +2606,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_user) => param_user,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter User - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_user = match param_user {
+                                    Some(param_user) => param_user,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter User"))),
                                 };
 
 
-                                Box::new(api_impl.create_users_with_array_input(param_body.as_ref(), &context)
+                                Box::new(api_impl.create_users_with_array_input(param_user.as_ref(), &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -2541,7 +2652,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter User: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -2551,9 +2662,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // CreateUsersWithListInput - POST /user/createWithList
             &hyper::Method::Post if path.matched(paths::ID_USER_CREATEWITHLIST) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2569,7 +2677,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option> = if !body.is_empty() {
+                                let param_user: Option> = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -2577,23 +2685,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_user) => param_user,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter User - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_user = match param_user {
+                                    Some(param_user) => param_user,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter User"))),
                                 };
 
 
-                                Box::new(api_impl.create_users_with_list_input(param_body.as_ref(), &context)
+                                Box::new(api_impl.create_users_with_list_input(param_user.as_ref(), &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -2623,7 +2731,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter User: {}", e)))),
                         }
                     })
                 ) as Box>
@@ -2633,9 +2741,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // DeleteUser - DELETE /user/{username}
             &hyper::Method::Delete if path.matched(paths::ID_USER_USERNAME) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
                 // Path parameters
@@ -2659,13 +2764,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.delete_user(param_username, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2697,7 +2802,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2705,9 +2810,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // GetUserByName - GET /user/{username}
             &hyper::Method::Get if path.matched(paths::ID_USER_USERNAME) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
                 // Path parameters
@@ -2731,13 +2833,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.get_user_by_name(param_username, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2784,7 +2886,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2792,9 +2894,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // LoginUser - GET /user/login
             &hyper::Method::Get if path.matched(paths::ID_USER_LOGIN) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2825,40 +2924,16 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.login_user(param_username, param_password, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
-                                                LoginUserResponse::SuccessfulOperation
-
-                                                    {
-                                                        body,
-                                                        x_rate_limit, 
-
-                                                        x_expires_after
-                                                    }
-
-
-                                                => {
-                                                    response.set_status(StatusCode::try_from(200).unwrap());
-                                                    header! { (ResponseXRateLimit, "X-Rate-Limit") => [i32] }
-                                                    response.headers_mut().set(ResponseXRateLimit(x_rate_limit));
-                                                    header! { (ResponseXExpiresAfter, "X-Expires-After") => [chrono::DateTime] }
-                                                    response.headers_mut().set(ResponseXExpiresAfter(x_expires_after));
-
-                                                    response.headers_mut().set(ContentType(mimetypes::responses::LOGIN_USER_SUCCESSFUL_OPERATION.clone()));
-
-
-                                                    let body = serde_xml_rs::to_string(&body).expect("impossible to fail to serialize");
-
-                                                    response.set_body(body);
-                                                },
                                                 LoginUserResponse::InvalidUsername
 
 
@@ -2880,7 +2955,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2888,9 +2963,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // LogoutUser - GET /user/logout
             &hyper::Method::Get if path.matched(paths::ID_USER_LOGOUT) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
 
@@ -2898,13 +2970,13 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
 
-                Box::new(({
+                Box::new({
                         {{
 
                                 Box::new(api_impl.logout_user(&context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         match result {
                                             Ok(rsp) => match rsp {
@@ -2929,7 +3001,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                 ))
 
                         }}
-                })) as Box>
+                }) as Box>
 
 
             },
@@ -2937,9 +3009,6 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
             // UpdateUser - PUT /user/{username}
             &hyper::Method::Put if path.matched(paths::ID_USER_USERNAME) => {
-                if context.x_span_id.is_none() {
-                    context.x_span_id = Some(headers.get::().map(XSpanId::to_string).unwrap_or_else(|| self::uuid::Uuid::new_v4().to_string()));
-                }
 
 
                 // Path parameters
@@ -2971,7 +3040,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                             Ok(body) => {
 
                                 let mut unused_elements = Vec::new();
-                                let param_body: Option = if !body.is_empty() {
+                                let param_user: Option = if !body.is_empty() {
 
                                     let deserializer = &mut serde_json::Deserializer::from_slice(&*body);
 
@@ -2979,23 +3048,23 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
                                             warn!("Ignoring unknown field in body: {}", path);
                                             unused_elements.push(path.to_string());
                                     }) {
-                                        Ok(param_body) => param_body,
-                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter body - doesn't match schema: {}", e)))),
+                                        Ok(param_user) => param_user,
+                                        Err(e) => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't parse body parameter User - doesn't match schema: {}", e)))),
                                     }
 
                                 } else {
                                     None
                                 };
-                                let param_body = match param_body {
-                                    Some(param_body) => param_body,
-                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter body"))),
+                                let param_user = match param_user {
+                                    Some(param_user) => param_user,
+                                    None => return Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body("Missing required body parameter User"))),
                                 };
 
 
-                                Box::new(api_impl.update_user(param_username, param_body, &context)
+                                Box::new(api_impl.update_user(param_username, param_user, &context)
                                     .then(move |result| {
                                         let mut response = Response::new();
-                                        context.x_span_id.as_ref().map(|header| response.headers_mut().set(XSpanId(header.clone())));
+                                        response.headers_mut().set(XSpanId((&context as &Has).get().0.to_string()));
 
                                         if !unused_elements.is_empty() {
                                             response.headers_mut().set(Warning(format!("Ignoring unknown fields in body: {:?}", unused_elements)));
@@ -3032,7 +3101,7 @@ impl hyper::server::Service for Service where T: Api + Clone + 'static {
 
 
                             },
-                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter body: {}", e)))),
+                            Err(e) => Box::new(future::ok(Response::new().with_status(StatusCode::BadRequest).with_body(format!("Couldn't read body parameter User: {}", e)))),
                         }
                     })
                 ) as Box>
diff --git a/shippable.yml b/shippable.yml
index 56aa70e09c6..f55f67001e8 100644
--- a/shippable.yml
+++ b/shippable.yml
@@ -31,6 +31,6 @@ build:
     - elixir --version
     - mix --version
     # test samples defined in pom.xml
-    - mvn --quiet verify -P samples -f CI/pom.xml.shippable
+    - mvn --quiet verify -P samples.shippable -f CI/pom.xml.shippable
     # generate all petstore samples (client, servers, doc)
     - ./bin/run-all-petstore