From 2ff81caef688f931c8712f77fd6275588ca0248b Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Tue, 12 Jun 2018 18:09:26 -0400 Subject: [PATCH 01/11] Expanding customization docs (#283) * Expanding customization docs As a new user I was very confused on how to either modify, override or create a new library. The existing docs were brief and had requirred knowledge that new users will not have, and it took a lot of trial and error to make progress. Also the wording seemed off. It kept talking about "client" when this project creates more than just clients, used "language" when some templates are not a language, and used library to mean a few seeminly different things. I've tried to consolidate the wording around "template" and "codegen". The codegen is the Java code, and then you give it a "name" which is used for the template. That's the template folder it will live in, so it seems to work. Feel free to use this as a base and edit it out, but this will all make a lot more sense to beginners. :) --- docs/customization.md | 46 +++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 565a7678d27..620716ae66e 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -1,38 +1,55 @@ ## 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 take a look at the following directory: `modules/openapi-generator/src/main/resources/${template}`. In here you'll see all of the generators available, for most programming languages, web application frameworks and web servers. For example, if you are looking for the C# template, it's named `csharp`. -### 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: + +```sh +mkdir templates +cp -r modules/openapi-generator/src/main/resources/${template} templates/ +java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \ + -t ./templates/ -g ruby -i ./foo.yml -o ./out/ruby +``` + +_**Note:** You cannot use this approach to create new templates, only override existing ones._ + +### Creating a new template + +If none of the templates suit your needs at all, 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/codegens/customCodegen -n myCodegen -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/codegens/customCodegen`, 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/codegens/whitespace -n whitespace`. They can be the same, or different, it doesn't matter. The `-n` value will be become the template name. + +To compile your library, enter the `out/codegens/customCodegen` 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/codegens/customCodegen/target/myCodegen-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/codegens/customCodegen/target/myCodegen-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 `myCodegen` 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/myCodegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \ + io.openapitools.codegen.OpenAPIGenerator generate -g myCodegen \ -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \ - -o myClient + -o ./out/myClient ``` @@ -95,7 +112,6 @@ The ignore file allows for better control over overwriting existing files than t Examples: ```sh -# OpenAPI Generator Ignore # Lines beginning with a # are comments # This should match build.sh located anywhere. From 55f9e31f81f6b37209e134d8cbd60ebf7c211c6b Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Tue, 12 Jun 2018 21:35:09 -0400 Subject: [PATCH 02/11] Update template modification docs (#291) Updates some confusing wording, specifies naming conventions, and links to external `new.sh` for contributed templates (rather than modified templates). --- docs/customization.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 620716ae66e..ec1a534c98d 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -2,52 +2,55 @@ ### Modifying a template -Clone OpenAPI Generator and take a look at the following directory: `modules/openapi-generator/src/main/resources/${template}`. In here you'll see all of the generators available, for most programming languages, web application frameworks and web servers. For example, if you are looking for the C# template, it's named `csharp`. +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. 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 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: +To tie that all together (example for modifying ruby templates): ```sh mkdir templates -cp -r modules/openapi-generator/src/main/resources/${template} 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/ -g ruby -i ./foo.yml -o ./out/ruby + -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._ +_**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 at all, you can create a brand new template. OpenAPI Generator can help with this, using the `meta` command: +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 out/codegens/customCodegen -n myCodegen -p com.my.company.codegen + -o out/generators/my-codegen -n my-codegen -p com.my.company.codegen ``` -This will create a new directory `out/codegens/customCodegen`, 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. +This will create a new directory `out/generators/my-codegen`, with all the files you need to get started - including a `README.md`. Once modified and compiled, you can use your new codegen just like any other, with your own custom-rolled logic. -These names can be anything you like. If you are building a client for the whitespace language, maybe you'd use the options `-o out/codegens/whitespace -n whitespace`. They can be the same, or different, it doesn't matter. The `-n` value will be become the template name. +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. -To compile your library, enter the `out/codegens/customCodegen` directory, run `mvn package` and execute the generator: +**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 out/codegens/customCodegen/target/myCodegen-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 out/codegens/customCodegen/target/myCodegen-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 `myCodegen` is an option for `-g` now, and you can use the usual arguments for generating your code: +Note the `my-codegen` is an option for `-g` now, and you can use the usual arguments for generating your code: ```sh -java -cp out/codegens/customCodegen/target/myCodegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \ - io.openapitools.codegen.OpenAPIGenerator generate -g myCodegen \ +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 ./out/myClient ``` @@ -112,6 +115,7 @@ The ignore file allows for better control over overwriting existing files than t Examples: ```sh +# OpenAPI Generator Ignore # Lines beginning with a # are comments # This should match build.sh located anywhere. From 299527370ef6f9f7e2267bd6ff571372fca6702e Mon Sep 17 00:00:00 2001 From: sunn <33183834+etherealjoy@users.noreply.github.com> Date: Wed, 13 Jun 2018 10:55:04 +0200 Subject: [PATCH 03/11] [go-server] Add dockerfile for building and run petstore service (#274) * Add possibility to build and run go service in a container * Remove tabs * Update Pet Store server sample * Add {{{packageName}}} instead of petstore --- .../codegen/languages/GoServerCodegen.java | 1 + .../resources/go-server/Dockerfile.mustache | 14 + .../main/resources/go-server/README.mustache | 11 + .../go-api-server/.openapi-generator/VERSION | 2 +- .../server/petstore/go-api-server/Dockerfile | 14 + .../petstore/go-api-server/api/openapi.yaml | 674 +++++++++--------- .../petstore/go-api-server/go/README.md | 19 +- 7 files changed, 394 insertions(+), 341 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/go-server/Dockerfile.mustache create mode 100644 samples/server/petstore/go-api-server/Dockerfile 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/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/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 +``` + + From 49b8ece776ea1f02fe34200710a9d4228f694750 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 13 Jun 2018 16:57:36 +0800 Subject: [PATCH 04/11] update cpp server scripts/batch files (#296) --- ...tache-server-petstore.sh => cpp-pistache-server-petstore.sh} | 2 +- ...estbed-petstore-server.sh => cpp-restbed-petstore-server.sh} | 2 +- ...che-server-petstore.bat => cpp-pistache-server-petstore.bat} | 2 +- ...tbed-petstore-server.bat => cpp-restbed-petstore-server.bat} | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename bin/openapi3/{pistache-server-petstore.sh => cpp-pistache-server-petstore.sh} (97%) rename bin/openapi3/{restbed-petstore-server.sh => cpp-restbed-petstore-server.sh} (98%) rename bin/windows/{pistache-server-petstore.bat => cpp-pistache-server-petstore.bat} (94%) rename bin/windows/{restbed-petstore-server.bat => cpp-restbed-petstore-server.bat} (95%) 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/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% From 6f6a4a1013f8aa9acb6df50b4516d9893660cb53 Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Wed, 13 Jun 2018 11:53:03 +0100 Subject: [PATCH 05/11] [rust-server] (Re-)Adding support for rust-server (#290) * First attempt at getting rust-server working * Solve the problem of spurious 'object's * We've found the missing models * Catch some single-var objects correctly * Get single-param models 'working' * Got files working * Remove surplus logging * Disable some things to get it compiling * `cargo test` now passes as well * Create rust-server-specific petstore.yaml We've commented out a few bits that rust-server doesn't yet support * Remove commented-out code And finally get rid of the generation date in the sample --- bin/rust-server-petstore.sh | 2 +- .../codegen/languages/RustServerCodegen.java | 238 +- .../codegen/utils/ModelUtils.java | 6 +- .../resources/rust-server/README.mustache | 2 + .../resources/rust-server/openapi.mustache | 2 +- ...ith-fake-endpoints-models-for-testing.yaml | 1454 +++++++++++ .../rust-server/.openapi-generator-ignore | 6 +- .../rust-server/.openapi-generator/VERSION | 2 +- .../server/petstore/rust-server/Cargo.toml | 4 +- samples/server/petstore/rust-server/README.md | 9 +- .../petstore/rust-server/api/openapi.yaml | 1456 +++++++++++ .../petstore/rust-server/api/swagger.yaml | 2122 ----------------- .../petstore/rust-server/examples/client.rs | 94 +- .../petstore/rust-server/examples/server.rs | 5 +- .../rust-server/examples/server_lib/mod.rs | 22 +- .../rust-server/examples/server_lib/server.rs | 147 +- .../petstore/rust-server/src/client/mod.rs | 528 ++-- .../server/petstore/rust-server/src/lib.rs | 202 +- .../petstore/rust-server/src/mimetypes.rs | 50 +- .../server/petstore/rust-server/src/models.rs | 123 +- .../petstore/rust-server/src/server/auth.rs | 80 +- .../petstore/rust-server/src/server/mod.rs | 947 ++++---- 22 files changed, 4192 insertions(+), 3309 deletions(-) create mode 100644 modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml create mode 100644 samples/server/petstore/rust-server/api/openapi.yaml delete mode 100644 samples/server/petstore/rust-server/api/swagger.yaml 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/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/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/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/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> From f964873a2d2187c3aec075574d206d8f3feca265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Bresson?= Date: Wed, 13 Jun 2018 15:05:20 +0200 Subject: [PATCH 06/11] Change "samples" profile name to "samples.shippable" (#305) --- CI/pom.xml.shippable | 2 +- shippable.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CI/pom.xml.shippable b/CI/pom.xml.shippable index c15e5d89db4..451f92a5241 100644 --- a/CI/pom.xml.shippable +++ b/CI/pom.xml.shippable @@ -840,7 +840,7 @@ - samples + samples.shippable env 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 From 91d6d77a09c0ce8ac9da96fe7d1c554601718dae Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Wed, 13 Jun 2018 17:05:49 +0100 Subject: [PATCH 07/11] [rust-server] Add rust-server to travis CI (#308) * Add rust-server to travis CI * Install rust correctly (and only once) --- .travis.yml | 6 ++- pom.xml | 1 + samples/server/petstore/rust-server/pom.xml | 46 +++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 samples/server/petstore/rust-server/pom.xml 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/pom.xml b/pom.xml index 877428f18c8..13373b5fbc0 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/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 + + + + + + + + From 7126074f49e645b6b2bb3e067cb81ca844fd330d Mon Sep 17 00:00:00 2001 From: John Wang Date: Wed, 13 Jun 2018 23:24:16 -0700 Subject: [PATCH 08/11] add Go client test - TestPlaceOrder (#321) --- samples/client/petstore/go/store_api_test.go | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 samples/client/petstore/go/store_api_test.go 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) + } +} From 24104dac359736a1e780b318c4a2a19b1bfca12a Mon Sep 17 00:00:00 2001 From: Stian Liknes Date: Thu, 14 Jun 2018 13:19:23 +0200 Subject: [PATCH 09/11] Add option modelPropertyNaming to javascript generator (#299) * Add option modelPropertyNaming to javascript generator Fixes 6530 * Update Petstore sample --- .../languages/JavascriptClientCodegen.java | 34 +- .../javascript-es6/.openapi-generator/VERSION | 2 +- .../client/petstore/javascript-es6/README.md | 152 +++--- .../docs/AdditionalPropertiesClass.md | 2 +- .../petstore/javascript-es6/docs/Animal.md | 2 +- .../javascript-es6/docs/AnimalFarm.md | 2 +- .../javascript-es6/docs/AnotherFakeApi.md | 17 +- .../javascript-es6/docs/ApiResponse.md | 2 +- .../docs/ArrayOfArrayOfNumberOnly.md | 2 +- .../javascript-es6/docs/ArrayOfNumberOnly.md | 2 +- .../petstore/javascript-es6/docs/ArrayTest.md | 2 +- .../javascript-es6/docs/Capitalization.md | 2 +- .../petstore/javascript-es6/docs/Cat.md | 2 +- .../petstore/javascript-es6/docs/Category.md | 2 +- .../javascript-es6/docs/ClassModel.md | 2 +- .../petstore/javascript-es6/docs/Client.md | 2 +- .../petstore/javascript-es6/docs/Dog.md | 2 +- .../javascript-es6/docs/EnumArrays.md | 2 +- .../petstore/javascript-es6/docs/EnumClass.md | 2 +- .../petstore/javascript-es6/docs/EnumTest.md | 16 +- .../petstore/javascript-es6/docs/FakeApi.md | 217 ++++---- .../docs/FakeClassnameTags123Api.md | 21 +- .../javascript-es6/docs/FormatTest.md | 4 +- .../javascript-es6/docs/HasOnlyReadOnly.md | 2 +- .../petstore/javascript-es6/docs/List.md | 4 +- .../petstore/javascript-es6/docs/MapTest.md | 2 +- ...dPropertiesAndAdditionalPropertiesClass.md | 2 +- .../javascript-es6/docs/Model200Response.md | 2 +- .../javascript-es6/docs/ModelReturn.md | 2 +- .../petstore/javascript-es6/docs/Name.md | 4 +- .../javascript-es6/docs/NumberOnly.md | 2 +- .../petstore/javascript-es6/docs/Order.md | 2 +- .../javascript-es6/docs/OuterComposite.md | 8 +- .../petstore/javascript-es6/docs/OuterEnum.md | 2 +- .../petstore/javascript-es6/docs/Pet.md | 2 +- .../petstore/javascript-es6/docs/PetApi.md | 120 ++--- .../javascript-es6/docs/ReadOnlyFirst.md | 2 +- .../javascript-es6/docs/SpecialModelName.md | 2 +- .../petstore/javascript-es6/docs/StoreApi.md | 46 +- .../petstore/javascript-es6/docs/Tag.md | 2 +- .../petstore/javascript-es6/docs/User.md | 2 +- .../petstore/javascript-es6/docs/UserApi.md | 120 ++--- .../petstore/javascript-es6/git_push.sh | 2 +- .../petstore/javascript-es6/package.json | 2 +- .../petstore/javascript-es6/src/ApiClient.js | 10 +- .../javascript-es6/src/api/AnotherFakeApi.js | 20 +- .../javascript-es6/src/api/FakeApi.js | 149 ++++-- .../src/api/FakeClassnameTags123Api.js | 21 +- .../petstore/javascript-es6/src/api/PetApi.js | 45 +- .../javascript-es6/src/api/StoreApi.js | 29 +- .../javascript-es6/src/api/UserApi.js | 81 ++- .../petstore/javascript-es6/src/index.js | 67 +-- .../src/model/AdditionalPropertiesClass.js | 8 +- .../javascript-es6/src/model/Animal.js | 8 +- .../javascript-es6/src/model/AnimalFarm.js | 8 +- .../javascript-es6/src/model/ApiResponse.js | 8 +- .../src/model/ArrayOfArrayOfNumberOnly.js | 8 +- .../src/model/ArrayOfNumberOnly.js | 8 +- .../javascript-es6/src/model/ArrayTest.js | 8 +- .../src/model/Capitalization.js | 8 +- .../petstore/javascript-es6/src/model/Cat.js | 26 +- .../javascript-es6/src/model/Category.js | 8 +- .../javascript-es6/src/model/ClassModel.js | 8 +- .../javascript-es6/src/model/Client.js | 8 +- .../petstore/javascript-es6/src/model/Dog.js | 26 +- .../javascript-es6/src/model/EnumArrays.js | 8 +- .../javascript-es6/src/model/EnumClass.js | 8 +- .../javascript-es6/src/model/EnumTest.js | 46 +- .../javascript-es6/src/model/FormatTest.js | 12 +- .../src/model/HasOnlyReadOnly.js | 8 +- .../petstore/javascript-es6/src/model/List.js | 8 +- .../javascript-es6/src/model/MapTest.js | 8 +- ...dPropertiesAndAdditionalPropertiesClass.js | 8 +- .../src/model/Model200Response.js | 8 +- .../javascript-es6/src/model/ModelReturn.js | 8 +- .../petstore/javascript-es6/src/model/Name.js | 8 +- .../javascript-es6/src/model/NumberOnly.js | 8 +- .../javascript-es6/src/model/Order.js | 8 +- .../src/model/OuterComposite.js | 23 +- .../javascript-es6/src/model/OuterEnum.js | 8 +- .../petstore/javascript-es6/src/model/Pet.js | 8 +- .../javascript-es6/src/model/ReadOnlyFirst.js | 8 +- .../src/model/SpecialModelName.js | 8 +- .../petstore/javascript-es6/src/model/Tag.js | 8 +- .../petstore/javascript-es6/src/model/User.js | 8 +- .../.openapi-generator/VERSION | 2 +- .../petstore/javascript-promise-es6/README.md | 151 +++--- .../docs/AdditionalPropertiesClass.md | 2 +- .../javascript-promise-es6/docs/Animal.md | 2 +- .../javascript-promise-es6/docs/AnimalFarm.md | 2 +- .../docs/AnotherFakeApi.md | 16 +- .../docs/ApiResponse.md | 2 +- .../docs/ArrayOfArrayOfNumberOnly.md | 2 +- .../docs/ArrayOfNumberOnly.md | 2 +- .../javascript-promise-es6/docs/ArrayTest.md | 2 +- .../docs/Capitalization.md | 2 +- .../javascript-promise-es6/docs/Cat.md | 2 +- .../javascript-promise-es6/docs/Category.md | 2 +- .../javascript-promise-es6/docs/ClassModel.md | 2 +- .../javascript-promise-es6/docs/Client.md | 2 +- .../javascript-promise-es6/docs/Dog.md | 2 +- .../javascript-promise-es6/docs/EnumArrays.md | 2 +- .../javascript-promise-es6/docs/EnumClass.md | 2 +- .../javascript-promise-es6/docs/EnumTest.md | 16 +- .../javascript-promise-es6/docs/FakeApi.md | 207 +++---- .../docs/FakeClassnameTags123Api.md | 20 +- .../javascript-promise-es6/docs/FormatTest.md | 4 +- .../docs/HasOnlyReadOnly.md | 2 +- .../javascript-promise-es6/docs/List.md | 4 +- .../javascript-promise-es6/docs/MapTest.md | 2 +- ...dPropertiesAndAdditionalPropertiesClass.md | 2 +- .../docs/Model200Response.md | 2 +- .../docs/ModelReturn.md | 2 +- .../javascript-promise-es6/docs/Name.md | 4 +- .../javascript-promise-es6/docs/NumberOnly.md | 2 +- .../javascript-promise-es6/docs/Order.md | 2 +- .../docs/OuterComposite.md | 8 +- .../javascript-promise-es6/docs/OuterEnum.md | 2 +- .../javascript-promise-es6/docs/Pet.md | 2 +- .../javascript-promise-es6/docs/PetApi.md | 112 ++-- .../docs/ReadOnlyFirst.md | 2 +- .../docs/SpecialModelName.md | 2 +- .../javascript-promise-es6/docs/StoreApi.md | 42 +- .../javascript-promise-es6/docs/Tag.md | 2 +- .../javascript-promise-es6/docs/User.md | 2 +- .../javascript-promise-es6/docs/UserApi.md | 112 ++-- .../javascript-promise-es6/git_push.sh | 2 +- .../javascript-promise-es6/package.json | 2 +- .../javascript-promise-es6/src/ApiClient.js | 10 +- .../src/api/AnotherFakeApi.js | 26 +- .../javascript-promise-es6/src/api/FakeApi.js | 186 ++++--- .../src/api/FakeClassnameTags123Api.js | 28 +- .../javascript-promise-es6/src/api/PetApi.js | 62 +-- .../src/api/StoreApi.js | 36 +- .../javascript-promise-es6/src/api/UserApi.js | 112 ++-- .../javascript-promise-es6/src/index.js | 67 +-- .../src/model/AdditionalPropertiesClass.js | 8 +- .../src/model/Animal.js | 8 +- .../src/model/AnimalFarm.js | 8 +- .../src/model/ApiResponse.js | 8 +- .../src/model/ArrayOfArrayOfNumberOnly.js | 8 +- .../src/model/ArrayOfNumberOnly.js | 8 +- .../src/model/ArrayTest.js | 8 +- .../src/model/Capitalization.js | 8 +- .../javascript-promise-es6/src/model/Cat.js | 26 +- .../src/model/Category.js | 8 +- .../src/model/ClassModel.js | 8 +- .../src/model/Client.js | 8 +- .../javascript-promise-es6/src/model/Dog.js | 26 +- .../src/model/EnumArrays.js | 8 +- .../src/model/EnumClass.js | 8 +- .../src/model/EnumTest.js | 46 +- .../src/model/FormatTest.js | 12 +- .../src/model/HasOnlyReadOnly.js | 8 +- .../javascript-promise-es6/src/model/List.js | 8 +- .../src/model/MapTest.js | 8 +- ...dPropertiesAndAdditionalPropertiesClass.js | 8 +- .../src/model/Model200Response.js | 8 +- .../src/model/ModelReturn.js | 8 +- .../javascript-promise-es6/src/model/Name.js | 8 +- .../src/model/NumberOnly.js | 8 +- .../javascript-promise-es6/src/model/Order.js | 8 +- .../src/model/OuterComposite.js | 23 +- .../src/model/OuterEnum.js | 8 +- .../javascript-promise-es6/src/model/Pet.js | 8 +- .../src/model/ReadOnlyFirst.js | 8 +- .../src/model/SpecialModelName.js | 8 +- .../javascript-promise-es6/src/model/Tag.js | 8 +- .../javascript-promise-es6/src/model/User.js | 8 +- .../.openapi-generator/VERSION | 2 +- .../petstore/javascript-promise/README.md | 156 +++--- .../docs/AdditionalPropertiesClass.md | 2 +- .../javascript-promise/docs/Animal.md | 2 +- .../javascript-promise/docs/AnimalFarm.md | 2 +- .../javascript-promise/docs/AnotherFakeApi.md | 16 +- .../javascript-promise/docs/ApiResponse.md | 2 +- .../docs/ArrayOfArrayOfNumberOnly.md | 2 +- .../docs/ArrayOfNumberOnly.md | 2 +- .../javascript-promise/docs/ArrayTest.md | 2 +- .../javascript-promise/docs/Capitalization.md | 2 +- .../petstore/javascript-promise/docs/Cat.md | 2 +- .../javascript-promise/docs/Category.md | 2 +- .../javascript-promise/docs/ClassModel.md | 2 +- .../javascript-promise/docs/Client.md | 2 +- .../petstore/javascript-promise/docs/Dog.md | 2 +- .../javascript-promise/docs/EnumArrays.md | 2 +- .../javascript-promise/docs/EnumClass.md | 2 +- .../javascript-promise/docs/EnumTest.md | 16 +- .../javascript-promise/docs/FakeApi.md | 207 +++---- .../docs/FakeClassnameTags123Api.md | 21 +- .../javascript-promise/docs/FormatTest.md | 4 +- .../docs/HasOnlyReadOnly.md | 2 +- .../petstore/javascript-promise/docs/List.md | 4 +- .../javascript-promise/docs/MapTest.md | 2 +- ...dPropertiesAndAdditionalPropertiesClass.md | 2 +- .../docs/Model200Response.md | 2 +- .../javascript-promise/docs/ModelReturn.md | 2 +- .../petstore/javascript-promise/docs/Name.md | 4 +- .../javascript-promise/docs/NumberOnly.md | 2 +- .../petstore/javascript-promise/docs/Order.md | 2 +- .../javascript-promise/docs/OuterComposite.md | 8 +- .../javascript-promise/docs/OuterEnum.md | 2 +- .../petstore/javascript-promise/docs/Pet.md | 2 +- .../javascript-promise/docs/PetApi.md | 120 ++--- .../javascript-promise/docs/ReadOnlyFirst.md | 2 +- .../docs/SpecialModelName.md | 2 +- .../javascript-promise/docs/StoreApi.md | 43 +- .../petstore/javascript-promise/docs/Tag.md | 2 +- .../petstore/javascript-promise/docs/User.md | 2 +- .../javascript-promise/docs/UserApi.md | 112 ++-- .../petstore/javascript-promise/git_push.sh | 2 +- .../petstore/javascript-promise/package.json | 2 +- .../javascript-promise/src/ApiClient.js | 15 +- .../src/api/AnotherFakeApi.js | 33 +- .../javascript-promise/src/api/FakeApi.js | 195 ++++--- .../src/api/FakeClassnameTags123Api.js | 35 +- .../javascript-promise/src/api/PetApi.js | 69 +-- .../javascript-promise/src/api/StoreApi.js | 43 +- .../javascript-promise/src/api/UserApi.js | 119 ++--- .../petstore/javascript-promise/src/index.js | 60 +-- .../src/model/AdditionalPropertiesClass.js | 15 +- .../javascript-promise/src/model/Animal.js | 15 +- .../src/model/AnimalFarm.js | 15 +- .../src/model/ApiResponse.js | 15 +- .../src/model/ArrayOfArrayOfNumberOnly.js | 15 +- .../src/model/ArrayOfNumberOnly.js | 15 +- .../javascript-promise/src/model/ArrayTest.js | 15 +- .../src/model/Capitalization.js | 15 +- .../javascript-promise/src/model/Cat.js | 32 +- .../javascript-promise/src/model/Category.js | 15 +- .../src/model/ClassModel.js | 15 +- .../javascript-promise/src/model/Client.js | 15 +- .../javascript-promise/src/model/Dog.js | 32 +- .../src/model/EnumArrays.js | 15 +- .../javascript-promise/src/model/EnumClass.js | 15 +- .../javascript-promise/src/model/EnumTest.js | 48 +- .../src/model/FormatTest.js | 19 +- .../src/model/HasOnlyReadOnly.js | 15 +- .../javascript-promise/src/model/List.js | 15 +- .../javascript-promise/src/model/MapTest.js | 15 +- ...dPropertiesAndAdditionalPropertiesClass.js | 15 +- .../src/model/Model200Response.js | 15 +- .../src/model/ModelReturn.js | 15 +- .../javascript-promise/src/model/Name.js | 15 +- .../src/model/NumberOnly.js | 15 +- .../javascript-promise/src/model/Order.js | 15 +- .../src/model/OuterComposite.js | 33 +- .../javascript-promise/src/model/OuterEnum.js | 15 +- .../javascript-promise/src/model/Pet.js | 15 +- .../src/model/ReadOnlyFirst.js | 15 +- .../src/model/SpecialModelName.js | 15 +- .../javascript-promise/src/model/Tag.js | 15 +- .../javascript-promise/src/model/User.js | 15 +- .../javascript/.openapi-generator/VERSION | 2 +- .../docs/AdditionalPropertiesClass.md | 9 + .../client/petstore/javascript/docs/Animal.md | 9 + .../petstore/javascript/docs/AnimalFarm.md | 7 + .../javascript/docs/AnotherFakeApi.md | 52 ++ .../petstore/javascript/docs/ApiResponse.md | 10 + .../docs/ArrayOfArrayOfNumberOnly.md | 8 + .../javascript/docs/ArrayOfNumberOnly.md | 8 + .../petstore/javascript/docs/ArrayTest.md | 10 + .../javascript/docs/Capitalization.md | 13 + .../client/petstore/javascript/docs/Cat.md | 8 + .../petstore/javascript/docs/Category.md | 9 + .../petstore/javascript/docs/ClassModel.md | 8 + .../client/petstore/javascript/docs/Client.md | 8 + .../client/petstore/javascript/docs/Dog.md | 8 + .../petstore/javascript/docs/EnumArrays.md | 31 ++ .../petstore/javascript/docs/EnumClass.md | 12 + .../petstore/javascript/docs/EnumTest.md | 60 +++ .../petstore/javascript/docs/FakeApi.md | 504 ++++++++++++++++++ .../docs/FakeClassnameTags123Api.md | 58 ++ .../petstore/javascript/docs/FormatTest.md | 20 + .../javascript/docs/HasOnlyReadOnly.md | 9 + .../client/petstore/javascript/docs/List.md | 8 + .../petstore/javascript/docs/MapTest.md | 20 + ...dPropertiesAndAdditionalPropertiesClass.md | 10 + .../javascript/docs/Model200Response.md | 9 + .../petstore/javascript/docs/ModelReturn.md | 8 + .../client/petstore/javascript/docs/Name.md | 11 + .../petstore/javascript/docs/NumberOnly.md | 8 + .../client/petstore/javascript/docs/Order.md | 26 + .../javascript/docs/OuterComposite.md | 10 + .../petstore/javascript/docs/OuterEnum.md | 12 + .../client/petstore/javascript/docs/Pet.md | 26 + .../client/petstore/javascript/docs/PetApi.md | 400 ++++++++++++++ .../petstore/javascript/docs/ReadOnlyFirst.md | 9 + .../javascript/docs/SpecialModelName.md | 8 + .../petstore/javascript/docs/StoreApi.md | 184 +++++++ .../client/petstore/javascript/docs/Tag.md | 9 + .../client/petstore/javascript/docs/User.md | 15 + .../petstore/javascript/docs/UserApi.md | 350 ++++++++++++ .../petstore/javascript/src/ApiClient.js | 2 +- .../javascript/src/api/AnotherFakeApi.js | 2 +- .../petstore/javascript/src/api/FakeApi.js | 2 +- .../src/api/FakeClassnameTags123Api.js | 2 +- .../petstore/javascript/src/api/PetApi.js | 2 +- .../petstore/javascript/src/api/StoreApi.js | 2 +- .../petstore/javascript/src/api/UserApi.js | 2 +- .../client/petstore/javascript/src/index.js | 2 +- .../src/model/AdditionalPropertiesClass.js | 2 +- .../petstore/javascript/src/model/Animal.js | 2 +- .../javascript/src/model/AnimalFarm.js | 2 +- .../javascript/src/model/ApiResponse.js | 2 +- .../src/model/ArrayOfArrayOfNumberOnly.js | 2 +- .../javascript/src/model/ArrayOfNumberOnly.js | 2 +- .../javascript/src/model/ArrayTest.js | 2 +- .../javascript/src/model/Capitalization.js | 2 +- .../petstore/javascript/src/model/Cat.js | 2 +- .../petstore/javascript/src/model/Category.js | 2 +- .../javascript/src/model/ClassModel.js | 2 +- .../petstore/javascript/src/model/Client.js | 2 +- .../petstore/javascript/src/model/Dog.js | 2 +- .../javascript/src/model/EnumArrays.js | 2 +- .../javascript/src/model/EnumClass.js | 2 +- .../petstore/javascript/src/model/EnumTest.js | 2 +- .../javascript/src/model/FormatTest.js | 2 +- .../javascript/src/model/HasOnlyReadOnly.js | 2 +- .../petstore/javascript/src/model/List.js | 2 +- .../petstore/javascript/src/model/MapTest.js | 2 +- ...dPropertiesAndAdditionalPropertiesClass.js | 2 +- .../javascript/src/model/Model200Response.js | 2 +- .../javascript/src/model/ModelReturn.js | 2 +- .../petstore/javascript/src/model/Name.js | 2 +- .../javascript/src/model/NumberOnly.js | 2 +- .../petstore/javascript/src/model/Order.js | 2 +- .../javascript/src/model/OuterComposite.js | 2 +- .../javascript/src/model/OuterEnum.js | 2 +- .../petstore/javascript/src/model/Pet.js | 2 +- .../javascript/src/model/ReadOnlyFirst.js | 2 +- .../javascript/src/model/SpecialModelName.js | 2 +- .../petstore/javascript/src/model/Tag.js | 2 +- .../petstore/javascript/src/model/User.js | 2 +- 334 files changed, 4646 insertions(+), 2594 deletions(-) create mode 100644 samples/client/petstore/javascript/docs/AdditionalPropertiesClass.md create mode 100644 samples/client/petstore/javascript/docs/Animal.md create mode 100644 samples/client/petstore/javascript/docs/AnimalFarm.md create mode 100644 samples/client/petstore/javascript/docs/AnotherFakeApi.md create mode 100644 samples/client/petstore/javascript/docs/ApiResponse.md create mode 100644 samples/client/petstore/javascript/docs/ArrayOfArrayOfNumberOnly.md create mode 100644 samples/client/petstore/javascript/docs/ArrayOfNumberOnly.md create mode 100644 samples/client/petstore/javascript/docs/ArrayTest.md create mode 100644 samples/client/petstore/javascript/docs/Capitalization.md create mode 100644 samples/client/petstore/javascript/docs/Cat.md create mode 100644 samples/client/petstore/javascript/docs/Category.md create mode 100644 samples/client/petstore/javascript/docs/ClassModel.md create mode 100644 samples/client/petstore/javascript/docs/Client.md create mode 100644 samples/client/petstore/javascript/docs/Dog.md create mode 100644 samples/client/petstore/javascript/docs/EnumArrays.md create mode 100644 samples/client/petstore/javascript/docs/EnumClass.md create mode 100644 samples/client/petstore/javascript/docs/EnumTest.md create mode 100644 samples/client/petstore/javascript/docs/FakeApi.md create mode 100644 samples/client/petstore/javascript/docs/FakeClassnameTags123Api.md create mode 100644 samples/client/petstore/javascript/docs/FormatTest.md create mode 100644 samples/client/petstore/javascript/docs/HasOnlyReadOnly.md create mode 100644 samples/client/petstore/javascript/docs/List.md create mode 100644 samples/client/petstore/javascript/docs/MapTest.md create mode 100644 samples/client/petstore/javascript/docs/MixedPropertiesAndAdditionalPropertiesClass.md create mode 100644 samples/client/petstore/javascript/docs/Model200Response.md create mode 100644 samples/client/petstore/javascript/docs/ModelReturn.md create mode 100644 samples/client/petstore/javascript/docs/Name.md create mode 100644 samples/client/petstore/javascript/docs/NumberOnly.md create mode 100644 samples/client/petstore/javascript/docs/Order.md create mode 100644 samples/client/petstore/javascript/docs/OuterComposite.md create mode 100644 samples/client/petstore/javascript/docs/OuterEnum.md create mode 100644 samples/client/petstore/javascript/docs/Pet.md create mode 100644 samples/client/petstore/javascript/docs/PetApi.md create mode 100644 samples/client/petstore/javascript/docs/ReadOnlyFirst.md create mode 100644 samples/client/petstore/javascript/docs/SpecialModelName.md create mode 100644 samples/client/petstore/javascript/docs/StoreApi.md create mode 100644 samples/client/petstore/javascript/docs/Tag.md create mode 100644 samples/client/petstore/javascript/docs/User.md create mode 100644 samples/client/petstore/javascript/docs/UserApi.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/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.
  *

From f8e61ac9140bf020dab3189269621476af58574f Mon Sep 17 00:00:00 2001
From: topce 
Date: Thu, 14 Jun 2018 13:20:34 +0200
Subject: [PATCH 10/11] [typescript] fix cast problem (#303)

* fix cast problem

* fix cast problem
wing328 suggestion
---
 .../languages/AbstractTypeScriptClientCodegen.java       | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

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();

From 680a2bc3eca6a01d88c4266ea6e47363c2c1b906 Mon Sep 17 00:00:00 2001
From: Stian Liknes 
Date: Thu, 14 Jun 2018 13:27:52 +0200
Subject: [PATCH 11/11] Configuration option to disable HTML escaping when
 using Gson (#298)

* Configuration option to disable HTML escaping when using Gson

The default implementation of Gson will escape certain characters by default. This
includes the `=` character, which is used in base64 encoding and cause problems when
deserializing the value to a base64 encoded string in a service.

Adding an option for disabling this feature makes it easier to generate client code
with sane defaults.

* Update Petstore sample
---
 .../codegen/languages/AbstractJavaCodegen.java      | 13 ++++++++++++-
 .../src/main/resources/Java/JSON.mustache           |  6 +++++-
 .../src/main/java/org/openapitools/client/JSON.java |  3 ++-
 .../src/main/java/org/openapitools/client/JSON.java |  3 ++-
 .../src/main/java/org/openapitools/client/JSON.java |  3 ++-
 5 files changed, 23 insertions(+), 5 deletions(-)

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/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/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) {