diff --git a/bin/ci/java-rest-assured-jackson.json b/bin/ci/java-rest-assured-jackson.json
new file mode 100644
index 000000000000..1ff56d80ea83
--- /dev/null
+++ b/bin/ci/java-rest-assured-jackson.json
@@ -0,0 +1,16 @@
+{
+ "!include": "bin/java-petstore-rest-assured-jackson.json",
+ "generatorName": "java",
+ "inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
+ "outputDir": "samples/client/petstore/java/rest-assured-jackson",
+ "templateDir": "modules/openapi-generator/src/main/resources/Java/libraries/rest-assured",
+ "additionalProperties": {
+ "hideGenerationTimestamp": true,
+ "booleanGetterPrefix": "is",
+ "java8": "true",
+ "dateLibrary": "java8",
+ "serializationLibrary": "jackson",
+ "useBeanValidation": "true",
+ "performBeanValidation": "true"
+ }
+}
diff --git a/bin/java-petstore-all.sh b/bin/java-petstore-all.sh
index 6eed10ebe38b..05b50835c99d 100755
--- a/bin/java-petstore-all.sh
+++ b/bin/java-petstore-all.sh
@@ -12,6 +12,7 @@
./bin/java-petstore-okhttp-gson-parcelable.sh
./bin/java-petstore-okhttp-gson.sh
./bin/java-petstore-rest-assured.sh
+./bin/java-petstore-rest-assured-jackson.sh
./bin/java-petstore-resteasy.sh
./bin/java-petstore-resttemplate-withxml.sh
./bin/java-petstore-resttemplate.sh
diff --git a/bin/java-petstore-rest-assured-jackson.json b/bin/java-petstore-rest-assured-jackson.json
new file mode 100644
index 000000000000..d6e6035df801
--- /dev/null
+++ b/bin/java-petstore-rest-assured-jackson.json
@@ -0,0 +1,4 @@
+{
+ "library": "rest-assured",
+ "artifactId": "petstore-rest-assured-jackson"
+}
diff --git a/bin/java-petstore-rest-assured-jackson.sh b/bin/java-petstore-rest-assured-jackson.sh
new file mode 100755
index 000000000000..eeffe6aaceed
--- /dev/null
+++ b/bin/java-petstore-rest-assured-jackson.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+SCRIPT="$0"
+echo "# START SCRIPT: $SCRIPT"
+
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+if [ ! -d "${APP_DIR}" ]; then
+ APP_DIR=`dirname "$SCRIPT"`/..
+ APP_DIR=`cd "${APP_DIR}"; pwd`
+fi
+
+executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
+target_dir="./samples/client/petstore/java/rest-assured-jackson/"
+
+if [ ! -f "$executable" ]
+then
+ mvn -B clean package
+fi
+
+# if you've executed sbt assembly previously it will use that instead.
+export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
+args="generate -t modules/openapi-generator/src/main/resources/Java/libraries/rest-assured -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g java -c bin/java-petstore-rest-assured-jackson.json -o ${target_dir} --additional-properties hideGenerationTimestamp=true --additional-properties useBeanValidation=true --additional-properties performBeanValidation=true --additional-properties booleanGetterPrefix=is --additional-properties java8=true --additional-properties dateLibrary=java8 --additional-properties serializationLibrary=jackson $@"
+
+echo "Removing ${target_dir}"
+rm -rf "${target_dir}"
+
+java $JAVA_OPTS -jar $executable $args
diff --git a/bin/windows/java-petstore-all.bat b/bin/windows/java-petstore-all.bat
index dd357cfd56d1..816919bb8fd1 100644
--- a/bin/windows/java-petstore-all.bat
+++ b/bin/windows/java-petstore-all.bat
@@ -20,4 +20,5 @@ call .\bin\windows\java-petstore-webclient.bat
call .\bin\windows\java-petstore-resteasy.bat
call .\bin\windows\java-petstore-google-api-client.bat
call .\bin\windows\java-petstore-rest-assured.bat
+call .\bin\windows\java-petstore-rest-assured-jackson.bat
call .\bin\windows\java-petstore-vertx.bat
diff --git a/bin/windows/java-petstore-rest-assured-jackson.bat b/bin/windows/java-petstore-rest-assured-jackson.bat
new file mode 100644
index 000000000000..8104df8b771d
--- /dev/null
+++ b/bin/windows/java-petstore-rest-assured-jackson.bat
@@ -0,0 +1,10 @@
+set executable=.\modules\openapi-generator-cli\target\openapi-generator-cli.jar
+
+If Not Exist %executable% (
+ mvn clean package
+)
+
+REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M
+set ags=generate -t modules\openapi-generator\src\main\resources\Java\libraries\rest-assured -i modules\openapi-generator\src\test\resources\2_0\petstore-with-fake-endpoints-models-for-testing.yaml -g java -c bin\java-petstore-rest-assured-jackson.json -o samples\client\petstore\java\rest-assured-jackson --additional-properties hideGenerationTimestamp=true,booleanGetterPrefix=is,java8=true,dateLibrary=java8,serializationLibrary=jackson,useBeanValidation=true,performBeanValidation=true,
+
+java %JAVA_OPTS% -jar %executable% %ags%
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
index 640ad1cd18ca..0868a2aa7c0e 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.gradle.mustache
@@ -101,7 +101,10 @@ ext {
{{#jackson}}
jackson_version = "2.10.3"
jackson_databind_version = "2.10.3"
- jackson_databind_nullable_version = 0.2.1
+ jackson_databind_nullable_version = "0.2.1"
+ {{#threetenbp}}
+ jackson_threetenbp_version = "2.10.0"
+ {{/threetenbp}}
{{/jackson}}
{{#gson}}
gson_version = "2.8.6"
@@ -119,13 +122,25 @@ ext {
dependencies {
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile "com.google.code.findbugs:jsr305:3.0.2"
- compile "io.rest-assured:scala-support:$rest_assured_version"
+ compile "io.rest-assured:rest-assured:$rest_assured_version"
{{#jackson}}
compile "com.fasterxml.jackson.core:jackson-core:$jackson_version"
compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
compile "com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version"
compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jackson_version"
compile "org.openapitools:jackson-databind-nullable:$jackson_databind_nullable_version"
+ {{#withXml}}
+ compile "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:$jackson_version"
+ {{/withXml}}
+ {{#joda}}
+ compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:$jackson_version"
+ {{/joda}}
+ {{#java8}}
+ compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
+ {{/java8}}
+ {{#threetenbp}}
+ compile "com.github.joschi.jackson:jackson-datatype-threetenbp:$jackson_threetenbp_version"
+ {{/threetenbp}}
{{/jackson}}
{{#gson}}
compile "io.gsonfire:gson-fire:$gson_fire_version"
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
index 77f8af4f436e..955f515fc70f 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/build.sbt.mustache
@@ -10,11 +10,26 @@ lazy val root = (project in file(".")).
resolvers += Resolver.mavenLocal,
libraryDependencies ++= Seq(
"io.swagger" % "swagger-annotations" % "1.5.21",
+ "io.rest-assured" % "rest-assured" % "4.3.0",
"io.rest-assured" % "scala-support" % "4.3.0",
+ "com.google.code.findbugs" % "jsr305" % "3.0.2",
{{#jackson}}
- "com.fasterxml.jackson.core" % "jackson-core" % "2.10.3" % "compile",
- "com.fasterxml.jackson.core" % "jackson-annotations" % "2.10.3" % "compile",
- "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.3" % "compile",
+ "com.fasterxml.jackson.core" % "jackson-core" % "2.10.3",
+ "com.fasterxml.jackson.core" % "jackson-annotations" % "2.10.3",
+ "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.3",
+ "org.openapitools" % "jackson-databind-nullable" % "0.2.1",
+ {{#withXml}}
+ "com.fasterxml.jackson.dataformat" % "jackson-dataformat-xml" % "2.10.3",
+ {{/withXml}}
+ {{#joda}}
+ "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % "2.10.3",
+ {{/joda}}
+ {{#java8}}
+ "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.10.3",
+ {{/java8}}
+ {{#threetenbp}}
+ "com.github.joschi.jackson" % "jackson-datatype-threetenbp" % "2.10.0",
+ {{/threetenbp}}
{{/jackson}}
{{#gson}}
"com.google.code.gson" % "gson" % "2.8.6",
@@ -31,7 +46,7 @@ lazy val root = (project in file(".")).
"javax.validation" % "validation-api" % "2.0.1.Final" % "compile",
{{/useBeanValidation}}
{{#performBeanValidation}}
- "org.hibernate" % "hibernate-validator" "6.0.19.Final" % "compile",
+ "org.hibernate" % "hibernate-validator" % "6.0.19.Final" % "compile",
{{/performBeanValidation}}
"junit" % "junit" % "4.13" % "test",
"com.novocode" % "junit-interface" % "0.10" % "test"
diff --git a/pom.xml b/pom.xml
index 361c55d06232..df4f81ac4e5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1320,6 +1320,7 @@
samples/client/petstore/java/resteasy
samples/client/petstore/java/google-api-client
samples/client/petstore/java/rest-assured
+ samples/client/petstore/java/rest-assured-jackson
samples/client/petstore/groovy
samples/server/petstore/jaxrs-jersey
diff --git a/samples/client/petstore/java/rest-assured-jackson/.gitignore b/samples/client/petstore/java/rest-assured-jackson/.gitignore
new file mode 100644
index 000000000000..a530464afa1b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/.gitignore
@@ -0,0 +1,21 @@
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# exclude jar for gradle wrapper
+!gradle/wrapper/*.jar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+# build files
+**/target
+target
+.gradle
+build
diff --git a/samples/client/petstore/java/rest-assured-jackson/.openapi-generator-ignore b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator-ignore
new file mode 100644
index 000000000000..7484ee590a38
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# 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 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 (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
new file mode 100644
index 000000000000..b5d898602c2c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
@@ -0,0 +1 @@
+4.3.1-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/.travis.yml b/samples/client/petstore/java/rest-assured-jackson/.travis.yml
new file mode 100644
index 000000000000..e3bdf2af1bea
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/.travis.yml
@@ -0,0 +1,22 @@
+#
+# Generated by OpenAPI Generator: https://openapi-generator.tech
+#
+# Ref: https://docs.travis-ci.com/user/languages/java/
+#
+language: java
+jdk:
+ - openjdk12
+ - openjdk11
+ - openjdk10
+ - openjdk9
+ - openjdk8
+before_install:
+ # ensure gradlew has proper permission
+ - chmod a+x ./gradlew
+script:
+ # test using maven
+ #- mvn test
+ # test using gradle
+ - gradle test
+ # test using sbt
+ # - sbt test
diff --git a/samples/client/petstore/java/rest-assured-jackson/README.md b/samples/client/petstore/java/rest-assured-jackson/README.md
new file mode 100644
index 000000000000..5ddd1aa2147f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/README.md
@@ -0,0 +1,43 @@
+# petstore-rest-assured-jackson
+
+## Requirements
+
+Building the API client library requires [Maven](https://maven.apache.org/) to be installed.
+
+## Installation & Usage
+
+To install the API client library to your local Maven repository, simply execute:
+
+```shell
+mvn install
+```
+
+To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
+
+```shell
+mvn deploy
+```
+
+Refer to the [official documentation](https://maven.apache.org/plugins/maven-deploy-plugin/usage.html) for more information.
+
+After the client library is installed/deployed, you can use it in your Maven project by adding the following to your *pom.xml*:
+
+```xml
+
+ org.openapitools
+ petstore-rest-assured-jackson
+ 1.0.0
+ compile
+
+
+```
+
+## Recommendation
+
+It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.
+
+## Author
+
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/api/openapi.yaml b/samples/client/petstore/java/rest-assured-jackson/api/openapi.yaml
new file mode 100644
index 000000000000..30aad25824c8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/api/openapi.yaml
@@ -0,0 +1,2183 @@
+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: https://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:
+ "200":
+ content: {}
+ description: successful operation
+ "405":
+ content: {}
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Add a new pet to the store
+ tags:
+ - pet
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ 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:
+ "200":
+ content: {}
+ description: successful operation
+ "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
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /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
+ x-accepts: application/json
+ /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
+ x-accepts: application/json
+ /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:
+ "200":
+ content: {}
+ description: successful operation
+ "400":
+ content: {}
+ description: Invalid pet value
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: Deletes a pet
+ tags:
+ - pet
+ x-accepts: application/json
+ 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
+ x-accepts: application/json
+ 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
+ x-contentType: application/x-www-form-urlencoded
+ x-accepts: application/json
+ /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
+ x-contentType: multipart/form-data
+ x-accepts: application/json
+ /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
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: application/json
+ /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
+ x-accepts: application/json
+ 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
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: application/json
+ /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:
+ "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:
+ format: int32
+ type: integer
+ X-Expires-After:
+ description: date in UTC when token expires
+ schema:
+ format: date-time
+ type: string
+ "400":
+ content: {}
+ description: Invalid username/password supplied
+ summary: Logs user into the system
+ tags:
+ - user
+ x-accepts: application/json
+ /user/logout:
+ get:
+ operationId: logoutUser
+ responses:
+ default:
+ content: {}
+ description: successful operation
+ summary: Logs out current logged in user session
+ tags:
+ - user
+ x-accepts: application/json
+ /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
+ x-accepts: application/json
+ 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
+ x-accepts: application/json
+ 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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: application/json
+ /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#$%^
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /fake:
+ delete:
+ description: Fake endpoint to test group parameters (optional)
+ operationId: testGroupParameters
+ parameters:
+ - description: Required String in group parameters
+ in: query
+ name: required_string_group
+ required: true
+ schema:
+ type: integer
+ - description: Required Boolean in group parameters
+ in: header
+ name: required_boolean_group
+ required: true
+ schema:
+ type: boolean
+ - description: Required Integer in group parameters
+ in: query
+ name: required_int64_group
+ required: true
+ schema:
+ format: int64
+ type: integer
+ - description: String in group parameters
+ in: query
+ name: string_group
+ schema:
+ type: integer
+ - description: Boolean in group parameters
+ in: header
+ name: boolean_group
+ schema:
+ type: boolean
+ - description: Integer in group parameters
+ in: query
+ name: int64_group
+ schema:
+ format: int64
+ type: integer
+ responses:
+ "400":
+ content: {}
+ description: Someting wrong
+ summary: Fake endpoint to test group parameters (optional)
+ tags:
+ - fake
+ x-group-parameters: true
+ x-accepts: application/json
+ 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
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ enum_form_string_array:
+ description: Form parameter enum test (string array)
+ items:
+ default: $
+ enum:
+ - '>'
+ - $
+ type: string
+ type: array
+ enum_form_string:
+ default: -efg
+ description: Form parameter enum test (string)
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ responses:
+ "400":
+ content: {}
+ description: Invalid request
+ "404":
+ content: {}
+ description: Not found
+ summary: To test enum parameters
+ tags:
+ - fake
+ x-contentType: application/x-www-form-urlencoded
+ x-accepts: application/json
+ 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
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ post:
+ description: |-
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ operationId: testEndpointParameters
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ properties:
+ integer:
+ description: None
+ format: int32
+ 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
+ byte:
+ description: None
+ format: byte
+ 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:
+ - byte
+ - 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
+ x-contentType: application/x-www-form-urlencoded
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: '*/*'
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: '*/*'
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: '*/*'
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: '*/*'
+ x-accepts: '*/*'
+ /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
+ x-contentType: application/x-www-form-urlencoded
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: param
+ x-contentType: application/json
+ x-accepts: application/json
+ /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
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /fake/create_xml_item:
+ post:
+ description: this route creates an XmlItem
+ operationId: createXmlItem
+ requestBody:
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ application/xml; charset=utf-8:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ application/xml; charset=utf-16:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml; charset=utf-8:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ text/xml; charset=utf-16:
+ schema:
+ $ref: '#/components/schemas/XmlItem'
+ description: XmlItem Body
+ required: true
+ responses:
+ "200":
+ content: {}
+ description: successful operation
+ summary: creates an XmlItem
+ tags:
+ - fake
+ x-codegen-request-body-name: XmlItem
+ x-contentType: application/xml
+ x-accepts: application/json
+ /another-fake/dummy:
+ patch:
+ description: To test special tags and operation ID starting with number
+ operationId: 123_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?
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /fake/body-with-file-schema:
+ put:
+ description: For this test, the body for this request much reference a schema
+ named `File`.
+ operationId: testBodyWithFileSchema
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileSchemaTestClass'
+ required: true
+ responses:
+ "200":
+ content: {}
+ description: Success
+ tags:
+ - fake
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /fake/test-query-paramters:
+ put:
+ description: To test the collection format in query parameters
+ operationId: testQueryParameterCollectionFormat
+ parameters:
+ - explode: false
+ in: query
+ name: pipe
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - in: query
+ name: ioutil
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ - in: query
+ name: http
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ style: spaceDelimited
+ - explode: false
+ in: query
+ name: url
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ - explode: true
+ in: query
+ name: context
+ required: true
+ schema:
+ items:
+ type: string
+ type: array
+ style: form
+ responses:
+ "200":
+ content: {}
+ description: Success
+ tags:
+ - fake
+ x-accepts: application/json
+ /fake/{petId}/uploadImageWithRequiredFile:
+ post:
+ operationId: uploadFileWithRequiredFile
+ 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
+ requiredFile:
+ description: file to upload
+ format: binary
+ type: string
+ required:
+ - requiredFile
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ description: successful operation
+ security:
+ - petstore_auth:
+ - write:pets
+ - read:pets
+ summary: uploads an image (required)
+ tags:
+ - pet
+ x-contentType: multipart/form-data
+ x-accepts: application/json
+components:
+ schemas:
+ 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
+ Category:
+ example:
+ name: default-name
+ id: 6
+ properties:
+ id:
+ format: int64
+ type: integer
+ name:
+ default: default-name
+ type: string
+ required:
+ - name
+ 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
+ Tag:
+ example:
+ name: name
+ id: 1
+ properties:
+ id:
+ format: int64
+ type: integer
+ name:
+ type: string
+ type: object
+ xml:
+ name: Tag
+ Pet:
+ example:
+ photoUrls:
+ - photoUrls
+ - photoUrls
+ name: doggie
+ id: 0
+ category:
+ name: default-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
+ ApiResponse:
+ example:
+ code: 0
+ type: type
+ message: message
+ properties:
+ code:
+ format: int32
+ type: integer
+ type:
+ type: string
+ message:
+ type: string
+ 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
+ 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
+ "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
+ ClassModel:
+ description: Model for testing model with "_class" property
+ properties:
+ _class:
+ type: string
+ type: object
+ Dog:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - $ref: '#/components/schemas/Dog_allOf'
+ Cat:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - $ref: '#/components/schemas/Cat_allOf'
+ BigCat:
+ allOf:
+ - $ref: '#/components/schemas/Cat'
+ - $ref: '#/components/schemas/BigCat_allOf'
+ Animal:
+ discriminator:
+ propertyName: className
+ properties:
+ className:
+ type: string
+ color:
+ default: red
+ type: string
+ required:
+ - className
+ type: object
+ AnimalFarm:
+ items:
+ $ref: '#/components/schemas/Animal'
+ type: array
+ 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
+ binary:
+ format: binary
+ type: string
+ date:
+ format: date
+ type: string
+ dateTime:
+ format: date-time
+ type: string
+ uuid:
+ example: 72f98069-206d-4f12-9f12-3d1e525a8e84
+ format: uuid
+ type: string
+ password:
+ format: password
+ maxLength: 64
+ minLength: 10
+ type: string
+ BigDecimal:
+ format: number
+ type: string
+ required:
+ - byte
+ - date
+ - number
+ - password
+ type: object
+ EnumClass:
+ default: -efg
+ enum:
+ - _abc
+ - -efg
+ - (xyz)
+ type: string
+ 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
+ AdditionalPropertiesClass:
+ properties:
+ map_string:
+ additionalProperties:
+ type: string
+ type: object
+ map_number:
+ additionalProperties:
+ type: number
+ type: object
+ map_integer:
+ additionalProperties:
+ type: integer
+ type: object
+ map_boolean:
+ additionalProperties:
+ type: boolean
+ type: object
+ map_array_integer:
+ additionalProperties:
+ items:
+ type: integer
+ type: array
+ type: object
+ map_array_anytype:
+ additionalProperties:
+ items:
+ properties: {}
+ type: object
+ type: array
+ type: object
+ map_map_string:
+ additionalProperties:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ map_map_anytype:
+ additionalProperties:
+ additionalProperties:
+ properties: {}
+ type: object
+ type: object
+ type: object
+ anytype_1:
+ properties: {}
+ type: object
+ anytype_2:
+ type: object
+ anytype_3:
+ properties: {}
+ type: object
+ type: object
+ AdditionalPropertiesString:
+ additionalProperties:
+ type: string
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesInteger:
+ additionalProperties:
+ type: integer
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesNumber:
+ additionalProperties:
+ type: number
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesBoolean:
+ additionalProperties:
+ type: boolean
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesArray:
+ additionalProperties:
+ items:
+ properties: {}
+ type: object
+ type: array
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesObject:
+ additionalProperties:
+ additionalProperties:
+ properties: {}
+ type: object
+ type: object
+ properties:
+ name:
+ type: string
+ type: object
+ AdditionalPropertiesAnyType:
+ additionalProperties:
+ properties: {}
+ type: object
+ properties:
+ name:
+ 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
+ List:
+ properties:
+ "123-list":
+ type: string
+ type: object
+ Client:
+ example:
+ client: client
+ properties:
+ client:
+ type: string
+ type: object
+ ReadOnlyFirst:
+ properties:
+ bar:
+ readOnly: true
+ type: string
+ baz:
+ type: string
+ type: object
+ hasOnlyReadOnly:
+ properties:
+ bar:
+ readOnly: true
+ type: string
+ foo:
+ readOnly: true
+ type: string
+ 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
+ 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
+ direct_map:
+ additionalProperties:
+ type: boolean
+ type: object
+ indirect_map:
+ additionalProperties:
+ type: boolean
+ type: object
+ type: object
+ 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
+ NumberOnly:
+ properties:
+ JustNumber:
+ type: number
+ type: object
+ ArrayOfNumberOnly:
+ properties:
+ ArrayNumber:
+ items:
+ type: number
+ type: array
+ type: object
+ ArrayOfArrayOfNumberOnly:
+ properties:
+ ArrayArrayNumber:
+ items:
+ items:
+ type: number
+ type: array
+ type: array
+ type: object
+ EnumArrays:
+ properties:
+ just_symbol:
+ enum:
+ - '>='
+ - $
+ type: string
+ array_enum:
+ items:
+ enum:
+ - fish
+ - crab
+ type: string
+ type: array
+ type: object
+ OuterEnum:
+ enum:
+ - placed
+ - approved
+ - delivered
+ type: string
+ OuterComposite:
+ example:
+ my_string: my_string
+ my_number: 0.8008281904610115
+ my_boolean: true
+ properties:
+ my_number:
+ type: number
+ my_string:
+ type: string
+ my_boolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ type: object
+ OuterNumber:
+ type: number
+ OuterString:
+ type: string
+ OuterBoolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ StringBooleanMap:
+ additionalProperties:
+ type: boolean
+ type: object
+ FileSchemaTestClass:
+ example:
+ file:
+ sourceURI: sourceURI
+ files:
+ - sourceURI: sourceURI
+ - sourceURI: sourceURI
+ properties:
+ file:
+ $ref: '#/components/schemas/File'
+ files:
+ items:
+ $ref: '#/components/schemas/File'
+ type: array
+ type: object
+ File:
+ description: Must be named `File` for test.
+ example:
+ sourceURI: sourceURI
+ properties:
+ sourceURI:
+ description: Test capitalization
+ type: string
+ type: object
+ TypeHolderDefault:
+ properties:
+ string_item:
+ default: what
+ type: string
+ number_item:
+ type: number
+ integer_item:
+ type: integer
+ bool_item:
+ default: true
+ type: boolean
+ array_item:
+ items:
+ type: integer
+ type: array
+ required:
+ - array_item
+ - bool_item
+ - integer_item
+ - number_item
+ - string_item
+ type: object
+ TypeHolderExample:
+ properties:
+ string_item:
+ example: what
+ type: string
+ number_item:
+ example: 1.234
+ type: number
+ float_item:
+ example: 1.234
+ format: float
+ type: number
+ integer_item:
+ example: -2
+ type: integer
+ bool_item:
+ example: true
+ type: boolean
+ array_item:
+ example:
+ - 0
+ - 1
+ - 2
+ - 3
+ items:
+ type: integer
+ type: array
+ required:
+ - array_item
+ - bool_item
+ - float_item
+ - integer_item
+ - number_item
+ - string_item
+ type: object
+ XmlItem:
+ properties:
+ attribute_string:
+ example: string
+ type: string
+ xml:
+ attribute: true
+ attribute_number:
+ example: 1.234
+ type: number
+ xml:
+ attribute: true
+ attribute_integer:
+ example: -2
+ type: integer
+ xml:
+ attribute: true
+ attribute_boolean:
+ example: true
+ type: boolean
+ xml:
+ attribute: true
+ wrapped_array:
+ items:
+ type: integer
+ type: array
+ xml:
+ wrapped: true
+ name_string:
+ example: string
+ type: string
+ xml:
+ name: xml_name_string
+ name_number:
+ example: 1.234
+ type: number
+ xml:
+ name: xml_name_number
+ name_integer:
+ example: -2
+ type: integer
+ xml:
+ name: xml_name_integer
+ name_boolean:
+ example: true
+ type: boolean
+ xml:
+ name: xml_name_boolean
+ name_array:
+ items:
+ type: integer
+ xml:
+ name: xml_name_array_item
+ type: array
+ name_wrapped_array:
+ items:
+ type: integer
+ xml:
+ name: xml_name_wrapped_array_item
+ type: array
+ xml:
+ name: xml_name_wrapped_array
+ wrapped: true
+ prefix_string:
+ example: string
+ type: string
+ xml:
+ prefix: ab
+ prefix_number:
+ example: 1.234
+ type: number
+ xml:
+ prefix: cd
+ prefix_integer:
+ example: -2
+ type: integer
+ xml:
+ prefix: ef
+ prefix_boolean:
+ example: true
+ type: boolean
+ xml:
+ prefix: gh
+ prefix_array:
+ items:
+ type: integer
+ xml:
+ prefix: ij
+ type: array
+ prefix_wrapped_array:
+ items:
+ type: integer
+ xml:
+ prefix: mn
+ type: array
+ xml:
+ prefix: kl
+ wrapped: true
+ namespace_string:
+ example: string
+ type: string
+ xml:
+ namespace: http://a.com/schema
+ namespace_number:
+ example: 1.234
+ type: number
+ xml:
+ namespace: http://b.com/schema
+ namespace_integer:
+ example: -2
+ type: integer
+ xml:
+ namespace: http://c.com/schema
+ namespace_boolean:
+ example: true
+ type: boolean
+ xml:
+ namespace: http://d.com/schema
+ namespace_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ type: array
+ namespace_wrapped_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ type: array
+ xml:
+ namespace: http://f.com/schema
+ wrapped: true
+ prefix_ns_string:
+ example: string
+ type: string
+ xml:
+ namespace: http://a.com/schema
+ prefix: a
+ prefix_ns_number:
+ example: 1.234
+ type: number
+ xml:
+ namespace: http://b.com/schema
+ prefix: b
+ prefix_ns_integer:
+ example: -2
+ type: integer
+ xml:
+ namespace: http://c.com/schema
+ prefix: c
+ prefix_ns_boolean:
+ example: true
+ type: boolean
+ xml:
+ namespace: http://d.com/schema
+ prefix: d
+ prefix_ns_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://e.com/schema
+ prefix: e
+ type: array
+ prefix_ns_wrapped_array:
+ items:
+ type: integer
+ xml:
+ namespace: http://g.com/schema
+ prefix: g
+ type: array
+ xml:
+ namespace: http://f.com/schema
+ prefix: f
+ wrapped: true
+ type: object
+ xml:
+ namespace: http://a.com/schema
+ prefix: pre
+ Dog_allOf:
+ properties:
+ breed:
+ type: string
+ Cat_allOf:
+ properties:
+ declawed:
+ type: boolean
+ BigCat_allOf:
+ properties:
+ kind:
+ enum:
+ - lions
+ - tigers
+ - leopards
+ - jaguars
+ type: string
+ 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
+ api_key:
+ in: header
+ name: api_key
+ type: apiKey
+ api_key_query:
+ in: query
+ name: api_key_query
+ type: apiKey
+ http_basic_test:
+ scheme: basic
+ type: http
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/build.gradle b/samples/client/petstore/java/rest-assured-jackson/build.gradle
new file mode 100644
index 000000000000..ca4ac63c3ec8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/build.gradle
@@ -0,0 +1,121 @@
+apply plugin: 'idea'
+apply plugin: 'eclipse'
+
+group = 'org.openapitools'
+version = '1.0.0'
+
+buildscript {
+ repositories {
+ maven { url "https://repo1.maven.org/maven2" }
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:1.5.+'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
+ }
+}
+
+repositories {
+ jcenter()
+}
+
+
+if(hasProperty('target') && target == 'android') {
+
+ apply plugin: 'com.android.library'
+ apply plugin: 'com.github.dcendents.android-maven'
+
+ android {
+ compileSdkVersion 23
+ buildToolsVersion '23.0.2'
+ defaultConfig {
+ minSdkVersion 14
+ targetSdkVersion 22
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ // Rename the aar correctly
+ libraryVariants.all { variant ->
+ variant.outputs.each { output ->
+ def outputFile = output.outputFile
+ if (outputFile != null && outputFile.name.endsWith('.aar')) {
+ def fileName = "${project.name}-${variant.baseName}-${version}.aar"
+ output.outputFile = new File(outputFile.parent, fileName)
+ }
+ }
+ }
+
+ dependencies {
+ provided 'javax.annotation:jsr250-api:1.0'
+ }
+ }
+
+ afterEvaluate {
+ android.libraryVariants.all { variant ->
+ def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
+ task.description = "Create jar artifact for ${variant.name}"
+ task.dependsOn variant.javaCompile
+ task.from variant.javaCompile.destinationDir
+ task.destinationDir = project.file("${project.buildDir}/outputs/jar")
+ task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
+ artifacts.add('archives', task);
+ }
+ }
+
+ task sourcesJar(type: Jar) {
+ from android.sourceSets.main.java.srcDirs
+ classifier = 'sources'
+ }
+
+ artifacts {
+ archives sourcesJar
+ }
+
+} else {
+
+ apply plugin: 'java'
+ apply plugin: 'maven'
+
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+
+ install {
+ repositories.mavenInstaller {
+ pom.artifactId = 'petstore-rest-assured-jackson'
+ }
+ }
+
+ task execute(type:JavaExec) {
+ main = System.getProperty('mainClass')
+ classpath = sourceSets.main.runtimeClasspath
+ }
+}
+
+ext {
+ swagger_annotations_version = "1.5.21"
+ rest_assured_version = "4.3.0"
+ junit_version = "4.13"
+ jackson_version = "2.10.3"
+ jackson_databind_version = "2.10.3"
+ jackson_databind_nullable_version = "0.2.1"
+ okio_version = "1.17.5"
+}
+
+dependencies {
+ compile "io.swagger:swagger-annotations:$swagger_annotations_version"
+ compile "com.google.code.findbugs:jsr305:3.0.2"
+ compile "io.rest-assured:rest-assured:$rest_assured_version"
+ compile "com.fasterxml.jackson.core:jackson-core:$jackson_version"
+ compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
+ compile "com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version"
+ compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jackson_version"
+ compile "org.openapitools:jackson-databind-nullable:$jackson_databind_nullable_version"
+ compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
+ compile "com.squareup.okio:okio:$okio_version"
+ compile "javax.validation:validation-api:2.0.1.Final"
+ compile "org.hibernate:hibernate-validator:6.0.19.Final"
+ testCompile "junit:junit:$junit_version"
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/build.sbt b/samples/client/petstore/java/rest-assured-jackson/build.sbt
new file mode 100644
index 000000000000..8f167f16a2f3
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/build.sbt
@@ -0,0 +1,27 @@
+lazy val root = (project in file(".")).
+ settings(
+ organization := "org.openapitools",
+ name := "petstore-rest-assured-jackson",
+ version := "1.0.0",
+ scalaVersion := "2.11.4",
+ scalacOptions ++= Seq("-feature"),
+ javacOptions in compile ++= Seq("-Xlint:deprecation"),
+ publishArtifact in (Compile, packageDoc) := false,
+ resolvers += Resolver.mavenLocal,
+ libraryDependencies ++= Seq(
+ "io.swagger" % "swagger-annotations" % "1.5.21",
+ "io.rest-assured" % "rest-assured" % "4.3.0",
+ "io.rest-assured" % "scala-support" % "4.3.0",
+ "com.google.code.findbugs" % "jsr305" % "3.0.2",
+ "com.fasterxml.jackson.core" % "jackson-core" % "2.10.3",
+ "com.fasterxml.jackson.core" % "jackson-annotations" % "2.10.3",
+ "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.3",
+ "org.openapitools" % "jackson-databind-nullable" % "0.2.1",
+ "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.10.3",
+ "com.squareup.okio" % "okio" % "1.17.5" % "compile",
+ "javax.validation" % "validation-api" % "2.0.1.Final" % "compile",
+ "org.hibernate" % "hibernate-validator" % "6.0.19.Final" % "compile",
+ "junit" % "junit" % "4.13" % "test",
+ "com.novocode" % "junit-interface" % "0.10" % "test"
+ )
+ )
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesAnyType.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesAnyType.md
new file mode 100644
index 000000000000..87b468bb7ca3
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesAnyType.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesAnyType
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesArray.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesArray.md
new file mode 100644
index 000000000000..cb7fe9b3903d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesArray.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesArray
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesBoolean.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesBoolean.md
new file mode 100644
index 000000000000..6b53e7ba73a1
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesBoolean.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesBoolean
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesClass.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesClass.md
new file mode 100644
index 000000000000..36e181620016
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesClass.md
@@ -0,0 +1,22 @@
+
+
+# AdditionalPropertiesClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapString** | **Map<String, String>** | | [optional]
+**mapNumber** | [**Map<String, BigDecimal>**](BigDecimal.md) | | [optional]
+**mapInteger** | **Map<String, Integer>** | | [optional]
+**mapBoolean** | **Map<String, Boolean>** | | [optional]
+**mapArrayInteger** | [**Map<String, List<Integer>>**](List.md) | | [optional]
+**mapArrayAnytype** | [**Map<String, List<Object>>**](List.md) | | [optional]
+**mapMapString** | [**Map<String, Map<String, String>>**](Map.md) | | [optional]
+**mapMapAnytype** | [**Map<String, Map<String, Object>>**](Map.md) | | [optional]
+**anytype1** | [**Object**](.md) | | [optional]
+**anytype2** | [**Object**](.md) | | [optional]
+**anytype3** | [**Object**](.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesInteger.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesInteger.md
new file mode 100644
index 000000000000..d2ed7fb1a460
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesInteger.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesInteger
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesNumber.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesNumber.md
new file mode 100644
index 000000000000..53f6e81e7176
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesNumber.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesNumber
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesObject.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesObject.md
new file mode 100644
index 000000000000..98ac8d2e5fe0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesObject.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesObject
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesString.md b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesString.md
new file mode 100644
index 000000000000..d7970cdfe190
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesString.md
@@ -0,0 +1,12 @@
+
+
+# AdditionalPropertiesString
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Animal.md b/samples/client/petstore/java/rest-assured-jackson/docs/Animal.md
new file mode 100644
index 000000000000..c8e18ae55e4f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Animal.md
@@ -0,0 +1,13 @@
+
+
+# Animal
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**className** | **String** | |
+**color** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/AnotherFakeApi.md b/samples/client/petstore/java/rest-assured-jackson/docs/AnotherFakeApi.md
new file mode 100644
index 000000000000..8763b590990a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/AnotherFakeApi.md
@@ -0,0 +1,51 @@
+# AnotherFakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**call123testSpecialTags**](AnotherFakeApi.md#call123testSpecialTags) | **PATCH** /another-fake/dummy | To test special tags
+
+
+
+# **call123testSpecialTags**
+> Client call123testSpecialTags(body)
+
+To test special tags
+
+To test special tags and operation ID starting with number
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+AnotherFakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).anotherFake();
+
+api.call123testSpecialTags()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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/java/rest-assured-jackson/docs/ArrayOfArrayOfNumberOnly.md b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfArrayOfNumberOnly.md
new file mode 100644
index 000000000000..a48aa23e78ee
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfArrayOfNumberOnly.md
@@ -0,0 +1,12 @@
+
+
+# ArrayOfArrayOfNumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayArrayNumber** | [**List<List<BigDecimal>>**](List.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfNumberOnly.md b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfNumberOnly.md
new file mode 100644
index 000000000000..fa2909211a07
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfNumberOnly.md
@@ -0,0 +1,12 @@
+
+
+# ArrayOfNumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayNumber** | [**List<BigDecimal>**](BigDecimal.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/ArrayTest.md b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayTest.md
new file mode 100644
index 000000000000..9ad1c9814a51
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ArrayTest.md
@@ -0,0 +1,14 @@
+
+
+# ArrayTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayOfString** | **List<String>** | | [optional]
+**arrayArrayOfInteger** | [**List<List<Long>>**](List.md) | | [optional]
+**arrayArrayOfModel** | [**List<List<ReadOnlyFirst>>**](List.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/BigCat.md b/samples/client/petstore/java/rest-assured-jackson/docs/BigCat.md
new file mode 100644
index 000000000000..8a075304abf8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/BigCat.md
@@ -0,0 +1,23 @@
+
+
+# BigCat
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**kind** | [**KindEnum**](#KindEnum) | | [optional]
+
+
+
+## Enum: KindEnum
+
+Name | Value
+---- | -----
+LIONS | "lions"
+TIGERS | "tigers"
+LEOPARDS | "leopards"
+JAGUARS | "jaguars"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/BigCatAllOf.md b/samples/client/petstore/java/rest-assured-jackson/docs/BigCatAllOf.md
new file mode 100644
index 000000000000..21177dbf089d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/BigCatAllOf.md
@@ -0,0 +1,23 @@
+
+
+# BigCatAllOf
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**kind** | [**KindEnum**](#KindEnum) | | [optional]
+
+
+
+## Enum: KindEnum
+
+Name | Value
+---- | -----
+LIONS | "lions"
+TIGERS | "tigers"
+LEOPARDS | "leopards"
+JAGUARS | "jaguars"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Capitalization.md b/samples/client/petstore/java/rest-assured-jackson/docs/Capitalization.md
new file mode 100644
index 000000000000..7b73c40b5545
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Capitalization.md
@@ -0,0 +1,17 @@
+
+
+# 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/java/rest-assured/docs/StringBooleanMap.md b/samples/client/petstore/java/rest-assured-jackson/docs/Cat.md
similarity index 68%
rename from samples/client/petstore/java/rest-assured/docs/StringBooleanMap.md
rename to samples/client/petstore/java/rest-assured-jackson/docs/Cat.md
index cac7afc80e07..39c2f864df88 100644
--- a/samples/client/petstore/java/rest-assured/docs/StringBooleanMap.md
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Cat.md
@@ -1,9 +1,12 @@
-# StringBooleanMap
+
+# Cat
## Properties
+
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**declawed** | **Boolean** | | [optional]
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/CatAllOf.md b/samples/client/petstore/java/rest-assured-jackson/docs/CatAllOf.md
new file mode 100644
index 000000000000..1098fd900c5d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/CatAllOf.md
@@ -0,0 +1,12 @@
+
+
+# CatAllOf
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**declawed** | **Boolean** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Category.md b/samples/client/petstore/java/rest-assured-jackson/docs/Category.md
new file mode 100644
index 000000000000..613ea9f7ee24
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Category.md
@@ -0,0 +1,13 @@
+
+
+# Category
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | | [optional]
+**name** | **String** | |
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/ClassModel.md b/samples/client/petstore/java/rest-assured-jackson/docs/ClassModel.md
new file mode 100644
index 000000000000..d5453c20133a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ClassModel.md
@@ -0,0 +1,13 @@
+
+
+# ClassModel
+
+Model for testing model with \"_class\" property
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**propertyClass** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Client.md b/samples/client/petstore/java/rest-assured-jackson/docs/Client.md
new file mode 100644
index 000000000000..228df492383f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Client.md
@@ -0,0 +1,12 @@
+
+
+# Client
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**client** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured/docs/AnimalFarm.md b/samples/client/petstore/java/rest-assured-jackson/docs/Dog.md
similarity index 70%
rename from samples/client/petstore/java/rest-assured/docs/AnimalFarm.md
rename to samples/client/petstore/java/rest-assured-jackson/docs/Dog.md
index c7c7f1ddcce6..73cedf2bc919 100644
--- a/samples/client/petstore/java/rest-assured/docs/AnimalFarm.md
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Dog.md
@@ -1,9 +1,12 @@
-# AnimalFarm
+
+# Dog
## Properties
+
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**breed** | **String** | | [optional]
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/DogAllOf.md b/samples/client/petstore/java/rest-assured-jackson/docs/DogAllOf.md
new file mode 100644
index 000000000000..cbeb9e9a22df
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/DogAllOf.md
@@ -0,0 +1,12 @@
+
+
+# DogAllOf
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**breed** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/EnumArrays.md b/samples/client/petstore/java/rest-assured-jackson/docs/EnumArrays.md
new file mode 100644
index 000000000000..869b7a6c066d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/EnumArrays.md
@@ -0,0 +1,31 @@
+
+
+# EnumArrays
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justSymbol** | [**JustSymbolEnum**](#JustSymbolEnum) | | [optional]
+**arrayEnum** | [**List<ArrayEnumEnum>**](#List<ArrayEnumEnum>) | | [optional]
+
+
+
+## Enum: JustSymbolEnum
+
+Name | Value
+---- | -----
+GREATER_THAN_OR_EQUAL_TO | ">="
+DOLLAR | "$"
+
+
+
+## Enum: List<ArrayEnumEnum>
+
+Name | Value
+---- | -----
+FISH | "fish"
+CRAB | "crab"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/EnumClass.md b/samples/client/petstore/java/rest-assured-jackson/docs/EnumClass.md
new file mode 100644
index 000000000000..b314590a7591
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/EnumClass.md
@@ -0,0 +1,15 @@
+
+
+# EnumClass
+
+## Enum
+
+
+* `_ABC` (value: `"_abc"`)
+
+* `_EFG` (value: `"-efg"`)
+
+* `_XYZ_` (value: `"(xyz)"`)
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/EnumTest.md b/samples/client/petstore/java/rest-assured-jackson/docs/EnumTest.md
new file mode 100644
index 000000000000..61eb95f22fe9
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/EnumTest.md
@@ -0,0 +1,54 @@
+
+
+# EnumTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enumString** | [**EnumStringEnum**](#EnumStringEnum) | | [optional]
+**enumStringRequired** | [**EnumStringRequiredEnum**](#EnumStringRequiredEnum) | |
+**enumInteger** | [**EnumIntegerEnum**](#EnumIntegerEnum) | | [optional]
+**enumNumber** | [**EnumNumberEnum**](#EnumNumberEnum) | | [optional]
+**outerEnum** | [**OuterEnum**](OuterEnum.md) | | [optional]
+
+
+
+## Enum: EnumStringEnum
+
+Name | Value
+---- | -----
+UPPER | "UPPER"
+LOWER | "lower"
+EMPTY | ""
+
+
+
+## Enum: EnumStringRequiredEnum
+
+Name | Value
+---- | -----
+UPPER | "UPPER"
+LOWER | "lower"
+EMPTY | ""
+
+
+
+## Enum: EnumIntegerEnum
+
+Name | Value
+---- | -----
+NUMBER_1 | 1
+NUMBER_MINUS_1 | -1
+
+
+
+## Enum: EnumNumberEnum
+
+Name | Value
+---- | -----
+NUMBER_1_DOT_1 | 1.1
+NUMBER_MINUS_1_DOT_2 | -1.2
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/FakeApi.md b/samples/client/petstore/java/rest-assured-jackson/docs/FakeApi.md
new file mode 100644
index 000000000000..075077996e76
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/FakeApi.md
@@ -0,0 +1,641 @@
+# FakeApi
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**createXmlItem**](FakeApi.md#createXmlItem) | **POST** /fake/create_xml_item | creates an XmlItem
+[**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 |
+[**testBodyWithFileSchema**](FakeApi.md#testBodyWithFileSchema) | **PUT** /fake/body-with-file-schema |
+[**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
+[**testGroupParameters**](FakeApi.md#testGroupParameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional)
+[**testInlineAdditionalProperties**](FakeApi.md#testInlineAdditionalProperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+[**testJsonFormData**](FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
+[**testQueryParameterCollectionFormat**](FakeApi.md#testQueryParameterCollectionFormat) | **PUT** /fake/test-query-paramters |
+
+
+
+# **createXmlItem**
+> createXmlItem(xmlItem)
+
+creates an XmlItem
+
+this route creates an XmlItem
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.createXmlItem()
+ .body(xmlItem).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xmlItem** | [**XmlItem**](XmlItem.md)| XmlItem Body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/xml, application/xml; charset=utf-8, application/xml; charset=utf-16, text/xml, text/xml; charset=utf-8, text/xml; charset=utf-16
+ - **Accept**: Not defined
+
+
+# **fakeOuterBooleanSerialize**
+> Boolean fakeOuterBooleanSerialize(body)
+
+
+
+Test serialization of outer boolean types
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.fakeOuterBooleanSerialize().execute(r -> r.prettyPeek());
+```
+
+### 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(body)
+
+
+
+Test serialization of object with outer number type
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.fakeOuterCompositeSerialize().execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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**
+> BigDecimal fakeOuterNumberSerialize(body)
+
+
+
+Test serialization of outer number types
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.fakeOuterNumberSerialize().execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **BigDecimal**| Input number as post body | [optional]
+
+### Return type
+
+[**BigDecimal**](BigDecimal.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+
+# **fakeOuterStringSerialize**
+> String fakeOuterStringSerialize(body)
+
+
+
+Test serialization of outer string types
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.fakeOuterStringSerialize().execute(r -> r.prettyPeek());
+```
+
+### 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**: */*
+
+
+# **testBodyWithFileSchema**
+> testBodyWithFileSchema(body)
+
+
+
+For this test, the body for this request much reference a schema named `File`.
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testBodyWithFileSchema()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**FileSchemaTestClass**](FileSchemaTestClass.md)| |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+
+# **testBodyWithQueryParams**
+> testBodyWithQueryParams(query, body)
+
+
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testBodyWithQueryParams()
+ .queryQuery(query)
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **String**| |
+ **body** | [**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)
+
+To test \"client\" model
+
+To test \"client\" model
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testClientModel()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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, integer, int32, int64, _float, string, binary, date, dateTime, password, paramCallback)
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testEndpointParameters()
+ .numberForm(number)
+ ._doubleForm(_double)
+ .patternWithoutDelimiterForm(patternWithoutDelimiter)
+ ._byteForm(_byte).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **number** | **BigDecimal**| None |
+ **_double** | **Double**| None |
+ **patternWithoutDelimiter** | **String**| None |
+ **_byte** | **byte[]**| None |
+ **integer** | **Integer**| None | [optional]
+ **int32** | **Integer**| None | [optional]
+ **int64** | **Long**| None | [optional]
+ **_float** | **Float**| None | [optional]
+ **string** | **String**| None | [optional]
+ **binary** | **File**| None | [optional]
+ **date** | **LocalDate**| None | [optional]
+ **dateTime** | **OffsetDateTime**| None | [optional]
+ **password** | **String**| None | [optional]
+ **paramCallback** | **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(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumFormStringArray, enumFormString)
+
+To test enum parameters
+
+To test enum parameters
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testEnumParameters().execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **enumHeaderStringArray** | [**List<String>**](String.md)| Header parameter enum test (string array) | [optional] [default to new ArrayList<>()] [enum: >, $]
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to -efg] [enum: _abc, -efg, (xyz)]
+ **enumQueryStringArray** | [**List<String>**](String.md)| Query parameter enum test (string array) | [optional] [default to new ArrayList<>()] [enum: >, $]
+ **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to -efg] [enum: _abc, -efg, (xyz)]
+ **enumQueryInteger** | **Integer**| Query parameter enum test (double) | [optional] [enum: 1, -2]
+ **enumQueryDouble** | **Double**| Query parameter enum test (double) | [optional] [enum: 1.1, -1.2]
+ **enumFormStringArray** | [**List<String>**](String.md)| Form parameter enum test (string array) | [optional] [default to $] [enum: >, $]
+ **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to -efg] [enum: _abc, -efg, (xyz)]
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+
+# **testGroupParameters**
+> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group)
+
+Fake endpoint to test group parameters (optional)
+
+Fake endpoint to test group parameters (optional)
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testGroupParameters()
+ .requiredStringGroupQuery(requiredStringGroup)
+ .requiredBooleanGroupHeader(requiredBooleanGroup)
+ .requiredInt64GroupQuery(requiredInt64Group).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **requiredStringGroup** | **Integer**| Required String in group parameters |
+ **requiredBooleanGroup** | **Boolean**| Required Boolean in group parameters |
+ **requiredInt64Group** | **Long**| Required Integer in group parameters |
+ **stringGroup** | **Integer**| String in group parameters | [optional]
+ **booleanGroup** | **Boolean**| Boolean in group parameters | [optional]
+ **int64Group** | **Long**| Integer in group parameters | [optional]
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+
+# **testInlineAdditionalProperties**
+> testInlineAdditionalProperties(param)
+
+test inline additionalProperties
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testInlineAdditionalProperties()
+ .body(param).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **param** | [**Map<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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testJsonFormData()
+ .paramForm(param)
+ .param2Form(param2).execute(r -> r.prettyPeek());
+```
+
+### 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
+
+
+# **testQueryParameterCollectionFormat**
+> testQueryParameterCollectionFormat(pipe, ioutil, http, url, context)
+
+
+
+To test the collection format in query parameters
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+
+api.testQueryParameterCollectionFormat()
+ .pipeQuery(pipe)
+ .ioutilQuery(ioutil)
+ .httpQuery(http)
+ .urlQuery(url)
+ .contextQuery(context).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pipe** | [**List<String>**](String.md)| | [default to new ArrayList<>()]
+ **ioutil** | [**List<String>**](String.md)| | [default to new ArrayList<>()]
+ **http** | [**List<String>**](String.md)| | [default to new ArrayList<>()]
+ **url** | [**List<String>**](String.md)| | [default to new ArrayList<>()]
+ **context** | [**List<String>**](String.md)| | [default to new ArrayList<>()]
+
+### 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/java/rest-assured-jackson/docs/FakeClassnameTags123Api.md b/samples/client/petstore/java/rest-assured-jackson/docs/FakeClassnameTags123Api.md
new file mode 100644
index 000000000000..7aa78d36b357
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/FakeClassnameTags123Api.md
@@ -0,0 +1,51 @@
+# 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(body)
+
+To test class name in snake case
+
+To test class name in snake case
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+FakeClassnameTags123Api api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).fakeClassnameTags123();
+
+api.testClassname()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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/java/rest-assured-jackson/docs/FileSchemaTestClass.md b/samples/client/petstore/java/rest-assured-jackson/docs/FileSchemaTestClass.md
new file mode 100644
index 000000000000..3a95e27d7c09
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/FileSchemaTestClass.md
@@ -0,0 +1,13 @@
+
+
+# FileSchemaTestClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**file** | [**java.io.File**](java.io.File.md) | | [optional]
+**files** | [**List<java.io.File>**](java.io.File.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/FormatTest.md b/samples/client/petstore/java/rest-assured-jackson/docs/FormatTest.md
new file mode 100644
index 000000000000..d138e921902a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/FormatTest.md
@@ -0,0 +1,25 @@
+
+
+# FormatTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**integer** | **Integer** | | [optional]
+**int32** | **Integer** | | [optional]
+**int64** | **Long** | | [optional]
+**number** | [**BigDecimal**](BigDecimal.md) | |
+**_float** | **Float** | | [optional]
+**_double** | **Double** | | [optional]
+**string** | **String** | | [optional]
+**_byte** | **byte[]** | |
+**binary** | [**File**](File.md) | | [optional]
+**date** | [**LocalDate**](LocalDate.md) | |
+**dateTime** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional]
+**uuid** | [**UUID**](UUID.md) | | [optional]
+**password** | **String** | |
+**bigDecimal** | [**BigDecimal**](BigDecimal.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/HasOnlyReadOnly.md b/samples/client/petstore/java/rest-assured-jackson/docs/HasOnlyReadOnly.md
new file mode 100644
index 000000000000..4795b40ef65e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/HasOnlyReadOnly.md
@@ -0,0 +1,13 @@
+
+
+# HasOnlyReadOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** | | [optional] [readonly]
+**foo** | **String** | | [optional] [readonly]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/MapTest.md b/samples/client/petstore/java/rest-assured-jackson/docs/MapTest.md
new file mode 100644
index 000000000000..c35c3cf2c0be
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/MapTest.md
@@ -0,0 +1,24 @@
+
+
+# MapTest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapMapOfString** | [**Map<String, Map<String, String>>**](Map.md) | | [optional]
+**mapOfEnumString** | [**Map<String, InnerEnum>**](#Map<String, InnerEnum>) | | [optional]
+**directMap** | **Map<String, Boolean>** | | [optional]
+**indirectMap** | **Map<String, Boolean>** | | [optional]
+
+
+
+## Enum: Map<String, InnerEnum>
+
+Name | Value
+---- | -----
+UPPER | "UPPER"
+LOWER | "lower"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/client/petstore/java/rest-assured-jackson/docs/MixedPropertiesAndAdditionalPropertiesClass.md
new file mode 100644
index 000000000000..3dc283ae4936
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -0,0 +1,14 @@
+
+
+# MixedPropertiesAndAdditionalPropertiesClass
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | [**UUID**](UUID.md) | | [optional]
+**dateTime** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional]
+**map** | [**Map<String, Animal>**](Animal.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Model200Response.md b/samples/client/petstore/java/rest-assured-jackson/docs/Model200Response.md
new file mode 100644
index 000000000000..f9928d70622c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Model200Response.md
@@ -0,0 +1,14 @@
+
+
+# Model200Response
+
+Model for testing model name starting with number
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **Integer** | | [optional]
+**propertyClass** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/ModelApiResponse.md b/samples/client/petstore/java/rest-assured-jackson/docs/ModelApiResponse.md
new file mode 100644
index 000000000000..14fb7f1ed27b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ModelApiResponse.md
@@ -0,0 +1,14 @@
+
+
+# ModelApiResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **Integer** | | [optional]
+**type** | **String** | | [optional]
+**message** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/ModelReturn.md b/samples/client/petstore/java/rest-assured-jackson/docs/ModelReturn.md
new file mode 100644
index 000000000000..5005d4b72392
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ModelReturn.md
@@ -0,0 +1,13 @@
+
+
+# ModelReturn
+
+Model for testing reserved words
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**_return** | **Integer** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Name.md b/samples/client/petstore/java/rest-assured-jackson/docs/Name.md
new file mode 100644
index 000000000000..b815a0b4c994
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Name.md
@@ -0,0 +1,16 @@
+
+
+# Name
+
+Model for testing model name same as property name
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **Integer** | |
+**snakeCase** | **Integer** | | [optional] [readonly]
+**property** | **String** | | [optional]
+**_123number** | **Integer** | | [optional] [readonly]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/NumberOnly.md b/samples/client/petstore/java/rest-assured-jackson/docs/NumberOnly.md
new file mode 100644
index 000000000000..1c12b6adf3bd
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/NumberOnly.md
@@ -0,0 +1,12 @@
+
+
+# NumberOnly
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Order.md b/samples/client/petstore/java/rest-assured-jackson/docs/Order.md
new file mode 100644
index 000000000000..409fc4cc9616
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Order.md
@@ -0,0 +1,27 @@
+
+
+# Order
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | | [optional]
+**petId** | **Long** | | [optional]
+**quantity** | **Integer** | | [optional]
+**shipDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional]
+**status** | [**StatusEnum**](#StatusEnum) | Order Status | [optional]
+**complete** | **Boolean** | | [optional]
+
+
+
+## Enum: StatusEnum
+
+Name | Value
+---- | -----
+PLACED | "placed"
+APPROVED | "approved"
+DELIVERED | "delivered"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/OuterComposite.md b/samples/client/petstore/java/rest-assured-jackson/docs/OuterComposite.md
new file mode 100644
index 000000000000..e06292218847
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/OuterComposite.md
@@ -0,0 +1,14 @@
+
+
+# OuterComposite
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**myNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**myString** | **String** | | [optional]
+**myBoolean** | **Boolean** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/OuterEnum.md b/samples/client/petstore/java/rest-assured-jackson/docs/OuterEnum.md
new file mode 100644
index 000000000000..1f9b723eb8e7
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/OuterEnum.md
@@ -0,0 +1,15 @@
+
+
+# OuterEnum
+
+## Enum
+
+
+* `PLACED` (value: `"placed"`)
+
+* `APPROVED` (value: `"approved"`)
+
+* `DELIVERED` (value: `"delivered"`)
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/Pet.md b/samples/client/petstore/java/rest-assured-jackson/docs/Pet.md
new file mode 100644
index 000000000000..37ac007b7931
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Pet.md
@@ -0,0 +1,27 @@
+
+
+# Pet
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | | [optional]
+**category** | [**Category**](Category.md) | | [optional]
+**name** | **String** | |
+**photoUrls** | **List<String>** | |
+**tags** | [**List<Tag>**](Tag.md) | | [optional]
+**status** | [**StatusEnum**](#StatusEnum) | pet status in the store | [optional]
+
+
+
+## Enum: StatusEnum
+
+Name | Value
+---- | -----
+AVAILABLE | "available"
+PENDING | "pending"
+SOLD | "sold"
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/PetApi.md b/samples/client/petstore/java/rest-assured-jackson/docs/PetApi.md
new file mode 100644
index 000000000000..c2aaadd88c76
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/PetApi.md
@@ -0,0 +1,391 @@
+# 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
+[**uploadFileWithRequiredFile**](PetApi.md#uploadFileWithRequiredFile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+
+
+
+# **addPet**
+> addPet(body)
+
+Add a new pet to the store
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.addPet()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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, apiKey)
+
+Deletes a pet
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.deletePet()
+ .petIdPath(petId).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Long**| 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**
+> List<Pet> findPetsByStatus(status)
+
+Finds Pets by status
+
+Multiple status values can be provided with comma separated strings
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.findPetsByStatus()
+ .statusQuery(status).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **status** | [**List<String>**](String.md)| Status values that need to be considered for filter | [default to new ArrayList<>()] [enum: available, pending, sold]
+
+### Return type
+
+[**List<Pet>**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+
+# **findPetsByTags**
+> List<Pet> findPetsByTags(tags)
+
+Finds Pets by tags
+
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.findPetsByTags()
+ .tagsQuery(tags).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tags** | [**List<String>**](String.md)| Tags to filter by | [default to new ArrayList<>()]
+
+### Return type
+
+[**List<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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.getPetById()
+ .petIdPath(petId).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Long**| 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(body)
+
+Update an existing pet
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.updatePet()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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, name, status)
+
+Updates a pet in the store with form data
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.updatePetWithForm()
+ .petIdPath(petId).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Long**| 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**
+> ModelApiResponse uploadFile(petId, additionalMetadata, file)
+
+uploads an image
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.uploadFile()
+ .petIdPath(petId).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Long**| ID of pet to update |
+ **additionalMetadata** | **String**| Additional data to pass to server | [optional]
+ **file** | **File**| file to upload | [optional]
+
+### Return type
+
+[**ModelApiResponse**](ModelApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+
+# **uploadFileWithRequiredFile**
+> ModelApiResponse uploadFileWithRequiredFile(petId, requiredFile, additionalMetadata)
+
+uploads an image (required)
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+PetApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+
+api.uploadFileWithRequiredFile()
+ .petIdPath(petId)
+ .requiredFileMultiPart(requiredFile).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **Long**| ID of pet to update |
+ **requiredFile** | **File**| file to upload |
+ **additionalMetadata** | **String**| Additional data to pass to server | [optional]
+
+### Return type
+
+[**ModelApiResponse**](ModelApiResponse.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/java/rest-assured-jackson/docs/ReadOnlyFirst.md b/samples/client/petstore/java/rest-assured-jackson/docs/ReadOnlyFirst.md
new file mode 100644
index 000000000000..a692499dc661
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/ReadOnlyFirst.md
@@ -0,0 +1,13 @@
+
+
+# ReadOnlyFirst
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** | | [optional] [readonly]
+**baz** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/SpecialModelName.md b/samples/client/petstore/java/rest-assured-jackson/docs/SpecialModelName.md
new file mode 100644
index 000000000000..934b8f0f25d7
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/SpecialModelName.md
@@ -0,0 +1,12 @@
+
+
+# SpecialModelName
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**$specialPropertyName** | **Long** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/StoreApi.md b/samples/client/petstore/java/rest-assured-jackson/docs/StoreApi.md
new file mode 100644
index 000000000000..2fc7a8ebbbf0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/StoreApi.md
@@ -0,0 +1,174 @@
+# 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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+StoreApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
+
+api.deleteOrder()
+ .orderIdPath(orderId).execute(r -> r.prettyPeek());
+```
+
+### 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**
+> Map<String, Integer> getInventory()
+
+Returns pet inventories by status
+
+Returns a map of status codes to quantities
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+StoreApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
+
+api.getInventory().execute(r -> r.prettyPeek());
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+**Map<String, Integer>**
+
+### 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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+StoreApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
+
+api.getOrderById()
+ .orderIdPath(orderId).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **orderId** | **Long**| 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(body)
+
+Place an order for a pet
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+StoreApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
+
+api.placeOrder()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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/java/rest-assured-jackson/docs/Tag.md b/samples/client/petstore/java/rest-assured-jackson/docs/Tag.md
new file mode 100644
index 000000000000..f24eba7d222e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/Tag.md
@@ -0,0 +1,13 @@
+
+
+# Tag
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | | [optional]
+**name** | **String** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderDefault.md b/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderDefault.md
new file mode 100644
index 000000000000..a338fc900cb1
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderDefault.md
@@ -0,0 +1,16 @@
+
+
+# TypeHolderDefault
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**stringItem** | **String** | |
+**numberItem** | [**BigDecimal**](BigDecimal.md) | |
+**integerItem** | **Integer** | |
+**boolItem** | **Boolean** | |
+**arrayItem** | **List<Integer>** | |
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderExample.md b/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderExample.md
new file mode 100644
index 000000000000..f8858da60664
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderExample.md
@@ -0,0 +1,17 @@
+
+
+# TypeHolderExample
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**stringItem** | **String** | |
+**numberItem** | [**BigDecimal**](BigDecimal.md) | |
+**floatItem** | **Float** | |
+**integerItem** | **Integer** | |
+**boolItem** | **Boolean** | |
+**arrayItem** | **List<Integer>** | |
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/User.md b/samples/client/petstore/java/rest-assured-jackson/docs/User.md
new file mode 100644
index 000000000000..c4ea94b7fc17
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/User.md
@@ -0,0 +1,19 @@
+
+
+# User
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | | [optional]
+**username** | **String** | | [optional]
+**firstName** | **String** | | [optional]
+**lastName** | **String** | | [optional]
+**email** | **String** | | [optional]
+**password** | **String** | | [optional]
+**phone** | **String** | | [optional]
+**userStatus** | **Integer** | User Status | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/docs/UserApi.md b/samples/client/petstore/java/rest-assured-jackson/docs/UserApi.md
new file mode 100644
index 000000000000..5f5a5dbd3627
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/UserApi.md
@@ -0,0 +1,342 @@
+# 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(body)
+
+Create user
+
+This can only be done by the logged in user.
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.createUser()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**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(body)
+
+Creates list of users with given input array
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.createUsersWithArrayInput()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**List<User>**](User.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(body)
+
+Creates list of users with given input array
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.createUsersWithListInput()
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | [**List<User>**](User.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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.deleteUser()
+ .usernamePath(username).execute(r -> r.prettyPeek());
+```
+
+### 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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.getUserByName()
+ .usernamePath(username).execute(r -> r.prettyPeek());
+```
+
+### 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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.loginUser()
+ .usernameQuery(username)
+ .passwordQuery(password).execute(r -> r.prettyPeek());
+```
+
+### 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
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.logoutUser().execute(r -> r.prettyPeek());
+```
+
+### 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, body)
+
+Updated user
+
+This can only be done by the logged in user.
+
+### Example
+```java
+// Import classes:
+//import org.openapitools.client.ApiClient;
+//import io.restassured.builder.RequestSpecBuilder;
+//import io.restassured.filter.log.ErrorLoggingFilter;
+
+UserApi api = ApiClient.api(ApiClient.Config.apiConfig().withReqSpecSupplier(
+ () -> new RequestSpecBuilder()
+ .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+
+api.updateUser()
+ .usernamePath(username)
+ .body(body).execute(r -> r.prettyPeek());
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| name that need to be deleted |
+ **body** | [**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/java/rest-assured-jackson/docs/XmlItem.md b/samples/client/petstore/java/rest-assured-jackson/docs/XmlItem.md
new file mode 100644
index 000000000000..6065fd1f4e59
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/docs/XmlItem.md
@@ -0,0 +1,40 @@
+
+
+# XmlItem
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**attributeString** | **String** | | [optional]
+**attributeNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**attributeInteger** | **Integer** | | [optional]
+**attributeBoolean** | **Boolean** | | [optional]
+**wrappedArray** | **List<Integer>** | | [optional]
+**nameString** | **String** | | [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**nameInteger** | **Integer** | | [optional]
+**nameBoolean** | **Boolean** | | [optional]
+**nameArray** | **List<Integer>** | | [optional]
+**nameWrappedArray** | **List<Integer>** | | [optional]
+**prefixString** | **String** | | [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**prefixInteger** | **Integer** | | [optional]
+**prefixBoolean** | **Boolean** | | [optional]
+**prefixArray** | **List<Integer>** | | [optional]
+**prefixWrappedArray** | **List<Integer>** | | [optional]
+**namespaceString** | **String** | | [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**namespaceInteger** | **Integer** | | [optional]
+**namespaceBoolean** | **Boolean** | | [optional]
+**namespaceArray** | **List<Integer>** | | [optional]
+**namespaceWrappedArray** | **List<Integer>** | | [optional]
+**prefixNsString** | **String** | | [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) | | [optional]
+**prefixNsInteger** | **Integer** | | [optional]
+**prefixNsBoolean** | **Boolean** | | [optional]
+**prefixNsArray** | **List<Integer>** | | [optional]
+**prefixNsWrappedArray** | **List<Integer>** | | [optional]
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/git_push.sh b/samples/client/petstore/java/rest-assured-jackson/git_push.sh
new file mode 100644
index 000000000000..ced3be2b0c7b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/git_push.sh
@@ -0,0 +1,58 @@
+#!/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 openapi-pestore-perl "minor update" "gitlab.com"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+git_host=$4
+
+if [ "$git_host" = "" ]; then
+ git_host="github.com"
+ echo "[INFO] No command line input provided. Set \$git_host to $git_host"
+fi
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="GIT_USER_ID"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="GIT_REPO_ID"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="Minor update"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/gradle.properties b/samples/client/petstore/java/rest-assured-jackson/gradle.properties
new file mode 100644
index 000000000000..05644f0754af
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/gradle.properties
@@ -0,0 +1,2 @@
+# Uncomment to build for Android
+#target = android
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.jar b/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000000..cc4fdc293d0e
Binary files /dev/null and b/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.properties b/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000000..94920145f34e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/samples/client/petstore/java/rest-assured-jackson/gradlew b/samples/client/petstore/java/rest-assured-jackson/gradlew
new file mode 100644
index 000000000000..2fe81a7d95e4
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/gradlew
@@ -0,0 +1,183 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/samples/client/petstore/java/rest-assured-jackson/gradlew.bat b/samples/client/petstore/java/rest-assured-jackson/gradlew.bat
new file mode 100644
index 000000000000..9618d8d9607c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/gradlew.bat
@@ -0,0 +1,100 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/samples/client/petstore/java/rest-assured-jackson/pom.xml b/samples/client/petstore/java/rest-assured-jackson/pom.xml
new file mode 100644
index 000000000000..3666b630e03a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/pom.xml
@@ -0,0 +1,287 @@
+
+ 4.0.0
+ org.openapitools
+ petstore-rest-assured-jackson
+ jar
+ petstore-rest-assured-jackson
+ 1.0.0
+ https://github.com/openapitools/openapi-generator
+ OpenAPI Java
+
+ scm:git:git@github.com:openapitools/openapi-generator.git
+ scm:git:git@github.com:openapitools/openapi-generator.git
+ https://github.com/openapitools/openapi-generator
+
+
+
+
+ Unlicense
+ https://www.apache.org/licenses/LICENSE-2.0.html
+ repo
+
+
+
+
+
+ OpenAPI-Generator Contributors
+ team@openapitools.org
+ OpenAPITools.org
+ http://openapitools.org
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 3.0.0-M3
+
+
+ enforce-maven
+
+ enforce
+
+
+
+
+ 3.0.5
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.22.2
+
+
+
+ loggerPath
+ conf/log4j.properties
+
+
+ false
+ 1C
+
+
+
+ maven-dependency-plugin
+
+
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/lib
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.2
+
+
+
+ jar
+ test-jar
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.1.0
+
+
+ add_sources
+ generate-sources
+
+ add-source
+
+
+
+
+
+
+
+
+ add_test_sources
+ generate-test-sources
+
+ add-test-source
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.2.0
+
+ none
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.2.0
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+
+
+
+
+ sign-artifacts
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+
+
+
+
+
+
+ com.fasterxml.jackson
+ jackson-bom
+ ${jackson-version}
+ pom
+ import
+
+
+
+
+
+
+ io.swagger
+ swagger-annotations
+ ${swagger-annotations-version}
+
+
+
+ com.google.code.findbugs
+ jsr305
+ 3.0.2
+
+
+ io.rest-assured
+ rest-assured
+ ${rest-assured.version}
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ org.openapitools
+ jackson-databind-nullable
+ ${jackson-databind-nullable-version}
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
+
+ com.squareup.okio
+ okio
+ ${okio-version}
+
+
+
+ javax.validation
+ validation-api
+ 2.0.1.Final
+ provided
+
+
+
+ org.hibernate
+ hibernate-validator
+ 6.0.19.Final
+
+
+
+ junit
+ junit
+ ${junit-version}
+ test
+
+
+
+ UTF-8
+ 1.5.21
+ 4.3.0
+ 2.8.6
+ 1.8.4
+ 2.10.3
+ 0.2.1
+ 1.17.5
+ 4.13
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/settings.gradle b/samples/client/petstore/java/rest-assured-jackson/settings.gradle
new file mode 100644
index 000000000000..646eb0c11ed2
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = "petstore-rest-assured-jackson"
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/AndroidManifest.xml b/samples/client/petstore/java/rest-assured-jackson/src/main/AndroidManifest.xml
new file mode 100644
index 000000000000..54fbcb3da1e8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ApiClient.java
new file mode 100644
index 000000000000..2af3090b72d2
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ApiClient.java
@@ -0,0 +1,78 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client;
+
+import org.openapitools.client.api.*;
+
+import io.restassured.builder.RequestSpecBuilder;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+
+public class ApiClient {
+ public static final String BASE_URI = "http://petstore.swagger.io:80/v2";
+
+ private final Config config;
+
+ private ApiClient(Config config) {
+ this.config = config;
+ }
+
+ public static ApiClient api(Config config) {
+ return new ApiClient(config);
+ }
+
+ public AnotherFakeApi anotherFake() {
+ return AnotherFakeApi.anotherFake(config.reqSpecSupplier);
+ }
+ public FakeApi fake() {
+ return FakeApi.fake(config.reqSpecSupplier);
+ }
+ public FakeClassnameTags123Api fakeClassnameTags123() {
+ return FakeClassnameTags123Api.fakeClassnameTags123(config.reqSpecSupplier);
+ }
+ public PetApi pet() {
+ return PetApi.pet(config.reqSpecSupplier);
+ }
+ public StoreApi store() {
+ return StoreApi.store(config.reqSpecSupplier);
+ }
+ public UserApi user() {
+ return UserApi.user(config.reqSpecSupplier);
+ }
+
+ public static class Config {
+ private Supplier reqSpecSupplier = () -> new RequestSpecBuilder()
+ .setBaseUri(BASE_URI)
+ .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())));
+
+ /**
+ * Use common specification for all operations
+ * @param supplier supplier
+ * @return configuration
+ */
+ public Config reqSpecSupplier(Supplier supplier) {
+ this.reqSpecSupplier = supplier;
+ return this;
+ }
+
+ public static Config apiConfig() {
+ return new Config();
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/BeanValidationException.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/BeanValidationException.java
new file mode 100644
index 000000000000..28b41ac559e5
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/BeanValidationException.java
@@ -0,0 +1,27 @@
+package org.openapitools.client;
+
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.ValidationException;
+
+public class BeanValidationException extends ValidationException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -5294733947409491364L;
+ Set> violations;
+
+ public BeanValidationException(Set> violations) {
+ this.violations = violations;
+ }
+
+ public Set> getViolations() {
+ return violations;
+ }
+
+ public void setViolations(Set> violations) {
+ this.violations = violations;
+ }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/JacksonObjectMapper.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/JacksonObjectMapper.java
new file mode 100644
index 000000000000..f6ea587ad2e0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/JacksonObjectMapper.java
@@ -0,0 +1,52 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client;
+
+import com.fasterxml.jackson.annotation.*;
+import com.fasterxml.jackson.databind.*;
+import org.openapitools.jackson.nullable.JsonNullableModule;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+
+import io.restassured.internal.mapping.Jackson2Mapper;
+import io.restassured.path.json.mapper.factory.Jackson2ObjectMapperFactory;
+
+
+public class JacksonObjectMapper extends Jackson2Mapper {
+
+ private JacksonObjectMapper() {
+ super(createFactory());
+ }
+
+ private static Jackson2ObjectMapperFactory createFactory() {
+ return (cls, charset) -> {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper = new ObjectMapper();
+ mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
+ mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+ mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
+ mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
+ mapper.setDateFormat(new RFC3339DateFormat());
+ mapper.registerModule(new JavaTimeModule());
+ JsonNullableModule jnm = new JsonNullableModule();
+ mapper.registerModule(jnm);
+ return mapper;
+ };
+ }
+
+ public static JacksonObjectMapper jackson() {
+ return new JacksonObjectMapper();
+ }
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/RFC3339DateFormat.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/RFC3339DateFormat.java
new file mode 100644
index 000000000000..9509fd089812
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/RFC3339DateFormat.java
@@ -0,0 +1,32 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+package org.openapitools.client;
+
+import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
+import com.fasterxml.jackson.databind.util.ISO8601Utils;
+
+import java.text.FieldPosition;
+import java.util.Date;
+
+
+public class RFC3339DateFormat extends ISO8601DateFormat {
+
+ // Same as ISO8601DateFormat but serializing milliseconds.
+ @Override
+ public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+ String value = ISO8601Utils.format(date, true);
+ toAppendTo.append(value);
+ return toAppendTo;
+ }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ResponseSpecBuilders.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ResponseSpecBuilders.java
new file mode 100644
index 000000000000..412baa1bfaa8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ResponseSpecBuilders.java
@@ -0,0 +1,42 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client;
+
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.response.Response;
+import io.restassured.specification.ResponseSpecification;
+
+import java.util.function.Function;
+
+public class ResponseSpecBuilders {
+
+ private ResponseSpecBuilders() {
+ }
+
+ public static Function validatedWith(ResponseSpecification respSpec) {
+ return response -> response.then().spec(respSpec).extract().response();
+ }
+
+ public static Function validatedWith(ResponseSpecBuilder respSpec) {
+ return validatedWith(respSpec.build());
+ }
+
+ /**
+ * @param code expected status code
+ * @return ResponseSpecBuilder
+ */
+ public static ResponseSpecBuilder shouldBeCode(int code) {
+ return new ResponseSpecBuilder().expectStatusCode(code);
+ }
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerConfiguration.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerConfiguration.java
new file mode 100644
index 000000000000..a1107a8690e4
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerConfiguration.java
@@ -0,0 +1,58 @@
+package org.openapitools.client;
+
+import java.util.Map;
+
+/**
+ * Representing a Server configuration.
+ */
+public class ServerConfiguration {
+ public String URL;
+ public String description;
+ public Map variables;
+
+ /**
+ * @param URL A URL to the target host.
+ * @param description A describtion of the host designated by the URL.
+ * @param variables A map between a variable name and its value. The value is used for substitution in the server's URL template.
+ */
+ public ServerConfiguration(String URL, String description, Map variables) {
+ this.URL = URL;
+ this.description = description;
+ this.variables = variables;
+ }
+
+ /**
+ * Format URL template using given variables.
+ *
+ * @param variables A map between a variable name and its value.
+ * @return Formatted URL.
+ */
+ public String URL(Map variables) {
+ String url = this.URL;
+
+ // go through variables and replace placeholders
+ for (Map.Entry variable: this.variables.entrySet()) {
+ String name = variable.getKey();
+ ServerVariable serverVariable = variable.getValue();
+ String value = serverVariable.defaultValue;
+
+ if (variables != null && variables.containsKey(name)) {
+ value = variables.get(name);
+ if (serverVariable.enumValues.size() > 0 && !serverVariable.enumValues.contains(value)) {
+ throw new RuntimeException("The variable " + name + " in the server URL has invalid value " + value + ".");
+ }
+ }
+ url = url.replaceAll("\\{" + name + "\\}", value);
+ }
+ return url;
+ }
+
+ /**
+ * Format URL template using default server variables.
+ *
+ * @return Formatted URL.
+ */
+ public String URL() {
+ return URL(null);
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerVariable.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerVariable.java
new file mode 100644
index 000000000000..c2f13e216662
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerVariable.java
@@ -0,0 +1,23 @@
+package org.openapitools.client;
+
+import java.util.HashSet;
+
+/**
+ * Representing a Server Variable for server URL template substitution.
+ */
+public class ServerVariable {
+ public String description;
+ public String defaultValue;
+ public HashSet enumValues = null;
+
+ /**
+ * @param description A description for the server variable.
+ * @param defaultValue The default value to use for substitution.
+ * @param enumValues An enumeration of string values to be used if the substitution options are from a limited set.
+ */
+ public ServerVariable(String description, String defaultValue, HashSet enumValues) {
+ this.description = description;
+ this.defaultValue = defaultValue;
+ this.enumValues = enumValues;
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/AnotherFakeApi.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/AnotherFakeApi.java
new file mode 100644
index 000000000000..90773790231d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/AnotherFakeApi.java
@@ -0,0 +1,157 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import org.openapitools.client.model.Client;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import io.restassured.RestAssured;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.common.mapper.TypeRef;
+import io.restassured.http.Method;
+import io.restassured.response.Response;
+import io.swagger.annotations.*;
+
+import java.lang.reflect.Type;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import static io.restassured.http.Method.*;
+
+@Api(value = "AnotherFake")
+public class AnotherFakeApi {
+
+ private Supplier reqSpecSupplier;
+ private Consumer reqSpecCustomizer;
+
+ private AnotherFakeApi(Supplier reqSpecSupplier) {
+ this.reqSpecSupplier = reqSpecSupplier;
+ }
+
+ public static AnotherFakeApi anotherFake(Supplier reqSpecSupplier) {
+ return new AnotherFakeApi(reqSpecSupplier);
+ }
+
+ private RequestSpecBuilder createReqSpec() {
+ RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+ if(reqSpecCustomizer != null) {
+ reqSpecCustomizer.accept(reqSpec);
+ }
+ return reqSpec;
+ }
+
+ public List getAllOperations() {
+ return Arrays.asList(
+ call123testSpecialTags()
+ );
+ }
+
+ @ApiOperation(value = "To test special tags",
+ notes = "To test special tags and operation ID starting with number",
+ nickname = "call123testSpecialTags",
+ tags = { "$another-fake?" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public Call123testSpecialTagsOper call123testSpecialTags() {
+ return new Call123testSpecialTagsOper(createReqSpec());
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return api
+ */
+ public AnotherFakeApi reqSpec(Consumer reqSpecCustomizer) {
+ this.reqSpecCustomizer = reqSpecCustomizer;
+ return this;
+ }
+
+ /**
+ * To test special tags
+ * To test special tags and operation ID starting with number
+ *
+ * @see #body client model (required)
+ * return Client
+ */
+ public static class Call123testSpecialTagsOper implements Oper {
+
+ public static final Method REQ_METHOD = PATCH;
+ public static final String REQ_URI = "/another-fake/dummy";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public Call123testSpecialTagsOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PATCH /another-fake/dummy
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * PATCH /another-fake/dummy
+ * @param handler handler
+ * @return Client
+ */
+ public Client executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (Client) client model (required)
+ * @return operation
+ */
+ public Call123testSpecialTagsOper body(Client body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public Call123testSpecialTagsOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public Call123testSpecialTagsOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeApi.java
new file mode 100644
index 000000000000..2eaac5a4f4e0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeApi.java
@@ -0,0 +1,1527 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import java.math.BigDecimal;
+import org.openapitools.client.model.Client;
+import java.io.File;
+import org.openapitools.client.model.FileSchemaTestClass;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import org.openapitools.client.model.OuterComposite;
+import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import io.restassured.RestAssured;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.common.mapper.TypeRef;
+import io.restassured.http.Method;
+import io.restassured.response.Response;
+import io.swagger.annotations.*;
+
+import java.lang.reflect.Type;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import static io.restassured.http.Method.*;
+
+@Api(value = "Fake")
+public class FakeApi {
+
+ private Supplier reqSpecSupplier;
+ private Consumer reqSpecCustomizer;
+
+ private FakeApi(Supplier reqSpecSupplier) {
+ this.reqSpecSupplier = reqSpecSupplier;
+ }
+
+ public static FakeApi fake(Supplier reqSpecSupplier) {
+ return new FakeApi(reqSpecSupplier);
+ }
+
+ private RequestSpecBuilder createReqSpec() {
+ RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+ if(reqSpecCustomizer != null) {
+ reqSpecCustomizer.accept(reqSpec);
+ }
+ return reqSpec;
+ }
+
+ public List getAllOperations() {
+ return Arrays.asList(
+ createXmlItem(),
+ fakeOuterBooleanSerialize(),
+ fakeOuterCompositeSerialize(),
+ fakeOuterNumberSerialize(),
+ fakeOuterStringSerialize(),
+ testBodyWithFileSchema(),
+ testBodyWithQueryParams(),
+ testClientModel(),
+ testEndpointParameters(),
+ testEnumParameters(),
+ testGroupParameters(),
+ testInlineAdditionalProperties(),
+ testJsonFormData(),
+ testQueryParameterCollectionFormat()
+ );
+ }
+
+ @ApiOperation(value = "creates an XmlItem",
+ notes = "this route creates an XmlItem",
+ nickname = "createXmlItem",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public CreateXmlItemOper createXmlItem() {
+ return new CreateXmlItemOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "Test serialization of outer boolean types",
+ nickname = "fakeOuterBooleanSerialize",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Output boolean") })
+ public FakeOuterBooleanSerializeOper fakeOuterBooleanSerialize() {
+ return new FakeOuterBooleanSerializeOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "Test serialization of object with outer number type",
+ nickname = "fakeOuterCompositeSerialize",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Output composite") })
+ public FakeOuterCompositeSerializeOper fakeOuterCompositeSerialize() {
+ return new FakeOuterCompositeSerializeOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "Test serialization of outer number types",
+ nickname = "fakeOuterNumberSerialize",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Output number") })
+ public FakeOuterNumberSerializeOper fakeOuterNumberSerialize() {
+ return new FakeOuterNumberSerializeOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "Test serialization of outer string types",
+ nickname = "fakeOuterStringSerialize",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Output string") })
+ public FakeOuterStringSerializeOper fakeOuterStringSerialize() {
+ return new FakeOuterStringSerializeOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "For this test, the body for this request much reference a schema named `File`.",
+ nickname = "testBodyWithFileSchema",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success") })
+ public TestBodyWithFileSchemaOper testBodyWithFileSchema() {
+ return new TestBodyWithFileSchemaOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "",
+ nickname = "testBodyWithQueryParams",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success") })
+ public TestBodyWithQueryParamsOper testBodyWithQueryParams() {
+ return new TestBodyWithQueryParamsOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "To test \"client\" model",
+ notes = "To test \"client\" model",
+ nickname = "testClientModel",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public TestClientModelOper testClientModel() {
+ return new TestClientModelOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트",
+ notes = "Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트",
+ nickname = "testEndpointParameters",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "Invalid username supplied") ,
+ @ApiResponse(code = 404, message = "User not found") })
+ public TestEndpointParametersOper testEndpointParameters() {
+ return new TestEndpointParametersOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "To test enum parameters",
+ notes = "To test enum parameters",
+ nickname = "testEnumParameters",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "Invalid request") ,
+ @ApiResponse(code = 404, message = "Not found") })
+ public TestEnumParametersOper testEnumParameters() {
+ return new TestEnumParametersOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Fake endpoint to test group parameters (optional)",
+ notes = "Fake endpoint to test group parameters (optional)",
+ nickname = "testGroupParameters",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "Someting wrong") })
+ public TestGroupParametersOper testGroupParameters() {
+ return new TestGroupParametersOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "test inline additionalProperties",
+ notes = "",
+ nickname = "testInlineAdditionalProperties",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public TestInlineAdditionalPropertiesOper testInlineAdditionalProperties() {
+ return new TestInlineAdditionalPropertiesOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "test json serialization of form data",
+ notes = "",
+ nickname = "testJsonFormData",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public TestJsonFormDataOper testJsonFormData() {
+ return new TestJsonFormDataOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "",
+ notes = "To test the collection format in query parameters",
+ nickname = "testQueryParameterCollectionFormat",
+ tags = { "fake" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success") })
+ public TestQueryParameterCollectionFormatOper testQueryParameterCollectionFormat() {
+ return new TestQueryParameterCollectionFormatOper(createReqSpec());
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return api
+ */
+ public FakeApi reqSpec(Consumer reqSpecCustomizer) {
+ this.reqSpecCustomizer = reqSpecCustomizer;
+ return this;
+ }
+
+ /**
+ * creates an XmlItem
+ * this route creates an XmlItem
+ *
+ * @see #body XmlItem Body (required)
+ */
+ public static class CreateXmlItemOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/create_xml_item";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public CreateXmlItemOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/xml");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/create_xml_item
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param xmlItem (XmlItem) XmlItem Body (required)
+ * @return operation
+ */
+ public CreateXmlItemOper body(XmlItem xmlItem) {
+ reqSpec.setBody(xmlItem);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public CreateXmlItemOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public CreateXmlItemOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * Test serialization of outer boolean types
+ *
+ * @see #body Input boolean as post body (optional)
+ * return Boolean
+ */
+ public static class FakeOuterBooleanSerializeOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/outer/boolean";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FakeOuterBooleanSerializeOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("*/*");
+ reqSpec.setAccept("*/*");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/outer/boolean
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /fake/outer/boolean
+ * @param handler handler
+ * @return Boolean
+ */
+ public Boolean executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (Boolean) Input boolean as post body (optional)
+ * @return operation
+ */
+ public FakeOuterBooleanSerializeOper body(Boolean body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FakeOuterBooleanSerializeOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FakeOuterBooleanSerializeOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * Test serialization of object with outer number type
+ *
+ * @see #body Input composite as post body (optional)
+ * return OuterComposite
+ */
+ public static class FakeOuterCompositeSerializeOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/outer/composite";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FakeOuterCompositeSerializeOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("*/*");
+ reqSpec.setAccept("*/*");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/outer/composite
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /fake/outer/composite
+ * @param handler handler
+ * @return OuterComposite
+ */
+ public OuterComposite executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (OuterComposite) Input composite as post body (optional)
+ * @return operation
+ */
+ public FakeOuterCompositeSerializeOper body(OuterComposite body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FakeOuterCompositeSerializeOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FakeOuterCompositeSerializeOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * Test serialization of outer number types
+ *
+ * @see #body Input number as post body (optional)
+ * return BigDecimal
+ */
+ public static class FakeOuterNumberSerializeOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/outer/number";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FakeOuterNumberSerializeOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("*/*");
+ reqSpec.setAccept("*/*");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/outer/number
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /fake/outer/number
+ * @param handler handler
+ * @return BigDecimal
+ */
+ public BigDecimal executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (BigDecimal) Input number as post body (optional)
+ * @return operation
+ */
+ public FakeOuterNumberSerializeOper body(BigDecimal body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FakeOuterNumberSerializeOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FakeOuterNumberSerializeOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * Test serialization of outer string types
+ *
+ * @see #body Input string as post body (optional)
+ * return String
+ */
+ public static class FakeOuterStringSerializeOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/outer/string";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FakeOuterStringSerializeOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("*/*");
+ reqSpec.setAccept("*/*");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/outer/string
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /fake/outer/string
+ * @param handler handler
+ * @return String
+ */
+ public String executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (String) Input string as post body (optional)
+ * @return operation
+ */
+ public FakeOuterStringSerializeOper body(String body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FakeOuterStringSerializeOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FakeOuterStringSerializeOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * For this test, the body for this request much reference a schema named `File`.
+ *
+ * @see #body (required)
+ */
+ public static class TestBodyWithFileSchemaOper implements Oper {
+
+ public static final Method REQ_METHOD = PUT;
+ public static final String REQ_URI = "/fake/body-with-file-schema";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestBodyWithFileSchemaOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PUT /fake/body-with-file-schema
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param body (FileSchemaTestClass) (required)
+ * @return operation
+ */
+ public TestBodyWithFileSchemaOper body(FileSchemaTestClass body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestBodyWithFileSchemaOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestBodyWithFileSchemaOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ *
+ *
+ * @see #queryQuery (required)
+ * @see #body (required)
+ */
+ public static class TestBodyWithQueryParamsOper implements Oper {
+
+ public static final Method REQ_METHOD = PUT;
+ public static final String REQ_URI = "/fake/body-with-query-params";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestBodyWithQueryParamsOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PUT /fake/body-with-query-params
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param body (User) (required)
+ * @return operation
+ */
+ public TestBodyWithQueryParamsOper body(User body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ public static final String QUERY_QUERY = "query";
+
+ /**
+ * @param query (String) (required)
+ * @return operation
+ */
+ public TestBodyWithQueryParamsOper queryQuery(Object... query) {
+ reqSpec.addQueryParam(QUERY_QUERY, query);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestBodyWithQueryParamsOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestBodyWithQueryParamsOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * To test \"client\" model
+ * To test \"client\" model
+ *
+ * @see #body client model (required)
+ * return Client
+ */
+ public static class TestClientModelOper implements Oper {
+
+ public static final Method REQ_METHOD = PATCH;
+ public static final String REQ_URI = "/fake";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestClientModelOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PATCH /fake
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * PATCH /fake
+ * @param handler handler
+ * @return Client
+ */
+ public Client executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (Client) client model (required)
+ * @return operation
+ */
+ public TestClientModelOper body(Client body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestClientModelOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestClientModelOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+ * Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+ *
+ * @see #numberForm None (required)
+ * @see #_doubleForm None (required)
+ * @see #patternWithoutDelimiterForm None (required)
+ * @see #_byteForm None (required)
+ * @see #integerForm None (optional)
+ * @see #int32Form None (optional)
+ * @see #int64Form None (optional)
+ * @see #_floatForm None (optional)
+ * @see #stringForm None (optional)
+ * @see #binaryMultiPart None (optional)
+ * @see #dateForm None (optional)
+ * @see #dateTimeForm None (optional)
+ * @see #passwordForm None (optional)
+ * @see #paramCallbackForm None (optional)
+ */
+ public static class TestEndpointParametersOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestEndpointParametersOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/x-www-form-urlencoded");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String INTEGER_FORM = "integer";
+
+ /**
+ * @param integer (Integer) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper integerForm(Object... integer) {
+ reqSpec.addFormParam(INTEGER_FORM, integer);
+ return this;
+ }
+
+ public static final String INT32_FORM = "int32";
+
+ /**
+ * @param int32 (Integer) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper int32Form(Object... int32) {
+ reqSpec.addFormParam(INT32_FORM, int32);
+ return this;
+ }
+
+ public static final String INT64_FORM = "int64";
+
+ /**
+ * @param int64 (Long) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper int64Form(Object... int64) {
+ reqSpec.addFormParam(INT64_FORM, int64);
+ return this;
+ }
+
+ public static final String NUMBER_FORM = "number";
+
+ /**
+ * @param number (BigDecimal) None (required)
+ * @return operation
+ */
+ public TestEndpointParametersOper numberForm(Object... number) {
+ reqSpec.addFormParam(NUMBER_FORM, number);
+ return this;
+ }
+
+ public static final String _FLOAT_FORM = "float";
+
+ /**
+ * @param _float (Float) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper _floatForm(Object... _float) {
+ reqSpec.addFormParam(_FLOAT_FORM, _float);
+ return this;
+ }
+
+ public static final String _DOUBLE_FORM = "double";
+
+ /**
+ * @param _double (Double) None (required)
+ * @return operation
+ */
+ public TestEndpointParametersOper _doubleForm(Object... _double) {
+ reqSpec.addFormParam(_DOUBLE_FORM, _double);
+ return this;
+ }
+
+ public static final String STRING_FORM = "string";
+
+ /**
+ * @param string (String) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper stringForm(Object... string) {
+ reqSpec.addFormParam(STRING_FORM, string);
+ return this;
+ }
+
+ public static final String PATTERN_WITHOUT_DELIMITER_FORM = "pattern_without_delimiter";
+
+ /**
+ * @param patternWithoutDelimiter (String) None (required)
+ * @return operation
+ */
+ public TestEndpointParametersOper patternWithoutDelimiterForm(Object... patternWithoutDelimiter) {
+ reqSpec.addFormParam(PATTERN_WITHOUT_DELIMITER_FORM, patternWithoutDelimiter);
+ return this;
+ }
+
+ public static final String _BYTE_FORM = "byte";
+
+ /**
+ * @param _byte (byte[]) None (required)
+ * @return operation
+ */
+ public TestEndpointParametersOper _byteForm(Object... _byte) {
+ reqSpec.addFormParam(_BYTE_FORM, _byte);
+ return this;
+ }
+
+ public static final String DATE_FORM = "date";
+
+ /**
+ * @param date (LocalDate) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper dateForm(Object... date) {
+ reqSpec.addFormParam(DATE_FORM, date);
+ return this;
+ }
+
+ public static final String DATE_TIME_FORM = "dateTime";
+
+ /**
+ * @param dateTime (OffsetDateTime) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper dateTimeForm(Object... dateTime) {
+ reqSpec.addFormParam(DATE_TIME_FORM, dateTime);
+ return this;
+ }
+
+ public static final String PASSWORD_FORM = "password";
+
+ /**
+ * @param password (String) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper passwordForm(Object... password) {
+ reqSpec.addFormParam(PASSWORD_FORM, password);
+ return this;
+ }
+
+ public static final String PARAM_CALLBACK_FORM = "callback";
+
+ /**
+ * @param paramCallback (String) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper paramCallbackForm(Object... paramCallback) {
+ reqSpec.addFormParam(PARAM_CALLBACK_FORM, paramCallback);
+ return this;
+ }
+
+ /**
+ * It will assume that the control name is file and the <content-type> is <application/octet-stream>
+ * @see #reqSpec for customise
+ * @param binary (File) None (optional)
+ * @return operation
+ */
+ public TestEndpointParametersOper binaryMultiPart(File binary) {
+ reqSpec.addMultiPart(binary);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestEndpointParametersOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestEndpointParametersOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * To test enum parameters
+ * To test enum parameters
+ *
+ * @see #enumHeaderStringArrayHeader Header parameter enum test (string array) (optional, default to new ArrayList<>())
+ * @see #enumHeaderStringHeader Header parameter enum test (string) (optional, default to -efg)
+ * @see #enumQueryStringArrayQuery Query parameter enum test (string array) (optional, default to new ArrayList<>())
+ * @see #enumQueryStringQuery Query parameter enum test (string) (optional, default to -efg)
+ * @see #enumQueryIntegerQuery Query parameter enum test (double) (optional)
+ * @see #enumQueryDoubleQuery Query parameter enum test (double) (optional)
+ * @see #enumFormStringArrayForm Form parameter enum test (string array) (optional, default to $)
+ * @see #enumFormStringForm Form parameter enum test (string) (optional, default to -efg)
+ */
+ public static class TestEnumParametersOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/fake";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestEnumParametersOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/x-www-form-urlencoded");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /fake
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String ENUM_HEADER_STRING_ARRAY_HEADER = "enum_header_string_array";
+
+ /**
+ * @param enumHeaderStringArray (List<String>) Header parameter enum test (string array) (optional, default to new ArrayList<>())
+ * @return operation
+ */
+ public TestEnumParametersOper enumHeaderStringArrayHeader(String enumHeaderStringArray) {
+ reqSpec.addHeader(ENUM_HEADER_STRING_ARRAY_HEADER, enumHeaderStringArray);
+ return this;
+ }
+
+ public static final String ENUM_HEADER_STRING_HEADER = "enum_header_string";
+
+ /**
+ * @param enumHeaderString (String) Header parameter enum test (string) (optional, default to -efg)
+ * @return operation
+ */
+ public TestEnumParametersOper enumHeaderStringHeader(String enumHeaderString) {
+ reqSpec.addHeader(ENUM_HEADER_STRING_HEADER, enumHeaderString);
+ return this;
+ }
+
+ public static final String ENUM_QUERY_STRING_ARRAY_QUERY = "enum_query_string_array";
+
+ /**
+ * @param enumQueryStringArray (List<String>) Query parameter enum test (string array) (optional, default to new ArrayList<>())
+ * @return operation
+ */
+ public TestEnumParametersOper enumQueryStringArrayQuery(Object... enumQueryStringArray) {
+ reqSpec.addQueryParam(ENUM_QUERY_STRING_ARRAY_QUERY, enumQueryStringArray);
+ return this;
+ }
+
+ public static final String ENUM_QUERY_STRING_QUERY = "enum_query_string";
+
+ /**
+ * @param enumQueryString (String) Query parameter enum test (string) (optional, default to -efg)
+ * @return operation
+ */
+ public TestEnumParametersOper enumQueryStringQuery(Object... enumQueryString) {
+ reqSpec.addQueryParam(ENUM_QUERY_STRING_QUERY, enumQueryString);
+ return this;
+ }
+
+ public static final String ENUM_QUERY_INTEGER_QUERY = "enum_query_integer";
+
+ /**
+ * @param enumQueryInteger (Integer) Query parameter enum test (double) (optional)
+ * @return operation
+ */
+ public TestEnumParametersOper enumQueryIntegerQuery(Object... enumQueryInteger) {
+ reqSpec.addQueryParam(ENUM_QUERY_INTEGER_QUERY, enumQueryInteger);
+ return this;
+ }
+
+ public static final String ENUM_QUERY_DOUBLE_QUERY = "enum_query_double";
+
+ /**
+ * @param enumQueryDouble (Double) Query parameter enum test (double) (optional)
+ * @return operation
+ */
+ public TestEnumParametersOper enumQueryDoubleQuery(Object... enumQueryDouble) {
+ reqSpec.addQueryParam(ENUM_QUERY_DOUBLE_QUERY, enumQueryDouble);
+ return this;
+ }
+
+ public static final String ENUM_FORM_STRING_ARRAY_FORM = "enum_form_string_array";
+
+ /**
+ * @param enumFormStringArray (List<String>) Form parameter enum test (string array) (optional, default to $)
+ * @return operation
+ */
+ public TestEnumParametersOper enumFormStringArrayForm(Object... enumFormStringArray) {
+ reqSpec.addFormParam(ENUM_FORM_STRING_ARRAY_FORM, enumFormStringArray);
+ return this;
+ }
+
+ public static final String ENUM_FORM_STRING_FORM = "enum_form_string";
+
+ /**
+ * @param enumFormString (String) Form parameter enum test (string) (optional, default to -efg)
+ * @return operation
+ */
+ public TestEnumParametersOper enumFormStringForm(Object... enumFormString) {
+ reqSpec.addFormParam(ENUM_FORM_STRING_FORM, enumFormString);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestEnumParametersOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestEnumParametersOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Fake endpoint to test group parameters (optional)
+ * Fake endpoint to test group parameters (optional)
+ *
+ * @see #requiredStringGroupQuery Required String in group parameters (required)
+ * @see #requiredBooleanGroupHeader Required Boolean in group parameters (required)
+ * @see #requiredInt64GroupQuery Required Integer in group parameters (required)
+ * @see #stringGroupQuery String in group parameters (optional)
+ * @see #booleanGroupHeader Boolean in group parameters (optional)
+ * @see #int64GroupQuery Integer in group parameters (optional)
+ */
+ public static class TestGroupParametersOper implements Oper {
+
+ public static final Method REQ_METHOD = DELETE;
+ public static final String REQ_URI = "/fake";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestGroupParametersOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * DELETE /fake
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String REQUIRED_BOOLEAN_GROUP_HEADER = "required_boolean_group";
+
+ /**
+ * @param requiredBooleanGroup (Boolean) Required Boolean in group parameters (required)
+ * @return operation
+ */
+ public TestGroupParametersOper requiredBooleanGroupHeader(String requiredBooleanGroup) {
+ reqSpec.addHeader(REQUIRED_BOOLEAN_GROUP_HEADER, requiredBooleanGroup);
+ return this;
+ }
+
+ public static final String BOOLEAN_GROUP_HEADER = "boolean_group";
+
+ /**
+ * @param booleanGroup (Boolean) Boolean in group parameters (optional)
+ * @return operation
+ */
+ public TestGroupParametersOper booleanGroupHeader(String booleanGroup) {
+ reqSpec.addHeader(BOOLEAN_GROUP_HEADER, booleanGroup);
+ return this;
+ }
+
+ public static final String REQUIRED_STRING_GROUP_QUERY = "required_string_group";
+
+ /**
+ * @param requiredStringGroup (Integer) Required String in group parameters (required)
+ * @return operation
+ */
+ public TestGroupParametersOper requiredStringGroupQuery(Object... requiredStringGroup) {
+ reqSpec.addQueryParam(REQUIRED_STRING_GROUP_QUERY, requiredStringGroup);
+ return this;
+ }
+
+ public static final String REQUIRED_INT64_GROUP_QUERY = "required_int64_group";
+
+ /**
+ * @param requiredInt64Group (Long) Required Integer in group parameters (required)
+ * @return operation
+ */
+ public TestGroupParametersOper requiredInt64GroupQuery(Object... requiredInt64Group) {
+ reqSpec.addQueryParam(REQUIRED_INT64_GROUP_QUERY, requiredInt64Group);
+ return this;
+ }
+
+ public static final String STRING_GROUP_QUERY = "string_group";
+
+ /**
+ * @param stringGroup (Integer) String in group parameters (optional)
+ * @return operation
+ */
+ public TestGroupParametersOper stringGroupQuery(Object... stringGroup) {
+ reqSpec.addQueryParam(STRING_GROUP_QUERY, stringGroup);
+ return this;
+ }
+
+ public static final String INT64_GROUP_QUERY = "int64_group";
+
+ /**
+ * @param int64Group (Long) Integer in group parameters (optional)
+ * @return operation
+ */
+ public TestGroupParametersOper int64GroupQuery(Object... int64Group) {
+ reqSpec.addQueryParam(INT64_GROUP_QUERY, int64Group);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestGroupParametersOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestGroupParametersOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * test inline additionalProperties
+ *
+ *
+ * @see #body request body (required)
+ */
+ public static class TestInlineAdditionalPropertiesOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/inline-additionalProperties";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestInlineAdditionalPropertiesOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/inline-additionalProperties
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param param (Map<String, String>) request body (required)
+ * @return operation
+ */
+ public TestInlineAdditionalPropertiesOper body(Map param) {
+ reqSpec.setBody(param);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestInlineAdditionalPropertiesOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestInlineAdditionalPropertiesOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * test json serialization of form data
+ *
+ *
+ * @see #paramForm field1 (required)
+ * @see #param2Form field2 (required)
+ */
+ public static class TestJsonFormDataOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/fake/jsonFormData";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestJsonFormDataOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/x-www-form-urlencoded");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /fake/jsonFormData
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String PARAM_FORM = "param";
+
+ /**
+ * @param param (String) field1 (required)
+ * @return operation
+ */
+ public TestJsonFormDataOper paramForm(Object... param) {
+ reqSpec.addFormParam(PARAM_FORM, param);
+ return this;
+ }
+
+ public static final String PARAM2_FORM = "param2";
+
+ /**
+ * @param param2 (String) field2 (required)
+ * @return operation
+ */
+ public TestJsonFormDataOper param2Form(Object... param2) {
+ reqSpec.addFormParam(PARAM2_FORM, param2);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestJsonFormDataOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestJsonFormDataOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ *
+ * To test the collection format in query parameters
+ *
+ * @see #pipeQuery (required)
+ * @see #ioutilQuery (required)
+ * @see #httpQuery (required)
+ * @see #urlQuery (required)
+ * @see #contextQuery (required)
+ */
+ public static class TestQueryParameterCollectionFormatOper implements Oper {
+
+ public static final Method REQ_METHOD = PUT;
+ public static final String REQ_URI = "/fake/test-query-paramters";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestQueryParameterCollectionFormatOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PUT /fake/test-query-paramters
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String PIPE_QUERY = "pipe";
+
+ /**
+ * @param pipe (List<String>) (required)
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper pipeQuery(Object... pipe) {
+ reqSpec.addQueryParam(PIPE_QUERY, pipe);
+ return this;
+ }
+
+ public static final String IOUTIL_QUERY = "ioutil";
+
+ /**
+ * @param ioutil (List<String>) (required)
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper ioutilQuery(Object... ioutil) {
+ reqSpec.addQueryParam(IOUTIL_QUERY, ioutil);
+ return this;
+ }
+
+ public static final String HTTP_QUERY = "http";
+
+ /**
+ * @param http (List<String>) (required)
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper httpQuery(Object... http) {
+ reqSpec.addQueryParam(HTTP_QUERY, http);
+ return this;
+ }
+
+ public static final String URL_QUERY = "url";
+
+ /**
+ * @param url (List<String>) (required)
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper urlQuery(Object... url) {
+ reqSpec.addQueryParam(URL_QUERY, url);
+ return this;
+ }
+
+ public static final String CONTEXT_QUERY = "context";
+
+ /**
+ * @param context (List<String>) (required)
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper contextQuery(Object... context) {
+ reqSpec.addQueryParam(CONTEXT_QUERY, context);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestQueryParameterCollectionFormatOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java
new file mode 100644
index 000000000000..34cb3f7ab593
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java
@@ -0,0 +1,157 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import org.openapitools.client.model.Client;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import io.restassured.RestAssured;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.common.mapper.TypeRef;
+import io.restassured.http.Method;
+import io.restassured.response.Response;
+import io.swagger.annotations.*;
+
+import java.lang.reflect.Type;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import static io.restassured.http.Method.*;
+
+@Api(value = "FakeClassnameTags123")
+public class FakeClassnameTags123Api {
+
+ private Supplier reqSpecSupplier;
+ private Consumer reqSpecCustomizer;
+
+ private FakeClassnameTags123Api(Supplier reqSpecSupplier) {
+ this.reqSpecSupplier = reqSpecSupplier;
+ }
+
+ public static FakeClassnameTags123Api fakeClassnameTags123(Supplier reqSpecSupplier) {
+ return new FakeClassnameTags123Api(reqSpecSupplier);
+ }
+
+ private RequestSpecBuilder createReqSpec() {
+ RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+ if(reqSpecCustomizer != null) {
+ reqSpecCustomizer.accept(reqSpec);
+ }
+ return reqSpec;
+ }
+
+ public List getAllOperations() {
+ return Arrays.asList(
+ testClassname()
+ );
+ }
+
+ @ApiOperation(value = "To test class name in snake case",
+ notes = "To test class name in snake case",
+ nickname = "testClassname",
+ tags = { "fake_classname_tags 123#$%^" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public TestClassnameOper testClassname() {
+ return new TestClassnameOper(createReqSpec());
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return api
+ */
+ public FakeClassnameTags123Api reqSpec(Consumer reqSpecCustomizer) {
+ this.reqSpecCustomizer = reqSpecCustomizer;
+ return this;
+ }
+
+ /**
+ * To test class name in snake case
+ * To test class name in snake case
+ *
+ * @see #body client model (required)
+ * return Client
+ */
+ public static class TestClassnameOper implements Oper {
+
+ public static final Method REQ_METHOD = PATCH;
+ public static final String REQ_URI = "/fake_classname_test";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public TestClassnameOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PATCH /fake_classname_test
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * PATCH /fake_classname_test
+ * @param handler handler
+ * @return Client
+ */
+ public Client executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ /**
+ * @param body (Client) client model (required)
+ * @return operation
+ */
+ public TestClassnameOper body(Client body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public TestClassnameOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public TestClassnameOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/Oper.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/Oper.java
new file mode 100644
index 000000000000..d9a11e714666
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/Oper.java
@@ -0,0 +1,24 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import io.restassured.response.Response;
+
+import java.util.function.Function;
+
+public interface Oper {
+
+ T execute(Function handler);
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/PetApi.java
new file mode 100644
index 000000000000..b6508c0b98e5
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/PetApi.java
@@ -0,0 +1,885 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import java.io.File;
+import org.openapitools.client.model.ModelApiResponse;
+import org.openapitools.client.model.Pet;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import io.restassured.RestAssured;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.common.mapper.TypeRef;
+import io.restassured.http.Method;
+import io.restassured.response.Response;
+import io.swagger.annotations.*;
+
+import java.lang.reflect.Type;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import static io.restassured.http.Method.*;
+
+@Api(value = "Pet")
+public class PetApi {
+
+ private Supplier reqSpecSupplier;
+ private Consumer reqSpecCustomizer;
+
+ private PetApi(Supplier reqSpecSupplier) {
+ this.reqSpecSupplier = reqSpecSupplier;
+ }
+
+ public static PetApi pet(Supplier reqSpecSupplier) {
+ return new PetApi(reqSpecSupplier);
+ }
+
+ private RequestSpecBuilder createReqSpec() {
+ RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+ if(reqSpecCustomizer != null) {
+ reqSpecCustomizer.accept(reqSpec);
+ }
+ return reqSpec;
+ }
+
+ public List getAllOperations() {
+ return Arrays.asList(
+ addPet(),
+ deletePet(),
+ findPetsByStatus(),
+ findPetsByTags(),
+ getPetById(),
+ updatePet(),
+ updatePetWithForm(),
+ uploadFile(),
+ uploadFileWithRequiredFile()
+ );
+ }
+
+ @ApiOperation(value = "Add a new pet to the store",
+ notes = "",
+ nickname = "addPet",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 405, message = "Invalid input") })
+ public AddPetOper addPet() {
+ return new AddPetOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Deletes a pet",
+ notes = "",
+ nickname = "deletePet",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid pet value") })
+ public DeletePetOper deletePet() {
+ return new DeletePetOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Finds Pets by status",
+ notes = "Multiple status values can be provided with comma separated strings",
+ nickname = "findPetsByStatus",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid status value") })
+ public FindPetsByStatusOper findPetsByStatus() {
+ return new FindPetsByStatusOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Finds Pets by tags",
+ notes = "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
+ nickname = "findPetsByTags",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid tag value") })
+ @Deprecated
+ public FindPetsByTagsOper findPetsByTags() {
+ return new FindPetsByTagsOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Find pet by ID",
+ notes = "Returns a single pet",
+ nickname = "getPetById",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid ID supplied") ,
+ @ApiResponse(code = 404, message = "Pet not found") })
+ public GetPetByIdOper getPetById() {
+ return new GetPetByIdOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Update an existing pet",
+ notes = "",
+ nickname = "updatePet",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid ID supplied") ,
+ @ApiResponse(code = 404, message = "Pet not found") ,
+ @ApiResponse(code = 405, message = "Validation exception") })
+ public UpdatePetOper updatePet() {
+ return new UpdatePetOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Updates a pet in the store with form data",
+ notes = "",
+ nickname = "updatePetWithForm",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 405, message = "Invalid input") })
+ public UpdatePetWithFormOper updatePetWithForm() {
+ return new UpdatePetWithFormOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "uploads an image",
+ notes = "",
+ nickname = "uploadFile",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public UploadFileOper uploadFile() {
+ return new UploadFileOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "uploads an image (required)",
+ notes = "",
+ nickname = "uploadFileWithRequiredFile",
+ tags = { "pet" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public UploadFileWithRequiredFileOper uploadFileWithRequiredFile() {
+ return new UploadFileWithRequiredFileOper(createReqSpec());
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return api
+ */
+ public PetApi reqSpec(Consumer reqSpecCustomizer) {
+ this.reqSpecCustomizer = reqSpecCustomizer;
+ return this;
+ }
+
+ /**
+ * Add a new pet to the store
+ *
+ *
+ * @see #body Pet object that needs to be added to the store (required)
+ */
+ public static class AddPetOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/pet";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public AddPetOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /pet
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param body (Pet) Pet object that needs to be added to the store (required)
+ * @return operation
+ */
+ public AddPetOper body(Pet body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public AddPetOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public AddPetOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Deletes a pet
+ *
+ *
+ * @see #petIdPath Pet id to delete (required)
+ * @see #apiKeyHeader (optional)
+ */
+ public static class DeletePetOper implements Oper {
+
+ public static final Method REQ_METHOD = DELETE;
+ public static final String REQ_URI = "/pet/{petId}";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public DeletePetOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * DELETE /pet/{petId}
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String API_KEY_HEADER = "api_key";
+
+ /**
+ * @param apiKey (String) (optional)
+ * @return operation
+ */
+ public DeletePetOper apiKeyHeader(String apiKey) {
+ reqSpec.addHeader(API_KEY_HEADER, apiKey);
+ return this;
+ }
+
+ public static final String PET_ID_PATH = "petId";
+
+ /**
+ * @param petId (Long) Pet id to delete (required)
+ * @return operation
+ */
+ public DeletePetOper petIdPath(Object petId) {
+ reqSpec.addPathParam(PET_ID_PATH, petId);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public DeletePetOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public DeletePetOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Finds Pets by status
+ * Multiple status values can be provided with comma separated strings
+ *
+ * @see #statusQuery Status values that need to be considered for filter (required)
+ * return List<Pet>
+ */
+ public static class FindPetsByStatusOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/pet/findByStatus";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FindPetsByStatusOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /pet/findByStatus
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * GET /pet/findByStatus
+ * @param handler handler
+ * @return List<Pet>
+ */
+ public List executeAs(Function handler) {
+ TypeRef> type = new TypeRef>(){};
+ return execute(handler).as(type);
+ }
+
+ public static final String STATUS_QUERY = "status";
+
+ /**
+ * @param status (List<String>) Status values that need to be considered for filter (required)
+ * @return operation
+ */
+ public FindPetsByStatusOper statusQuery(Object... status) {
+ reqSpec.addQueryParam(STATUS_QUERY, status);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FindPetsByStatusOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FindPetsByStatusOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Finds Pets by tags
+ * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+ *
+ * @see #tagsQuery Tags to filter by (required)
+ * return List<Pet>
+ * @deprecated
+ */
+ @Deprecated
+ public static class FindPetsByTagsOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/pet/findByTags";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public FindPetsByTagsOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /pet/findByTags
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * GET /pet/findByTags
+ * @param handler handler
+ * @return List<Pet>
+ */
+ public List executeAs(Function handler) {
+ TypeRef> type = new TypeRef>(){};
+ return execute(handler).as(type);
+ }
+
+ public static final String TAGS_QUERY = "tags";
+
+ /**
+ * @param tags (List<String>) Tags to filter by (required)
+ * @return operation
+ */
+ public FindPetsByTagsOper tagsQuery(Object... tags) {
+ reqSpec.addQueryParam(TAGS_QUERY, tags);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public FindPetsByTagsOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public FindPetsByTagsOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Find pet by ID
+ * Returns a single pet
+ *
+ * @see #petIdPath ID of pet to return (required)
+ * return Pet
+ */
+ public static class GetPetByIdOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/pet/{petId}";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public GetPetByIdOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /pet/{petId}
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * GET /pet/{petId}
+ * @param handler handler
+ * @return Pet
+ */
+ public Pet executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ public static final String PET_ID_PATH = "petId";
+
+ /**
+ * @param petId (Long) ID of pet to return (required)
+ * @return operation
+ */
+ public GetPetByIdOper petIdPath(Object petId) {
+ reqSpec.addPathParam(PET_ID_PATH, petId);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public GetPetByIdOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public GetPetByIdOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Update an existing pet
+ *
+ *
+ * @see #body Pet object that needs to be added to the store (required)
+ */
+ public static class UpdatePetOper implements Oper {
+
+ public static final Method REQ_METHOD = PUT;
+ public static final String REQ_URI = "/pet";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public UpdatePetOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/json");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * PUT /pet
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * @param body (Pet) Pet object that needs to be added to the store (required)
+ * @return operation
+ */
+ public UpdatePetOper body(Pet body) {
+ reqSpec.setBody(body);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public UpdatePetOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public UpdatePetOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Updates a pet in the store with form data
+ *
+ *
+ * @see #petIdPath ID of pet that needs to be updated (required)
+ * @see #nameForm Updated name of the pet (optional)
+ * @see #statusForm Updated status of the pet (optional)
+ */
+ public static class UpdatePetWithFormOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/pet/{petId}";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public UpdatePetWithFormOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("application/x-www-form-urlencoded");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /pet/{petId}
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String PET_ID_PATH = "petId";
+
+ /**
+ * @param petId (Long) ID of pet that needs to be updated (required)
+ * @return operation
+ */
+ public UpdatePetWithFormOper petIdPath(Object petId) {
+ reqSpec.addPathParam(PET_ID_PATH, petId);
+ return this;
+ }
+
+ public static final String NAME_FORM = "name";
+
+ /**
+ * @param name (String) Updated name of the pet (optional)
+ * @return operation
+ */
+ public UpdatePetWithFormOper nameForm(Object... name) {
+ reqSpec.addFormParam(NAME_FORM, name);
+ return this;
+ }
+
+ public static final String STATUS_FORM = "status";
+
+ /**
+ * @param status (String) Updated status of the pet (optional)
+ * @return operation
+ */
+ public UpdatePetWithFormOper statusForm(Object... status) {
+ reqSpec.addFormParam(STATUS_FORM, status);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public UpdatePetWithFormOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public UpdatePetWithFormOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * uploads an image
+ *
+ *
+ * @see #petIdPath ID of pet to update (required)
+ * @see #additionalMetadataForm Additional data to pass to server (optional)
+ * @see #fileMultiPart file to upload (optional)
+ * return ModelApiResponse
+ */
+ public static class UploadFileOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/pet/{petId}/uploadImage";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public UploadFileOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("multipart/form-data");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /pet/{petId}/uploadImage
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /pet/{petId}/uploadImage
+ * @param handler handler
+ * @return ModelApiResponse
+ */
+ public ModelApiResponse executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ public static final String PET_ID_PATH = "petId";
+
+ /**
+ * @param petId (Long) ID of pet to update (required)
+ * @return operation
+ */
+ public UploadFileOper petIdPath(Object petId) {
+ reqSpec.addPathParam(PET_ID_PATH, petId);
+ return this;
+ }
+
+ public static final String ADDITIONAL_METADATA_FORM = "additionalMetadata";
+
+ /**
+ * @param additionalMetadata (String) Additional data to pass to server (optional)
+ * @return operation
+ */
+ public UploadFileOper additionalMetadataForm(Object... additionalMetadata) {
+ reqSpec.addFormParam(ADDITIONAL_METADATA_FORM, additionalMetadata);
+ return this;
+ }
+
+ /**
+ * It will assume that the control name is file and the <content-type> is <application/octet-stream>
+ * @see #reqSpec for customise
+ * @param file (File) file to upload (optional)
+ * @return operation
+ */
+ public UploadFileOper fileMultiPart(File file) {
+ reqSpec.addMultiPart(file);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public UploadFileOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public UploadFileOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * uploads an image (required)
+ *
+ *
+ * @see #petIdPath ID of pet to update (required)
+ * @see #requiredFileMultiPart file to upload (required)
+ * @see #additionalMetadataForm Additional data to pass to server (optional)
+ * return ModelApiResponse
+ */
+ public static class UploadFileWithRequiredFileOper implements Oper {
+
+ public static final Method REQ_METHOD = POST;
+ public static final String REQ_URI = "/fake/{petId}/uploadImageWithRequiredFile";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public UploadFileWithRequiredFileOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setContentType("multipart/form-data");
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * POST /fake/{petId}/uploadImageWithRequiredFile
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * POST /fake/{petId}/uploadImageWithRequiredFile
+ * @param handler handler
+ * @return ModelApiResponse
+ */
+ public ModelApiResponse executeAs(Function handler) {
+ TypeRef type = new TypeRef(){};
+ return execute(handler).as(type);
+ }
+
+ public static final String PET_ID_PATH = "petId";
+
+ /**
+ * @param petId (Long) ID of pet to update (required)
+ * @return operation
+ */
+ public UploadFileWithRequiredFileOper petIdPath(Object petId) {
+ reqSpec.addPathParam(PET_ID_PATH, petId);
+ return this;
+ }
+
+ public static final String ADDITIONAL_METADATA_FORM = "additionalMetadata";
+
+ /**
+ * @param additionalMetadata (String) Additional data to pass to server (optional)
+ * @return operation
+ */
+ public UploadFileWithRequiredFileOper additionalMetadataForm(Object... additionalMetadata) {
+ reqSpec.addFormParam(ADDITIONAL_METADATA_FORM, additionalMetadata);
+ return this;
+ }
+
+ /**
+ * It will assume that the control name is file and the <content-type> is <application/octet-stream>
+ * @see #reqSpec for customise
+ * @param requiredFile (File) file to upload (required)
+ * @return operation
+ */
+ public UploadFileWithRequiredFileOper requiredFileMultiPart(File requiredFile) {
+ reqSpec.addMultiPart(requiredFile);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public UploadFileWithRequiredFileOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public UploadFileWithRequiredFileOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/StoreApi.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/StoreApi.java
new file mode 100644
index 000000000000..9a2875c303f4
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/StoreApi.java
@@ -0,0 +1,390 @@
+/*
+ * 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: \" \\
+ *
+ * The version of the OpenAPI document: 1.0.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package org.openapitools.client.api;
+
+import org.openapitools.client.model.Order;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import io.restassured.RestAssured;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.builder.ResponseSpecBuilder;
+import io.restassured.common.mapper.TypeRef;
+import io.restassured.http.Method;
+import io.restassured.response.Response;
+import io.swagger.annotations.*;
+
+import java.lang.reflect.Type;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import static io.restassured.http.Method.*;
+
+@Api(value = "Store")
+public class StoreApi {
+
+ private Supplier reqSpecSupplier;
+ private Consumer reqSpecCustomizer;
+
+ private StoreApi(Supplier reqSpecSupplier) {
+ this.reqSpecSupplier = reqSpecSupplier;
+ }
+
+ public static StoreApi store(Supplier reqSpecSupplier) {
+ return new StoreApi(reqSpecSupplier);
+ }
+
+ private RequestSpecBuilder createReqSpec() {
+ RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+ if(reqSpecCustomizer != null) {
+ reqSpecCustomizer.accept(reqSpec);
+ }
+ return reqSpec;
+ }
+
+ public List getAllOperations() {
+ return Arrays.asList(
+ deleteOrder(),
+ getInventory(),
+ getOrderById(),
+ placeOrder()
+ );
+ }
+
+ @ApiOperation(value = "Delete purchase order by ID",
+ notes = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors",
+ nickname = "deleteOrder",
+ tags = { "store" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "Invalid ID supplied") ,
+ @ApiResponse(code = 404, message = "Order not found") })
+ public DeleteOrderOper deleteOrder() {
+ return new DeleteOrderOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Returns pet inventories by status",
+ notes = "Returns a map of status codes to quantities",
+ nickname = "getInventory",
+ tags = { "store" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") })
+ public GetInventoryOper getInventory() {
+ return new GetInventoryOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Find purchase order by ID",
+ notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions",
+ nickname = "getOrderById",
+ tags = { "store" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid ID supplied") ,
+ @ApiResponse(code = 404, message = "Order not found") })
+ public GetOrderByIdOper getOrderById() {
+ return new GetOrderByIdOper(createReqSpec());
+ }
+
+ @ApiOperation(value = "Place an order for a pet",
+ notes = "",
+ nickname = "placeOrder",
+ tags = { "store" })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "successful operation") ,
+ @ApiResponse(code = 400, message = "Invalid Order") })
+ public PlaceOrderOper placeOrder() {
+ return new PlaceOrderOper(createReqSpec());
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return api
+ */
+ public StoreApi reqSpec(Consumer reqSpecCustomizer) {
+ this.reqSpecCustomizer = reqSpecCustomizer;
+ return this;
+ }
+
+ /**
+ * Delete purchase order by ID
+ * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+ *
+ * @see #orderIdPath ID of the order that needs to be deleted (required)
+ */
+ public static class DeleteOrderOper implements Oper {
+
+ public static final Method REQ_METHOD = DELETE;
+ public static final String REQ_URI = "/store/order/{order_id}";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public DeleteOrderOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * DELETE /store/order/{order_id}
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ public static final String ORDER_ID_PATH = "order_id";
+
+ /**
+ * @param orderId (String) ID of the order that needs to be deleted (required)
+ * @return operation
+ */
+ public DeleteOrderOper orderIdPath(Object orderId) {
+ reqSpec.addPathParam(ORDER_ID_PATH, orderId);
+ return this;
+ }
+
+ /**
+ * Customize request specification
+ * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+ * @return operation
+ */
+ public DeleteOrderOper reqSpec(Consumer reqSpecCustomizer) {
+ reqSpecCustomizer.accept(reqSpec);
+ return this;
+ }
+
+ /**
+ * Customize response specification
+ * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+ * @return operation
+ */
+ public DeleteOrderOper respSpec(Consumer respSpecCustomizer) {
+ respSpecCustomizer.accept(respSpec);
+ return this;
+ }
+ }
+ /**
+ * Returns pet inventories by status
+ * Returns a map of status codes to quantities
+ *
+ * return Map<String, Integer>
+ */
+ public static class GetInventoryOper implements Oper {
+
+ public static final Method REQ_METHOD = GET;
+ public static final String REQ_URI = "/store/inventory";
+
+ private RequestSpecBuilder reqSpec;
+ private ResponseSpecBuilder respSpec;
+
+ public GetInventoryOper(RequestSpecBuilder reqSpec) {
+ this.reqSpec = reqSpec;
+ reqSpec.setAccept("application/json");
+ this.respSpec = new ResponseSpecBuilder();
+ }
+
+ /**
+ * GET /store/inventory
+ * @param handler handler
+ * @param type
+ * @return type
+ */
+ @Override
+ public T execute(Function handler) {
+ return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+ }
+
+ /**
+ * GET /store/inventory
+ * @param handler handler
+ * @return Map<String, Integer>
+ */
+ public Map executeAs(Function handler) {
+ TypeRef