From 0adc20f1142cd9fe49dbe537206c34b6152d6425 Mon Sep 17 00:00:00 2001
From: Ghufz <18732053+Ghufz@users.noreply.github.com>
Date: Fri, 17 Apr 2020 20:38:48 +0530
Subject: [PATCH 01/23] [powershell-experimental] ValidatePattern with
 double-quote (") throws-exception (#5956)

* ValidatePattern having double quote(") throws exception on running Build.ps1

* fix tab with space

Co-authored-by: Ghufran Zahidi <gzahidi@cisco.com>
---
 .../PowerShellExperimentalClientCodegen.java  | 23 +++++++++++++++++++
 .../resources/3_0/powershell/petstore.yaml    |  1 +
 .../src/PSPetstore/Model/User.ps1             |  1 +
 3 files changed, 25 insertions(+)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java
index 2b5ae61765c..5896ee99efe 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java
@@ -19,6 +19,7 @@ package org.openapitools.codegen.languages;
 import io.swagger.v3.oas.models.media.ArraySchema;
 import io.swagger.v3.oas.models.media.Schema;
 import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.openapitools.codegen.*;
 import org.openapitools.codegen.meta.GeneratorMetadata;
@@ -622,6 +623,28 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen
         supportingFiles.add(new SupportingFile("appveyor.mustache", "", "appveyor.yml"));
     }
 
+    @SuppressWarnings("static-method")
+    @Override
+    public String escapeText(String input) {
+    
+        if (input == null) {
+            return input;
+        }
+
+        // remove \t, \n, \r
+        // replace \ with \\
+        // replace " with \"
+        // outter unescape to retain the original multi-byte characters
+        // finally escalate characters avoiding code injection
+        return escapeUnsafeCharacters(
+                StringEscapeUtils.unescapeJava(
+                        StringEscapeUtils.escapeJava(input)
+                                .replace("\\/", "/"))
+                        .replaceAll("[\\t\\n\\r]", " ")
+                        .replace("\\", "\\\\")
+                        .replace("\"", "\"\""));
+    }
+    
     @Override
     public String escapeUnsafeCharacters(String input) {
         return input.replace("#>", "#_>").replace("<#", "<_#");
diff --git a/modules/openapi-generator/src/test/resources/3_0/powershell/petstore.yaml b/modules/openapi-generator/src/test/resources/3_0/powershell/petstore.yaml
index a2e1dbaefa6..11ed2854ba5 100644
--- a/modules/openapi-generator/src/test/resources/3_0/powershell/petstore.yaml
+++ b/modules/openapi-generator/src/test/resources/3_0/powershell/petstore.yaml
@@ -689,6 +689,7 @@ components:
           type: string
         password:
           type: string
+          pattern: '["A-Z]+-[0-9][0-9]'
         phone:
           type: string
         userStatus:
diff --git a/samples/client/petstore/powershell-experimental/src/PSPetstore/Model/User.ps1 b/samples/client/petstore/powershell-experimental/src/PSPetstore/Model/User.ps1
index a0147c19298..7e99caf62fb 100644
--- a/samples/client/petstore/powershell-experimental/src/PSPetstore/Model/User.ps1
+++ b/samples/client/petstore/powershell-experimental/src/PSPetstore/Model/User.ps1
@@ -62,6 +62,7 @@ function Initialize-PSUser {
         [String]
         ${Email},
         [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)]
+        [ValidatePattern("[""A-Z]+-[0-9][0-9]")]
         [String]
         ${Password},
         [Parameter(Position = 6, ValueFromPipelineByPropertyName = $true)]
-- 
GitLab


From cb50ad590f82304df534c8d244c0639abe1406bb Mon Sep 17 00:00:00 2001
From: Bouillie <34162532+Bouillie@users.noreply.github.com>
Date: Fri, 17 Apr 2020 19:22:24 +0200
Subject: [PATCH 02/23] [scala-akka-http-server] Fix a generation problem on
 operations with empty responses (#5868)

* [scala-akka-http-server] When expecting an empty response, a response with an empty text/plain content is not produced anymore

* Updated scala-akka-http-server samples

Co-authored-by: Olivier Leonard <oleonard@ankama.com>
---
 .../codegen/languages/ScalaAkkaHttpServerCodegen.java       | 1 +
 .../src/main/resources/scala-akka-http-server/api.mustache  | 6 ++++--
 .../src/main/scala/org/openapitools/server/api/PetApi.scala | 1 +
 .../main/scala/org/openapitools/server/api/StoreApi.scala   | 1 +
 .../main/scala/org/openapitools/server/api/UserApi.scala    | 1 +
 5 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java
index 4b98b531b26..d8c33f499da 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java
@@ -409,6 +409,7 @@ public class ScalaAkkaHttpServerCodegen extends AbstractScalaCodegen implements
                         entityMarshallerTypes.add(marshaller);
                         operationSpecificMarshallers.add(marshaller);
                     }
+                    response.vendorExtensions.put("x-empty-response", response.baseType == null && response.message == null);
                     response.vendorExtensions.put("x-is-default", response.code.equals("0"));
                 }
                 op.vendorExtensions.put("x-specific-marshallers", operationSpecificMarshallers);
diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache
index cc9e7b69039..b680bb05503 100644
--- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache
+++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache
@@ -2,6 +2,7 @@ package {{package}}
 
 import akka.http.scaladsl.server.Directives._
 import akka.http.scaladsl.server.Route
+import akka.http.scaladsl.model.StatusCodes
 {{^pathMatcherPatterns.isEmpty}}import akka.http.scaladsl.server.{PathMatcher, PathMatcher1}
 {{/pathMatcherPatterns.isEmpty}}
 {{#hasMarshalling}}import akka.http.scaladsl.marshalling.ToEntityMarshaller
@@ -63,8 +64,9 @@ object {{classname}}Patterns {
 trait {{classname}}Service {
 
 {{#operation}}
-{{#responses}}  def {{operationId}}{{#vendorExtensions.x-is-default}}Default{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}{{#baseType}}({{#vendorExtensions.x-is-default}}statusCode: Int, {{/vendorExtensions.x-is-default}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.x-is-default}}(statusCode: Int){{/vendorExtensions.x-is-default}}{{/baseType}}: Route =
-    complete(({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}}))
+{{#responses}}  def {{operationId}}{{#vendorExtensions.x-is-default}}Default{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}{{#baseType}}({{#vendorExtensions.x-is-default}}statusCode: Int, {{/vendorExtensions.x-is-default}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.x-is-default}}(statusCode: Int){{/vendorExtensions.x-is-default}}{{/baseType}}: Route ={{#vendorExtensions.x-empty-response}}
+    complete({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}StatusCodes.getForKey({{code}}){{/vendorExtensions.x-is-default}}){{/vendorExtensions.x-empty-response}}{{^vendorExtensions.x-empty-response}}
+    complete(({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}})){{/vendorExtensions.x-empty-response}}
 {{/responses}}
   /**
 {{#responses}}   * {{#code}}Code: {{.}}{{/code}}{{#message}}, Message: {{.}}{{/message}}{{#dataType}}, DataType: {{.}}{{/dataType}}
diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala
index a78bb32e9a5..4c437290a56 100644
--- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala
+++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala
@@ -2,6 +2,7 @@ package org.openapitools.server.api
 
 import akka.http.scaladsl.server.Directives._
 import akka.http.scaladsl.server.Route
+import akka.http.scaladsl.model.StatusCodes
 import akka.http.scaladsl.marshalling.ToEntityMarshaller
 import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller
 import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller
diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala
index a7bfdc65012..7d8a1743b0e 100644
--- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala
+++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala
@@ -2,6 +2,7 @@ package org.openapitools.server.api
 
 import akka.http.scaladsl.server.Directives._
 import akka.http.scaladsl.server.Route
+import akka.http.scaladsl.model.StatusCodes
 import akka.http.scaladsl.marshalling.ToEntityMarshaller
 import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller
 import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller
diff --git a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala
index 0d8cdff7694..2470f1e036c 100644
--- a/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala
+++ b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala
@@ -2,6 +2,7 @@ package org.openapitools.server.api
 
 import akka.http.scaladsl.server.Directives._
 import akka.http.scaladsl.server.Route
+import akka.http.scaladsl.model.StatusCodes
 import akka.http.scaladsl.marshalling.ToEntityMarshaller
 import akka.http.scaladsl.unmarshalling.FromEntityUnmarshaller
 import akka.http.scaladsl.unmarshalling.FromStringUnmarshaller
-- 
GitLab


From e47739dda55a58154b38c35ab2dfafad626e1867 Mon Sep 17 00:00:00 2001
From: Fabian Freund <mail@fabi.online>
Date: Sat, 18 Apr 2020 03:57:18 +0200
Subject: [PATCH 03/23] return a null instead of application/json when no
 content types are set (#5941)

* return a null instead of application/json when no content types are set

* update petstore sample

Co-authored-by: William Cheng <wing328hk@gmail.com>
---
 .../src/main/resources/csharp-netcore/ClientUtils.mustache      | 2 +-
 .../OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs    | 2 +-
 .../src/Org.OpenAPITools/Client/ClientUtils.cs                  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/ClientUtils.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/ClientUtils.mustache
index b407a4edd08..f756a2c86ae 100755
--- a/modules/openapi-generator/src/main/resources/csharp-netcore/ClientUtils.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-netcore/ClientUtils.mustache
@@ -169,7 +169,7 @@ namespace {{packageName}}.Client
         public static String SelectHeaderContentType(String[] contentTypes)
         {
             if (contentTypes.Length == 0)
-                return "application/json";
+                return null;
 
             foreach (var contentType in contentTypes)
             {
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs
index 9bd20d5f576..65d7da67f6a 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Client/ClientUtils.cs
@@ -174,7 +174,7 @@ namespace Org.OpenAPITools.Client
         public static String SelectHeaderContentType(String[] contentTypes)
         {
             if (contentTypes.Length == 0)
-                return "application/json";
+                return null;
 
             foreach (var contentType in contentTypes)
             {
diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/ClientUtils.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/ClientUtils.cs
index 9bd20d5f576..65d7da67f6a 100644
--- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/ClientUtils.cs
+++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Client/ClientUtils.cs
@@ -174,7 +174,7 @@ namespace Org.OpenAPITools.Client
         public static String SelectHeaderContentType(String[] contentTypes)
         {
             if (contentTypes.Length == 0)
-                return "application/json";
+                return null;
 
             foreach (var contentType in contentTypes)
             {
-- 
GitLab


From c5472be422eb8508abbe2a7cb6d4b623f3df6158 Mon Sep 17 00:00:00 2001
From: Alexey Makhrov <amakhrov@gmail.com>
Date: Sat, 18 Apr 2020 00:22:20 -0700
Subject: [PATCH 04/23] Ensure `model.allParents` always includes
 `model.parent`. (#5738)

`allParents` is used by generators with multiple inheritance, e.g typescript and perl
---
 .../org/openapitools/codegen/utils/ModelUtils.java   | 11 +++++------
 .../org/openapitools/codegen/DefaultCodegenTest.java | 12 ++++++++++++
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
index e55479e4a31..8dac545365a 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
@@ -1236,7 +1236,6 @@ public class ModelUtils {
     public static List<String> getAllParentsName(ComposedSchema composedSchema, Map<String, Schema> allSchemas, boolean includeAncestors) {
         List<Schema> interfaces = getInterfaces(composedSchema);
         List<String> names = new ArrayList<String>();
-        List<String> refedWithoutDiscriminator = new ArrayList<>();
 
         if (interfaces != null && !interfaces.isEmpty()) {
             for (Schema schema : interfaces) {
@@ -1255,7 +1254,6 @@ public class ModelUtils {
                         }
                     } else {
                         // not a parent since discriminator.propertyName is not set
-                        refedWithoutDiscriminator.add(parentName);
                     }
                 } else {
                     // not a ref, doing nothing
@@ -1263,10 +1261,11 @@ public class ModelUtils {
             }
         }
 
-        if (names.size() == 0 && refedWithoutDiscriminator.size() == 1) {
-            LOGGER.warn("[deprecated] inheritance without use of 'discriminator.propertyName' is deprecated " +
-                    "and will be removed in a future release. Generating model for {}. Title: {}", composedSchema.getName(), composedSchema.getTitle());
-            return refedWithoutDiscriminator;
+        // ensure `allParents` always includes `parent`
+        // this is more robust than keeping logic in getParentName() and getAllParentsName() in sync
+        String parentName = getParentName(composedSchema, allSchemas);
+        if (parentName != null && !names.contains(parentName)) {
+            names.add(parentName);
         }
 
         return names;
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index ead422552b7..e655027890e 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -604,6 +604,18 @@ public class DefaultCodegenTest {
         Assert.assertEquals(getRequiredVars(childModel), Collections.singletonList("name"));
     }
 
+    @Test
+    public void testAllOfSingleRefWithOwnPropsNoDiscriminator() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml");
+        final DefaultCodegen codegen = new CodegenWithMultipleInheritance();
+
+        Schema schema = openAPI.getComponents().getSchemas().get("MessageEventCoreWithTimeListEntries");
+        codegen.setOpenAPI(openAPI);
+        CodegenModel model = codegen.fromModel("MessageEventCoreWithTimeListEntries", schema);
+        Assert.assertEquals(model.parent, "MessageEventCore");
+        Assert.assertEquals(model.allParents, Collections.singletonList("MessageEventCore"));
+    }
+
     @Test
     public void testAllOfSingleRefNoOwnProps() {
         final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml");
-- 
GitLab


From 84099eefdc7fe4f5a9b7726e376fc01189ae355d Mon Sep 17 00:00:00 2001
From: Falko Modler <famod@users.noreply.github.com>
Date: Sun, 19 Apr 2020 02:40:09 +0200
Subject: [PATCH 05/23] =?UTF-8?q?[maven]=20mark=20Mojo=20threadSafe=3Dtrue?=
 =?UTF-8?q?=20+=20fix=20concurrency=20issue=20in=20Co=E2=80=A6=20(#5898)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../codegen/plugin/CodeGenMojo.java           |   2 +-
 .../codegen/config/CodegenConfigurator.java   | 107 +++++++++---------
 2 files changed, 57 insertions(+), 52 deletions(-)

diff --git a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
index aa386a2995f..0d33707e32d 100644
--- a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
+++ b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
@@ -70,7 +70,7 @@ import com.google.common.io.Files;
  * Goal which generates client/server code from a OpenAPI json/yaml definition.
  */
 @SuppressWarnings({"unused", "MismatchedQueryAndUpdateOfCollection"})
-@Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
+@Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true)
 public class CodeGenMojo extends AbstractMojo {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(CodeGenMojo.class);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
index a60f824278b..840790ed4c8 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
@@ -79,67 +79,72 @@ public class CodegenConfigurator {
     public static CodegenConfigurator fromFile(String configFile, Module... modules) {
 
         if (isNotEmpty(configFile)) {
-            ObjectMapper mapper;
+            DynamicSettings settings = readDynamicSettings(configFile, modules);
 
-            if (FilenameUtils.isExtension(configFile, new String[]{"yml", "yaml"})) {
-                mapper = Yaml.mapper();
-            } else {
-                mapper = Json.mapper();
-            }
+            CodegenConfigurator configurator = new CodegenConfigurator();
 
-            if (modules != null && modules.length > 0) {
-                mapper.registerModules(modules);
+            GeneratorSettings generatorSettings = settings.getGeneratorSettings();
+            WorkflowSettings workflowSettings = settings.getWorkflowSettings();
+
+            // We copy "cached" properties into configurator so it is appropriately configured with all settings in external files.
+            // FIXME: target is to eventually move away from CodegenConfigurator properties except gen/workflow settings.
+            configurator.generatorName = generatorSettings.getGeneratorName();
+            configurator.inputSpec = workflowSettings.getInputSpec();
+            configurator.templatingEngineName = workflowSettings.getTemplatingEngineName();
+            if (workflowSettings.getSystemProperties() != null) {
+                configurator.systemProperties.putAll(workflowSettings.getSystemProperties());
+            }
+            if(generatorSettings.getInstantiationTypes() != null) {
+                configurator.instantiationTypes.putAll(generatorSettings.getInstantiationTypes());
+            }
+            if(generatorSettings.getTypeMappings() != null) {
+                configurator.typeMappings.putAll(generatorSettings.getTypeMappings());
+            }
+            if(generatorSettings.getAdditionalProperties() != null) {
+                configurator.additionalProperties.putAll(generatorSettings.getAdditionalProperties());
+            }
+            if(generatorSettings.getImportMappings() != null) {
+                configurator.importMappings.putAll(generatorSettings.getImportMappings());
+            }
+            if(generatorSettings.getLanguageSpecificPrimitives() != null) {
+                configurator.languageSpecificPrimitives.addAll(generatorSettings.getLanguageSpecificPrimitives());
+            }
+            if(generatorSettings.getReservedWordMappings() != null) {
+                configurator.reservedWordMappings.putAll(generatorSettings.getReservedWordMappings());
+            }
+            if(generatorSettings.getServerVariables() != null) {
+                configurator.serverVariables.putAll(generatorSettings.getServerVariables());
             }
 
-            mapper.registerModule(new GuavaModule());
+            configurator.generatorSettingsBuilder = GeneratorSettings.newBuilder(generatorSettings);
+            configurator.workflowSettingsBuilder = WorkflowSettings.newBuilder(workflowSettings);
 
-            try {
-                DynamicSettings settings = mapper.readValue(new File(configFile), DynamicSettings.class);
-                CodegenConfigurator configurator = new CodegenConfigurator();
+            return configurator;
+        }
+        return null;
+    }
 
-                GeneratorSettings generatorSettings = settings.getGeneratorSettings();
-                WorkflowSettings workflowSettings = settings.getWorkflowSettings();
+    private static DynamicSettings readDynamicSettings(String configFile, Module... modules) {
+        ObjectMapper mapper;
 
-                // We copy "cached" properties into configurator so it is appropriately configured with all settings in external files.
-                // FIXME: target is to eventually move away from CodegenConfigurator properties except gen/workflow settings.
-                configurator.generatorName = generatorSettings.getGeneratorName();
-                configurator.inputSpec = workflowSettings.getInputSpec();
-                configurator.templatingEngineName = workflowSettings.getTemplatingEngineName();
-                if (workflowSettings.getSystemProperties() != null) {
-                    configurator.systemProperties.putAll(workflowSettings.getSystemProperties());
-                }
-                if(generatorSettings.getInstantiationTypes() != null) {
-                    configurator.instantiationTypes.putAll(generatorSettings.getInstantiationTypes());
-                }
-                if(generatorSettings.getTypeMappings() != null) {
-                    configurator.typeMappings.putAll(generatorSettings.getTypeMappings());
-                }
-                if(generatorSettings.getAdditionalProperties() != null) {
-                    configurator.additionalProperties.putAll(generatorSettings.getAdditionalProperties());
-                }
-                if(generatorSettings.getImportMappings() != null) {
-                    configurator.importMappings.putAll(generatorSettings.getImportMappings());
-                }
-                if(generatorSettings.getLanguageSpecificPrimitives() != null) {
-                    configurator.languageSpecificPrimitives.addAll(generatorSettings.getLanguageSpecificPrimitives());
-                }
-                if(generatorSettings.getReservedWordMappings() != null) {
-                    configurator.reservedWordMappings.putAll(generatorSettings.getReservedWordMappings());
-                }
-                if(generatorSettings.getServerVariables() != null) {
-                    configurator.serverVariables.putAll(generatorSettings.getServerVariables());
-                }
+        if (FilenameUtils.isExtension(configFile.toLowerCase(Locale.ROOT), new String[]{"yml", "yaml"})) {
+            mapper = Yaml.mapper().copy();
+        } else {
+            mapper = Json.mapper().copy();
+        }
+
+        if (modules != null && modules.length > 0) {
+            mapper.registerModules(modules);
+        }
 
-                configurator.generatorSettingsBuilder = GeneratorSettings.newBuilder(generatorSettings);
-                configurator.workflowSettingsBuilder = WorkflowSettings.newBuilder(workflowSettings);
+        mapper.registerModule(new GuavaModule());
 
-                return configurator;
-            } catch (IOException ex) {
-                LOGGER.error(ex.getMessage());
-                throw new RuntimeException("Unable to deserialize config file: " + configFile);
-            }
+        try {
+            return mapper.readValue(new File(configFile), DynamicSettings.class);
+        } catch (IOException ex) {
+            LOGGER.error(ex.getMessage());
+            throw new RuntimeException("Unable to deserialize config file: " + configFile);
         }
-        return null;
     }
 
     public CodegenConfigurator addServerVariable(String key, String value) {
-- 
GitLab


From a8620b86638644a4da489f875fde5f62b2e8aa48 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Sun, 19 Apr 2020 10:46:34 +0800
Subject: [PATCH 06/23] add bearer support to csharp client (#5975)

---
 .../src/main/resources/csharp/README.mustache  | 12 ++++++++++++
 .../src/main/resources/csharp/api.mustache     | 18 ++++++++++++++++++
 .../src/main/resources/csharp/api_doc.mustache |  6 ++++++
 .../src/Org.OpenAPITools/Model/FormatTest.cs   | 16 +++++++++++++++-
 .../src/Org.OpenAPITools/Model/FormatTest.cs   | 16 +++++++++++++++-
 5 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/csharp/README.mustache b/modules/openapi-generator/src/main/resources/csharp/README.mustache
index 474bfe829b4..da6053f4aa2 100644
--- a/modules/openapi-generator/src/main/resources/csharp/README.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp/README.mustache
@@ -119,9 +119,15 @@ namespace Example
             {{#hasAuthMethods}}
             {{#authMethods}}
             {{#isBasic}}
+            {{#isBasicBasic}}
             // Configure HTTP basic authorization: {{{name}}}
             Configuration.Default.Username = "YOUR_USERNAME";
             Configuration.Default.Password = "YOUR_PASSWORD";
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // Configure HTTP bearer authorization: {{{name}}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isBasicBearer}}
             {{/isBasic}}
             {{#isApiKey}}
             // Configure API key authorization: {{{name}}}
@@ -205,8 +211,14 @@ Authentication schemes defined for the API:
 - **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}}
 {{/isApiKey}}
 {{#isBasic}}
+{{#isBasicBasic}}
 
 - **Type**: HTTP basic authentication
+{{/isBasicBasic}}
+{{#isBasicBearer}}
+
+- **Type**: HTTP bearer authentication
+{{/isBasicBearer}}
 {{/isBasic}}
 {{#isOAuth}}
 
diff --git a/modules/openapi-generator/src/main/resources/csharp/api.mustache b/modules/openapi-generator/src/main/resources/csharp/api.mustache
index f040c439025..a0300971694 100644
--- a/modules/openapi-generator/src/main/resources/csharp/api.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp/api.mustache
@@ -278,11 +278,20 @@ namespace {{packageName}}.{{apiPackage}}
             {{/isKeyInQuery}}
             {{/isApiKey}}
             {{#isBasic}}
+            {{#isBasicBasic}}
             // http basic authentication required
             if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password))
             {
                 localVarHeaderParams["Authorization"] = "Basic " + ApiClient.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password);
             }
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // http beerer authentication required
+            if (!String.IsNullOrEmpty(this.Configuration.AccessToken))
+            {
+                localVarHeaderParams["Authorization"] = "Bearer " + this.Configuration.AccessToken;
+            }
+            {{/isBasicBearer}}
             {{/isBasic}}
             {{#isOAuth}}
             // oauth required
@@ -414,11 +423,20 @@ namespace {{packageName}}.{{apiPackage}}
             {{/isKeyInQuery}}
             {{/isApiKey}}
             {{#isBasic}}
+            {{#isBasicBasic}}
             // http basic authentication required
             if (!String.IsNullOrEmpty(this.Configuration.Username) || !String.IsNullOrEmpty(this.Configuration.Password))
             {
                 localVarHeaderParams["Authorization"] = "Basic " + ApiClient.Base64Encode(this.Configuration.Username + ":" + this.Configuration.Password);
             }
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // http bearer authentication required
+            if (!String.IsNullOrEmpty(this.Configuration.AccessToken))
+            {
+                localVarHeaderParams["Authorization"] = "Bearer " + this.Configuration.AccessToken;
+            }
+            {{/isBasicBearer}}
             {{/isBasic}}
             {{#isOAuth}}
             // oauth required
diff --git a/modules/openapi-generator/src/main/resources/csharp/api_doc.mustache b/modules/openapi-generator/src/main/resources/csharp/api_doc.mustache
index df59f42415c..6e4bbf7c9a4 100644
--- a/modules/openapi-generator/src/main/resources/csharp/api_doc.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp/api_doc.mustache
@@ -39,9 +39,15 @@ namespace Example
             {{#hasAuthMethods}}
             {{#authMethods}}
             {{#isBasic}}
+            {{#isBasicBasic}}
             // Configure HTTP basic authorization: {{{name}}}
             Configuration.Default.Username = "YOUR_USERNAME";
             Configuration.Default.Password = "YOUR_PASSWORD";
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // Configure HTTP bearer authorization: {{{name}}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isBasicBearer}}
             {{/isBasic}}
             {{#isApiKey}}
             // Configure API key authorization: {{{name}}}
diff --git a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FormatTest.cs
index 31193ac3960..eedd4b6236e 100644
--- a/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FormatTest.cs
+++ b/samples/client/petstore/csharp/OpenAPIClientNet40/src/Org.OpenAPITools/Model/FormatTest.cs
@@ -367,6 +367,8 @@ namespace Org.OpenAPITools.Model
         /// <returns>Validation Result</returns>
         IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
         {
+
+            
             // Integer (int) maximum
             if(this.Integer > (int)100)
             {
@@ -379,6 +381,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Integer, must be a value greater than or equal to 10.", new [] { "Integer" });
             }
 
+
+            
             // Int32 (int) maximum
             if(this.Int32 > (int)200)
             {
@@ -391,6 +395,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Int32, must be a value greater than or equal to 20.", new [] { "Int32" });
             }
 
+
+            
             // Number (decimal) maximum
             if(this.Number > (decimal)543.2)
             {
@@ -403,6 +409,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Number, must be a value greater than or equal to 32.1.", new [] { "Number" });
             }
 
+
+            
             // Float (float) maximum
             if(this.Float > (float)987.6)
             {
@@ -415,6 +423,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Float, must be a value greater than or equal to 54.3.", new [] { "Float" });
             }
 
+
+            
             // Double (double) maximum
             if(this.Double > (double)123.4)
             {
@@ -427,6 +437,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Double, must be a value greater than or equal to 67.8.", new [] { "Double" });
             }
 
+
+            
             // String (string) pattern
             Regex regexString = new Regex(@"[a-z]", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
             if (false == regexString.Match(this.String).Success)
@@ -434,6 +446,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for String, must match a pattern of " + regexString, new [] { "String" });
             }
 
+
+            
             // Password (string) maxLength
             if(this.Password != null && this.Password.Length > 64)
             {
@@ -445,7 +459,7 @@ namespace Org.OpenAPITools.Model
             {
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Password, length must be greater than 10.", new [] { "Password" });
             }
-
+            
             yield break;
         }
     }
diff --git a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FormatTest.cs
index d8452eb07cb..b3ebc9f373b 100644
--- a/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FormatTest.cs
+++ b/samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged/src/Org.OpenAPITools/Model/FormatTest.cs
@@ -390,6 +390,8 @@ namespace Org.OpenAPITools.Model
         /// <returns>Validation Result</returns>
         IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
         {
+
+            
             // Integer (int) maximum
             if(this.Integer > (int)100)
             {
@@ -402,6 +404,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Integer, must be a value greater than or equal to 10.", new [] { "Integer" });
             }
 
+
+            
             // Int32 (int) maximum
             if(this.Int32 > (int)200)
             {
@@ -414,6 +418,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Int32, must be a value greater than or equal to 20.", new [] { "Int32" });
             }
 
+
+            
             // Number (decimal) maximum
             if(this.Number > (decimal)543.2)
             {
@@ -426,6 +432,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Number, must be a value greater than or equal to 32.1.", new [] { "Number" });
             }
 
+
+            
             // Float (float) maximum
             if(this.Float > (float)987.6)
             {
@@ -438,6 +446,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Float, must be a value greater than or equal to 54.3.", new [] { "Float" });
             }
 
+
+            
             // Double (double) maximum
             if(this.Double > (double)123.4)
             {
@@ -450,6 +460,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Double, must be a value greater than or equal to 67.8.", new [] { "Double" });
             }
 
+
+            
             // String (string) pattern
             Regex regexString = new Regex(@"[a-z]", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
             if (false == regexString.Match(this.String).Success)
@@ -457,6 +469,8 @@ namespace Org.OpenAPITools.Model
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for String, must match a pattern of " + regexString, new [] { "String" });
             }
 
+
+            
             // Password (string) maxLength
             if(this.Password != null && this.Password.Length > 64)
             {
@@ -468,7 +482,7 @@ namespace Org.OpenAPITools.Model
             {
                 yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Password, length must be greater than 10.", new [] { "Password" });
             }
-
+            
             yield break;
         }
     }
-- 
GitLab


From 171f71872e7cc7cea32df21f504bdc7676f1f1d7 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Sun, 19 Apr 2020 12:37:48 +0800
Subject: [PATCH 07/23] add test to reuse object from the server (#5976)

---
 .../src/PSPetstore/PSPetstore.psd1                  |  2 +-
 .../tests/Petstore.Tests.ps1                        | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1 b/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1
index 726f4ea5111..5697624e593 100644
--- a/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1
+++ b/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1
@@ -3,7 +3,7 @@
 #
 # Generated by: OpenAPI Generator Team
 #
-# Generated on: 4/10/20
+# Generated on: 4/19/20
 #
 
 @{
diff --git a/samples/client/petstore/powershell-experimental/tests/Petstore.Tests.ps1 b/samples/client/petstore/powershell-experimental/tests/Petstore.Tests.ps1
index adf55dc4bfe..c0c01a1274b 100644
--- a/samples/client/petstore/powershell-experimental/tests/Petstore.Tests.ps1
+++ b/samples/client/petstore/powershell-experimental/tests/Petstore.Tests.ps1
@@ -63,8 +63,21 @@ Describe -tag 'PSOpenAPITools' -name 'Integration Tests' {
             $file = Get-Item "./plus.gif"
             #$Result = Invoke-PSUploadFile -petId $Id -additionalMetadata "Additional data" -File $file
 
+            # modify and update
+            #
+            $NewPet = $Result["response"]
+
+            $NewPet."id" = $NewPet."id" + 1
+            $NewPet."name" = $NewPet."name" + "PowerShell Modify"
+
+            $Result = Update-PSPet -Pet $NewPet
+            $Result = Get-PSPetById -petId $NewPet."id" -WithHttpInfo
+            $Result["Response"]."id" | Should Be $NewPet."id"
+            $Result["Response"]."name" | Should Be $NewPet."name"
+
             # Delete
             $Result = Remove-Pet -petId $Id
+            $Result = Remove-Pet -petId $NewPet."id"
 
         }
 
-- 
GitLab


From f6572fd2f4874f83d3d6faf38a8231d873f3c019 Mon Sep 17 00:00:00 2001
From: "zaleski.d" <zaleskid1@gmail.com>
Date: Sun, 19 Apr 2020 15:38:28 +0200
Subject: [PATCH 08/23] [bug][html2] Fix visibility of body/response schemas
 (#5643)

* 1441 fix visibility of body/response schemas

* Handle schemas with array items

* Point to template directory in bin script

* Regenerate sample

Co-authored-by: Jim Schubert <james.schubert@gmail.com>
---
 bin/html2-petstore.sh                         |   2 +-
 .../openapitools/codegen/DefaultCodegen.java  |   7 +
 .../main/resources/htmlDocs2/index.mustache   |  35 +-
 .../main/resources/htmlDocs2/paramB.mustache  |   5 +-
 .../html2/.openapi-generator/VERSION          |   2 +-
 samples/documentation/html2/index.html        | 664 ++++++++++++------
 6 files changed, 475 insertions(+), 240 deletions(-)

diff --git a/bin/html2-petstore.sh b/bin/html2-petstore.sh
index 3b82165d103..d125551e133 100755
--- a/bin/html2-petstore.sh
+++ b/bin/html2-petstore.sh
@@ -27,6 +27,6 @@ fi
 
 # if you've executed sbt assembly previously it will use that instead.
 export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g html2  -o samples/documentation/html2 --additional-properties hideGenerationTimestamp=true $@"
+ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g html2  -o samples/documentation/html2 -t modules/openapi-generator/src/main/resources/htmlDocs2/ --additional-properties hideGenerationTimestamp=true $@"
 
 java $JAVA_OPTS -jar $executable $ags
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index d75476aa29a..e6a75981b7f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -5543,6 +5543,8 @@ public class DefaultCodegen implements CodegenConfig {
             setParameterNullable(codegenParameter, codegenProperty);
         }
 
+        addJsonSchemaForBodyRequestInCaseItsNotPresent(codegenParameter, body);
+
         // set the parameter's example value
         // should be overridden by lang codegen
         setParameterExampleValue(codegenParameter, body);
@@ -5550,6 +5552,11 @@ public class DefaultCodegen implements CodegenConfig {
         return codegenParameter;
     }
 
+    private void addJsonSchemaForBodyRequestInCaseItsNotPresent(CodegenParameter codegenParameter, RequestBody body){
+        if(codegenParameter.jsonSchema == null)
+            codegenParameter.jsonSchema = Json.pretty(body);
+    }
+
     protected void addOption(String key, String description, String defaultValue) {
         CliOption option = new CliOption(key, description);
         if (defaultValue != null)
diff --git a/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache b/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
index 1cb04a58a9f..e82cd10725d 100644
--- a/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
+++ b/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
@@ -101,6 +101,31 @@
       //Convert elements with "marked" class to markdown
       processMarked();
     });
+
+    function findNode(id, currentNode) {
+        return (Object.keys(currentNode)[0] === id) ? currentNode : findNodeInChildren(id, currentNode);
+    }
+
+    function findNodeInChildren(id, currentNode) {
+        for (let prop in currentNode) {
+            if (currentNode.hasOwnProperty(prop)) {
+                let currentChild = currentNode[prop];
+                if (id === prop) {
+                    return currentChild;
+                } else {
+                    // Search in the current child
+                    if (typeof (currentChild) === 'object') {
+                        let result = findNode(id, currentChild);
+                        if (result !== false) {
+                            return result;
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
   </script>
   <style type="text/css">
     {{>fonts}}
@@ -416,9 +441,14 @@
                                     <script>
                                       $(document).ready(function() {
                                         var schemaWrapper = {{{jsonSchema}}};
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -505,8 +535,7 @@
   {{>js_json_stringify_safe}}
   {{>js_webfontloader}}
   <script>
-    var schemaWrapper = {};
-    schemaWrapper.definitions = Object.assign({}, defs);
+    var schemaWrapper = { "components": { "schemas" : defs}};
     defsParser = new $RefParser();
     defsParser.dereference(schemaWrapper).catch(function(err) {
       console.log(err);
diff --git a/modules/openapi-generator/src/main/resources/htmlDocs2/paramB.mustache b/modules/openapi-generator/src/main/resources/htmlDocs2/paramB.mustache
index 5fbf2b4b191..2c4345a4aa9 100644
--- a/modules/openapi-generator/src/main/resources/htmlDocs2/paramB.mustache
+++ b/modules/openapi-generator/src/main/resources/htmlDocs2/paramB.mustache
@@ -4,7 +4,10 @@
 <script>
 $(document).ready(function() {
   var schemaWrapper = {{{jsonSchema}}};
-  var schema = schemaWrapper.schema;
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
diff --git a/samples/documentation/html2/.openapi-generator/VERSION b/samples/documentation/html2/.openapi-generator/VERSION
index 14900cee60e..bfbf77eb7fa 100644
--- a/samples/documentation/html2/.openapi-generator/VERSION
+++ b/samples/documentation/html2/.openapi-generator/VERSION
@@ -1 +1 @@
-3.2.1-SNAPSHOT
\ No newline at end of file
+4.3.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/documentation/html2/index.html b/samples/documentation/html2/index.html
index 2b37cc2b4bb..ce2a91c0c0b 100644
--- a/samples/documentation/html2/index.html
+++ b/samples/documentation/html2/index.html
@@ -155,6 +155,31 @@ h={};g()}};typeof define==="function"&&define.amd&&define("google-code-prettify"
       //Convert elements with "marked" class to markdown
       processMarked();
     });
+
+    function findNode(id, currentNode) {
+        return (Object.keys(currentNode)[0] === id) ? currentNode : findNodeInChildren(id, currentNode);
+    }
+
+    function findNodeInChildren(id, currentNode) {
+        for (let prop in currentNode) {
+            if (currentNode.hasOwnProperty(prop)) {
+                let currentChild = currentNode[prop];
+                if (id === prop) {
+                    return currentChild;
+                } else {
+                    // Search in the current child
+                    if (typeof (currentChild) === 'object') {
+                        let result = findNode(id, currentChild);
+                        if (result !== false) {
+                            return result;
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
   </script>
   <style type="text/css">
     @import url('https://fonts.googleapis.com/css?family=Source+Code+Pro');
@@ -1144,15 +1169,16 @@ public class PetApiExample {
         petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
 
         PetApi apiInstance = new PetApi();
-        Pet pet = ; // Pet | 
+        Pet body = ; // Pet | 
         try {
-            apiInstance.addPet(pet);
+            apiInstance.addPet(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling PetApi#addPet");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-addPet-0-android">
@@ -1162,9 +1188,9 @@ public class PetApiExample {
 
     public static void main(String[] args) {
         PetApi apiInstance = new PetApi();
-        Pet pet = ; // Pet | 
+        Pet body = ; // Pet | 
         try {
-            apiInstance.addPet(pet);
+            apiInstance.addPet(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling PetApi#addPet");
             e.printStackTrace();
@@ -1182,12 +1208,12 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-Pet *pet = ; // 
+Pet *body = ; // 
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
 // Add a new pet to the store
-[apiInstance addPetWith:pet
+[apiInstance addPetWith:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -1205,7 +1231,7 @@ var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = "YOUR ACCESS TOKEN"
 
 var api = new OpenApiPetstore.PetApi()
-var pet = ; // {Pet} 
+var body = ; // {Pet} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -1214,7 +1240,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.addPet(pet, callback);
+api.addPet(body, callback);
 </code></pre>
                             </div>
 
@@ -1239,12 +1265,12 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var pet = new Pet(); // Pet | 
+            var body = new Pet(); // Pet | 
 
             try
             {
                 // Add a new pet to the store
-                apiInstance.addPet(pet);
+                apiInstance.addPet(body);
             }
             catch (Exception e)
             {
@@ -1264,10 +1290,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
 OpenAPITools\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
 
 $api_instance = new OpenAPITools\Client\Api\PetApi();
-$pet = ; // Pet | 
+$body = ; // Pet | 
 
 try {
-    $api_instance->addPet($pet);
+    $api_instance->addPet($body);
 } catch (Exception $e) {
     echo 'Exception when calling PetApi->addPet: ', $e->getMessage(), PHP_EOL;
 }
@@ -1283,10 +1309,10 @@ use WWW::OPenAPIClient::PetApi;
 $WWW::OPenAPIClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
 
 my $api_instance = WWW::OPenAPIClient::PetApi->new();
-my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | 
+my $body = WWW::OPenAPIClient::Object::Pet->new(); # Pet | 
 
 eval { 
-    $api_instance->addPet(pet => $pet);
+    $api_instance->addPet(body => $body);
 };
 if ($@) {
     warn "Exception when calling PetApi->addPet: $@\n";
@@ -1305,11 +1331,11 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-pet =  # Pet | 
+body =  # Pet | 
 
 try: 
     # Add a new pet to the store
-    api_instance.add_pet(pet)
+    api_instance.add_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->addPet: %s\n" % e)</code></pre>
                             </div>
@@ -1318,10 +1344,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate PetApi;
 
 pub fn main() {
-    let pet = ; // Pet
+    let body = ; // Pet
 
     let mut context = PetApi::Context::default();
-    let result = client.addPet(pet, &context).wait();
+    let result = client.addPet(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -1354,13 +1380,31 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">pet <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">Pet object that needs to be added to the store</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "Pet object that needs to be added to the store",
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Pet"
+      }
+    },
+    "application/xml" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Pet"
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -1371,12 +1415,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_addPet_pet');
+  var result = $('#d2e199_addPet_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_addPet_pet"></div>
+<div id="d2e199_addPet_body"></div>
 </td>
 </tr>
 
@@ -1473,7 +1517,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-deletePet-0-android">
@@ -1504,8 +1549,8 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-Long *petId = 789; // Pet id to delete
-String *apiKey = apiKey_example; //  (optional)
+Long *petId = 789; // Pet id to delete (default to null)
+String *apiKey = apiKey_example; //  (optional) (default to null)
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
@@ -1566,8 +1611,8 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var petId = 789;  // Long | Pet id to delete
-            var apiKey = apiKey_example;  // String |  (optional) 
+            var petId = 789;  // Long | Pet id to delete (default to null)
+            var apiKey = apiKey_example;  // String |  (optional)  (default to null)
 
             try
             {
@@ -1635,8 +1680,8 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-petId = 789 # Long | Pet id to delete
-apiKey = apiKey_example # String |  (optional)
+petId = 789 # Long | Pet id to delete (default to null)
+apiKey = apiKey_example # String |  (optional) (default to null)
 
 try: 
     # Deletes a pet
@@ -1829,7 +1874,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-findPetsByStatus-0-android">
@@ -1860,7 +1906,7 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-array[String] *status = ; // Status values that need to be considered for filter
+array[String] *status = ; // Status values that need to be considered for filter (default to null)
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
@@ -1920,7 +1966,7 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var status = new array[String](); // array[String] | Status values that need to be considered for filter
+            var status = new array[String](); // array[String] | Status values that need to be considered for filter (default to null)
 
             try
             {
@@ -1989,7 +2035,7 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-status =  # array[String] | Status values that need to be considered for filter
+status =  # array[String] | Status values that need to be considered for filter (default to null)
 
 try: 
     # Finds Pets by status
@@ -2118,9 +2164,14 @@ Status values that need to be considered for filter
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -2227,7 +2278,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-findPetsByTags-0-android">
@@ -2258,7 +2310,7 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-array[String] *tags = ; // Tags to filter by
+array[String] *tags = ; // Tags to filter by (default to null)
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
@@ -2318,7 +2370,7 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var tags = new array[String](); // array[String] | Tags to filter by
+            var tags = new array[String](); // array[String] | Tags to filter by (default to null)
 
             try
             {
@@ -2387,7 +2439,7 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-tags =  # array[String] | Tags to filter by
+tags =  # array[String] | Tags to filter by (default to null)
 
 try: 
     # Finds Pets by tags
@@ -2516,9 +2568,14 @@ Tags to filter by
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -2627,7 +2684,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-getPetById-0-android">
@@ -2660,7 +2718,7 @@ public class PetApiExample {
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
 //[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"api_key"];
 
-Long *petId = 789; // ID of pet to return
+Long *petId = 789; // ID of pet to return (default to null)
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
@@ -2724,7 +2782,7 @@ namespace Example
             // Configuration.Default.ApiKeyPrefix.Add("api_key", "Bearer");
 
             var apiInstance = new PetApi();
-            var petId = 789;  // Long | ID of pet to return
+            var petId = 789;  // Long | ID of pet to return (default to null)
 
             try
             {
@@ -2799,7 +2857,7 @@ openapi_client.configuration.api_key['api_key'] = 'YOUR_API_KEY'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-petId = 789 # Long | ID of pet to return
+petId = 789 # Long | ID of pet to return (default to null)
 
 try: 
     # Find pet by ID
@@ -2915,9 +2973,14 @@ ID of pet to return
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -3037,15 +3100,16 @@ public class PetApiExample {
         petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
 
         PetApi apiInstance = new PetApi();
-        Pet pet = ; // Pet | 
+        Pet body = ; // Pet | 
         try {
-            apiInstance.updatePet(pet);
+            apiInstance.updatePet(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling PetApi#updatePet");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-updatePet-0-android">
@@ -3055,9 +3119,9 @@ public class PetApiExample {
 
     public static void main(String[] args) {
         PetApi apiInstance = new PetApi();
-        Pet pet = ; // Pet | 
+        Pet body = ; // Pet | 
         try {
-            apiInstance.updatePet(pet);
+            apiInstance.updatePet(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling PetApi#updatePet");
             e.printStackTrace();
@@ -3075,12 +3139,12 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-Pet *pet = ; // 
+Pet *body = ; // 
 
 PetApi *apiInstance = [[PetApi alloc] init];
 
 // Update an existing pet
-[apiInstance updatePetWith:pet
+[apiInstance updatePetWith:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -3098,7 +3162,7 @@ var petstore_auth = defaultClient.authentications['petstore_auth'];
 petstore_auth.accessToken = "YOUR ACCESS TOKEN"
 
 var api = new OpenApiPetstore.PetApi()
-var pet = ; // {Pet} 
+var body = ; // {Pet} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -3107,7 +3171,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.updatePet(pet, callback);
+api.updatePet(body, callback);
 </code></pre>
                             </div>
 
@@ -3132,12 +3196,12 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var pet = new Pet(); // Pet | 
+            var body = new Pet(); // Pet | 
 
             try
             {
                 // Update an existing pet
-                apiInstance.updatePet(pet);
+                apiInstance.updatePet(body);
             }
             catch (Exception e)
             {
@@ -3157,10 +3221,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
 OpenAPITools\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');
 
 $api_instance = new OpenAPITools\Client\Api\PetApi();
-$pet = ; // Pet | 
+$body = ; // Pet | 
 
 try {
-    $api_instance->updatePet($pet);
+    $api_instance->updatePet($body);
 } catch (Exception $e) {
     echo 'Exception when calling PetApi->updatePet: ', $e->getMessage(), PHP_EOL;
 }
@@ -3176,10 +3240,10 @@ use WWW::OPenAPIClient::PetApi;
 $WWW::OPenAPIClient::Configuration::access_token = 'YOUR_ACCESS_TOKEN';
 
 my $api_instance = WWW::OPenAPIClient::PetApi->new();
-my $pet = WWW::OPenAPIClient::Object::Pet->new(); # Pet | 
+my $body = WWW::OPenAPIClient::Object::Pet->new(); # Pet | 
 
 eval { 
-    $api_instance->updatePet(pet => $pet);
+    $api_instance->updatePet(body => $body);
 };
 if ($@) {
     warn "Exception when calling PetApi->updatePet: $@\n";
@@ -3198,11 +3262,11 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-pet =  # Pet | 
+body =  # Pet | 
 
 try: 
     # Update an existing pet
-    api_instance.update_pet(pet)
+    api_instance.update_pet(body)
 except ApiException as e:
     print("Exception when calling PetApi->updatePet: %s\n" % e)</code></pre>
                             </div>
@@ -3211,10 +3275,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate PetApi;
 
 pub fn main() {
-    let pet = ; // Pet
+    let body = ; // Pet
 
     let mut context = PetApi::Context::default();
-    let result = client.updatePet(pet, &context).wait();
+    let result = client.updatePet(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -3247,13 +3311,31 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">pet <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">Pet object that needs to be added to the store</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "Pet object that needs to be added to the store",
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Pet"
+      }
+    },
+    "application/xml" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Pet"
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -3264,12 +3346,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_updatePet_pet');
+  var result = $('#d2e199_updatePet_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_updatePet_pet"></div>
+<div id="d2e199_updatePet_body"></div>
 </td>
 </tr>
 
@@ -3411,7 +3493,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-updatePetWithForm-0-android">
@@ -3443,7 +3526,7 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-Long *petId = 789; // ID of pet that needs to be updated
+Long *petId = 789; // ID of pet that needs to be updated (default to null)
 String *name = name_example; // Updated name of the pet (optional) (default to null)
 String *status = status_example; // Updated status of the pet (optional) (default to null)
 
@@ -3508,7 +3591,7 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var petId = 789;  // Long | ID of pet that needs to be updated
+            var petId = 789;  // Long | ID of pet that needs to be updated (default to null)
             var name = name_example;  // String | Updated name of the pet (optional)  (default to null)
             var status = status_example;  // String | Updated status of the pet (optional)  (default to null)
 
@@ -3580,7 +3663,7 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-petId = 789 # Long | ID of pet that needs to be updated
+petId = 789 # Long | ID of pet that needs to be updated (default to null)
 name = name_example # String | Updated name of the pet (optional) (default to null)
 status = status_example # String | Updated status of the pet (optional) (default to null)
 
@@ -3801,7 +3884,8 @@ public class PetApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Pet-uploadFile-0-android">
@@ -3834,7 +3918,7 @@ public class PetApiExample {
 // Configure OAuth2 access token for authorization: (authentication scheme: petstore_auth)
 [apiConfig setAccessToken:@"YOUR_ACCESS_TOKEN"];
 
-Long *petId = 789; // ID of pet to update
+Long *petId = 789; // ID of pet to update (default to null)
 String *additionalMetadata = additionalMetadata_example; // Additional data to pass to server (optional) (default to null)
 File *file = BINARY_DATA_HERE; // file to upload (optional) (default to null)
 
@@ -3902,7 +3986,7 @@ namespace Example
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
             var apiInstance = new PetApi();
-            var petId = 789;  // Long | ID of pet to update
+            var petId = 789;  // Long | ID of pet to update (default to null)
             var additionalMetadata = additionalMetadata_example;  // String | Additional data to pass to server (optional)  (default to null)
             var file = BINARY_DATA_HERE;  // File | file to upload (optional)  (default to null)
 
@@ -3977,7 +4061,7 @@ openapi_client.configuration.access_token = 'YOUR_ACCESS_TOKEN'
 
 # create an instance of the API class
 api_instance = openapi_client.PetApi()
-petId = 789 # Long | ID of pet to update
+petId = 789 # Long | ID of pet to update (default to null)
 additionalMetadata = additionalMetadata_example # String | Additional data to pass to server (optional) (default to null)
 file = BINARY_DATA_HERE # File | file to upload (optional) (default to null)
 
@@ -4152,9 +4236,14 @@ file to upload
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -4236,7 +4325,8 @@ public class StoreApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Store-deleteOrder-0-android">
@@ -4261,7 +4351,7 @@ public class StoreApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-Store-deleteOrder-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">String *orderId = orderId_example; // ID of the order that needs to be deleted
+                              <pre class="prettyprint"><code class="language-cpp">String *orderId = orderId_example; // ID of the order that needs to be deleted (default to null)
 
 StoreApi *apiInstance = [[StoreApi alloc] init];
 
@@ -4310,7 +4400,7 @@ namespace Example
         {
             
             var apiInstance = new StoreApi();
-            var orderId = orderId_example;  // String | ID of the order that needs to be deleted
+            var orderId = orderId_example;  // String | ID of the order that needs to be deleted (default to null)
 
             try
             {
@@ -4367,7 +4457,7 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.StoreApi()
-orderId = orderId_example # String | ID of the order that needs to be deleted
+orderId = orderId_example # String | ID of the order that needs to be deleted (default to null)
 
 try: 
     # Delete purchase order by ID
@@ -4545,7 +4635,8 @@ public class StoreApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Store-getInventory-0-android">
@@ -4790,9 +4881,14 @@ pub fn main() {
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -4872,7 +4968,8 @@ public class StoreApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Store-getOrderById-0-android">
@@ -4898,7 +4995,7 @@ public class StoreApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-Store-getOrderById-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">Long *orderId = 789; // ID of pet that needs to be fetched
+                              <pre class="prettyprint"><code class="language-cpp">Long *orderId = 789; // ID of pet that needs to be fetched (default to null)
 
 StoreApi *apiInstance = [[StoreApi alloc] init];
 
@@ -4950,7 +5047,7 @@ namespace Example
         {
             
             var apiInstance = new StoreApi();
-            var orderId = 789;  // Long | ID of pet that needs to be fetched
+            var orderId = 789;  // Long | ID of pet that needs to be fetched (default to null)
 
             try
             {
@@ -5010,7 +5107,7 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.StoreApi()
-orderId = 789 # Long | ID of pet that needs to be fetched
+orderId = 789 # Long | ID of pet that needs to be fetched (default to null)
 
 try: 
     # Find purchase order by ID
@@ -5126,9 +5223,14 @@ ID of pet that needs to be fetched
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -5243,16 +5345,17 @@ public class StoreApiExample {
     public static void main(String[] args) {
         
         StoreApi apiInstance = new StoreApi();
-        Order order = ; // Order | 
+        Order body = ; // Order | 
         try {
-            Order result = apiInstance.placeOrder(order);
+            Order result = apiInstance.placeOrder(body);
             System.out.println(result);
         } catch (ApiException e) {
             System.err.println("Exception when calling StoreApi#placeOrder");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-Store-placeOrder-0-android">
@@ -5262,9 +5365,9 @@ public class StoreApiExample {
 
     public static void main(String[] args) {
         StoreApi apiInstance = new StoreApi();
-        Order order = ; // Order | 
+        Order body = ; // Order | 
         try {
-            Order result = apiInstance.placeOrder(order);
+            Order result = apiInstance.placeOrder(body);
             System.out.println(result);
         } catch (ApiException e) {
             System.err.println("Exception when calling StoreApi#placeOrder");
@@ -5278,12 +5381,12 @@ public class StoreApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-Store-placeOrder-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">Order *order = ; // 
+                              <pre class="prettyprint"><code class="language-cpp">Order *body = ; // 
 
 StoreApi *apiInstance = [[StoreApi alloc] init];
 
 // Place an order for a pet
-[apiInstance placeOrderWith:order
+[apiInstance placeOrderWith:body
               completionHandler: ^(Order output, NSError* error) {
                             if (output) {
                                 NSLog(@"%@", output);
@@ -5299,7 +5402,7 @@ StoreApi *apiInstance = [[StoreApi alloc] init];
                               <pre class="prettyprint"><code class="language-js">var OpenApiPetstore = require('open_api_petstore');
 
 var api = new OpenApiPetstore.StoreApi()
-var order = ; // {Order} 
+var body = ; // {Order} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -5308,7 +5411,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.placeOrder(order, callback);
+api.placeOrder(body, callback);
 </code></pre>
                             </div>
 
@@ -5330,12 +5433,12 @@ namespace Example
         {
             
             var apiInstance = new StoreApi();
-            var order = new Order(); // Order | 
+            var body = new Order(); // Order | 
 
             try
             {
                 // Place an order for a pet
-                Order result = apiInstance.placeOrder(order);
+                Order result = apiInstance.placeOrder(body);
                 Debug.WriteLine(result);
             }
             catch (Exception e)
@@ -5353,10 +5456,10 @@ namespace Example
 require_once(__DIR__ . '/vendor/autoload.php');
 
 $api_instance = new OpenAPITools\Client\Api\StoreApi();
-$order = ; // Order | 
+$body = ; // Order | 
 
 try {
-    $result = $api_instance->placeOrder($order);
+    $result = $api_instance->placeOrder($body);
     print_r($result);
 } catch (Exception $e) {
     echo 'Exception when calling StoreApi->placeOrder: ', $e->getMessage(), PHP_EOL;
@@ -5370,10 +5473,10 @@ use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::StoreApi;
 
 my $api_instance = WWW::OPenAPIClient::StoreApi->new();
-my $order = WWW::OPenAPIClient::Object::Order->new(); # Order | 
+my $body = WWW::OPenAPIClient::Object::Order->new(); # Order | 
 
 eval { 
-    my $result = $api_instance->placeOrder(order => $order);
+    my $result = $api_instance->placeOrder(body => $body);
     print Dumper($result);
 };
 if ($@) {
@@ -5390,11 +5493,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.StoreApi()
-order =  # Order | 
+body =  # Order | 
 
 try: 
     # Place an order for a pet
-    api_response = api_instance.place_order(order)
+    api_response = api_instance.place_order(body)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling StoreApi->placeOrder: %s\n" % e)</code></pre>
@@ -5404,10 +5507,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate StoreApi;
 
 pub fn main() {
-    let order = ; // Order
+    let body = ; // Order
 
     let mut context = StoreApi::Context::default();
-    let result = client.placeOrder(order, &context).wait();
+    let result = client.placeOrder(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -5430,13 +5533,26 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">order <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">order placed for purchasing the pet</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "order placed for purchasing the pet",
+  "content" : {
+    "*/*" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Order"
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -5447,12 +5563,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_placeOrder_order');
+  var result = $('#d2e199_placeOrder_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_placeOrder_order"></div>
+<div id="d2e199_placeOrder_body"></div>
 </td>
 </tr>
 
@@ -5506,9 +5622,14 @@ $(document).ready(function() {
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -5604,15 +5725,16 @@ public class UserApiExample {
     public static void main(String[] args) {
         
         UserApi apiInstance = new UserApi();
-        User user = ; // User | 
+        User body = ; // User | 
         try {
-            apiInstance.createUser(user);
+            apiInstance.createUser(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUser");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-createUser-0-android">
@@ -5622,9 +5744,9 @@ public class UserApiExample {
 
     public static void main(String[] args) {
         UserApi apiInstance = new UserApi();
-        User user = ; // User | 
+        User body = ; // User | 
         try {
-            apiInstance.createUser(user);
+            apiInstance.createUser(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUser");
             e.printStackTrace();
@@ -5637,12 +5759,12 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-createUser-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">User *user = ; // 
+                              <pre class="prettyprint"><code class="language-cpp">User *body = ; // 
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
 // Create user
-[apiInstance createUserWith:user
+[apiInstance createUserWith:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -5655,7 +5777,7 @@ UserApi *apiInstance = [[UserApi alloc] init];
                               <pre class="prettyprint"><code class="language-js">var OpenApiPetstore = require('open_api_petstore');
 
 var api = new OpenApiPetstore.UserApi()
-var user = ; // {User} 
+var body = ; // {User} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -5664,7 +5786,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.createUser(user, callback);
+api.createUser(body, callback);
 </code></pre>
                             </div>
 
@@ -5686,12 +5808,12 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var user = new User(); // User | 
+            var body = new User(); // User | 
 
             try
             {
                 // Create user
-                apiInstance.createUser(user);
+                apiInstance.createUser(body);
             }
             catch (Exception e)
             {
@@ -5708,10 +5830,10 @@ namespace Example
 require_once(__DIR__ . '/vendor/autoload.php');
 
 $api_instance = new OpenAPITools\Client\Api\UserApi();
-$user = ; // User | 
+$body = ; // User | 
 
 try {
-    $api_instance->createUser($user);
+    $api_instance->createUser($body);
 } catch (Exception $e) {
     echo 'Exception when calling UserApi->createUser: ', $e->getMessage(), PHP_EOL;
 }
@@ -5724,10 +5846,10 @@ use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::UserApi;
 
 my $api_instance = WWW::OPenAPIClient::UserApi->new();
-my $user = WWW::OPenAPIClient::Object::User->new(); # User | 
+my $body = WWW::OPenAPIClient::Object::User->new(); # User | 
 
 eval { 
-    $api_instance->createUser(user => $user);
+    $api_instance->createUser(body => $body);
 };
 if ($@) {
     warn "Exception when calling UserApi->createUser: $@\n";
@@ -5743,11 +5865,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-user =  # User | 
+body =  # User | 
 
 try: 
     # Create user
-    api_instance.create_user(user)
+    api_instance.create_user(body)
 except ApiException as e:
     print("Exception when calling UserApi->createUser: %s\n" % e)</code></pre>
                             </div>
@@ -5756,10 +5878,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate UserApi;
 
 pub fn main() {
-    let user = ; // User
+    let body = ; // User
 
     let mut context = UserApi::Context::default();
-    let result = client.createUser(user, &context).wait();
+    let result = client.createUser(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -5782,13 +5904,26 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">user <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">Created user object</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "Created user object",
+  "content" : {
+    "*/*" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/User"
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -5799,12 +5934,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_createUser_user');
+  var result = $('#d2e199_createUser_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_createUser_user"></div>
+<div id="d2e199_createUser_body"></div>
 </td>
 </tr>
 
@@ -5887,15 +6022,16 @@ public class UserApiExample {
     public static void main(String[] args) {
         
         UserApi apiInstance = new UserApi();
-        array[User] user = ; // array[User] | 
+        array[User] body = ; // array[User] | 
         try {
-            apiInstance.createUsersWithArrayInput(user);
+            apiInstance.createUsersWithArrayInput(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUsersWithArrayInput");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-createUsersWithArrayInput-0-android">
@@ -5905,9 +6041,9 @@ public class UserApiExample {
 
     public static void main(String[] args) {
         UserApi apiInstance = new UserApi();
-        array[User] user = ; // array[User] | 
+        array[User] body = ; // array[User] | 
         try {
-            apiInstance.createUsersWithArrayInput(user);
+            apiInstance.createUsersWithArrayInput(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUsersWithArrayInput");
             e.printStackTrace();
@@ -5920,12 +6056,12 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-createUsersWithArrayInput-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">array[User] *user = ; // 
+                              <pre class="prettyprint"><code class="language-cpp">array[User] *body = ; // 
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
 // Creates list of users with given input array
-[apiInstance createUsersWithArrayInputWith:user
+[apiInstance createUsersWithArrayInputWith:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -5938,7 +6074,7 @@ UserApi *apiInstance = [[UserApi alloc] init];
                               <pre class="prettyprint"><code class="language-js">var OpenApiPetstore = require('open_api_petstore');
 
 var api = new OpenApiPetstore.UserApi()
-var user = ; // {array[User]} 
+var body = ; // {array[User]} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -5947,7 +6083,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.createUsersWithArrayInput(user, callback);
+api.createUsersWithArrayInput(body, callback);
 </code></pre>
                             </div>
 
@@ -5969,12 +6105,12 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var user = new array[User](); // array[User] | 
+            var body = new array[User](); // array[User] | 
 
             try
             {
                 // Creates list of users with given input array
-                apiInstance.createUsersWithArrayInput(user);
+                apiInstance.createUsersWithArrayInput(body);
             }
             catch (Exception e)
             {
@@ -5991,10 +6127,10 @@ namespace Example
 require_once(__DIR__ . '/vendor/autoload.php');
 
 $api_instance = new OpenAPITools\Client\Api\UserApi();
-$user = ; // array[User] | 
+$body = ; // array[User] | 
 
 try {
-    $api_instance->createUsersWithArrayInput($user);
+    $api_instance->createUsersWithArrayInput($body);
 } catch (Exception $e) {
     echo 'Exception when calling UserApi->createUsersWithArrayInput: ', $e->getMessage(), PHP_EOL;
 }
@@ -6007,10 +6143,10 @@ use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::UserApi;
 
 my $api_instance = WWW::OPenAPIClient::UserApi->new();
-my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | 
+my $body = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | 
 
 eval { 
-    $api_instance->createUsersWithArrayInput(user => $user);
+    $api_instance->createUsersWithArrayInput(body => $body);
 };
 if ($@) {
     warn "Exception when calling UserApi->createUsersWithArrayInput: $@\n";
@@ -6026,11 +6162,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-user =  # array[User] | 
+body =  # array[User] | 
 
 try: 
     # Creates list of users with given input array
-    api_instance.create_users_with_array_input(user)
+    api_instance.create_users_with_array_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->createUsersWithArrayInput: %s\n" % e)</code></pre>
                             </div>
@@ -6039,10 +6175,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate UserApi;
 
 pub fn main() {
-    let user = ; // array[User]
+    let body = ; // array[User]
 
     let mut context = UserApi::Context::default();
-    let result = client.createUsersWithArrayInput(user, &context).wait();
+    let result = client.createUsersWithArrayInput(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -6065,13 +6201,29 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">user <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">List of user object</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "List of user object",
+  "content" : {
+    "*/*" : {
+      "schema" : {
+        "type" : "array",
+        "items" : {
+          "$ref" : "#/components/schemas/User"
+        }
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -6082,12 +6234,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_createUsersWithArrayInput_user');
+  var result = $('#d2e199_createUsersWithArrayInput_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_createUsersWithArrayInput_user"></div>
+<div id="d2e199_createUsersWithArrayInput_body"></div>
 </td>
 </tr>
 
@@ -6170,15 +6322,16 @@ public class UserApiExample {
     public static void main(String[] args) {
         
         UserApi apiInstance = new UserApi();
-        array[User] user = ; // array[User] | 
+        array[User] body = ; // array[User] | 
         try {
-            apiInstance.createUsersWithListInput(user);
+            apiInstance.createUsersWithListInput(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUsersWithListInput");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-createUsersWithListInput-0-android">
@@ -6188,9 +6341,9 @@ public class UserApiExample {
 
     public static void main(String[] args) {
         UserApi apiInstance = new UserApi();
-        array[User] user = ; // array[User] | 
+        array[User] body = ; // array[User] | 
         try {
-            apiInstance.createUsersWithListInput(user);
+            apiInstance.createUsersWithListInput(body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#createUsersWithListInput");
             e.printStackTrace();
@@ -6203,12 +6356,12 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-createUsersWithListInput-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">array[User] *user = ; // 
+                              <pre class="prettyprint"><code class="language-cpp">array[User] *body = ; // 
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
 // Creates list of users with given input array
-[apiInstance createUsersWithListInputWith:user
+[apiInstance createUsersWithListInputWith:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -6221,7 +6374,7 @@ UserApi *apiInstance = [[UserApi alloc] init];
                               <pre class="prettyprint"><code class="language-js">var OpenApiPetstore = require('open_api_petstore');
 
 var api = new OpenApiPetstore.UserApi()
-var user = ; // {array[User]} 
+var body = ; // {array[User]} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -6230,7 +6383,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.createUsersWithListInput(user, callback);
+api.createUsersWithListInput(body, callback);
 </code></pre>
                             </div>
 
@@ -6252,12 +6405,12 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var user = new array[User](); // array[User] | 
+            var body = new array[User](); // array[User] | 
 
             try
             {
                 // Creates list of users with given input array
-                apiInstance.createUsersWithListInput(user);
+                apiInstance.createUsersWithListInput(body);
             }
             catch (Exception e)
             {
@@ -6274,10 +6427,10 @@ namespace Example
 require_once(__DIR__ . '/vendor/autoload.php');
 
 $api_instance = new OpenAPITools\Client\Api\UserApi();
-$user = ; // array[User] | 
+$body = ; // array[User] | 
 
 try {
-    $api_instance->createUsersWithListInput($user);
+    $api_instance->createUsersWithListInput($body);
 } catch (Exception $e) {
     echo 'Exception when calling UserApi->createUsersWithListInput: ', $e->getMessage(), PHP_EOL;
 }
@@ -6290,10 +6443,10 @@ use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::UserApi;
 
 my $api_instance = WWW::OPenAPIClient::UserApi->new();
-my $user = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | 
+my $body = [WWW::OPenAPIClient::Object::array[User]->new()]; # array[User] | 
 
 eval { 
-    $api_instance->createUsersWithListInput(user => $user);
+    $api_instance->createUsersWithListInput(body => $body);
 };
 if ($@) {
     warn "Exception when calling UserApi->createUsersWithListInput: $@\n";
@@ -6309,11 +6462,11 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-user =  # array[User] | 
+body =  # array[User] | 
 
 try: 
     # Creates list of users with given input array
-    api_instance.create_users_with_list_input(user)
+    api_instance.create_users_with_list_input(body)
 except ApiException as e:
     print("Exception when calling UserApi->createUsersWithListInput: %s\n" % e)</code></pre>
                             </div>
@@ -6322,10 +6475,10 @@ except ApiException as e:
                               <pre class="prettyprint"><code class="language-rust">extern crate UserApi;
 
 pub fn main() {
-    let user = ; // array[User]
+    let body = ; // array[User]
 
     let mut context = UserApi::Context::default();
-    let result = client.createUsersWithListInput(user, &context).wait();
+    let result = client.createUsersWithListInput(body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -6348,13 +6501,29 @@ pub fn main() {
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">user <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">List of user object</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "List of user object",
+  "content" : {
+    "*/*" : {
+      "schema" : {
+        "type" : "array",
+        "items" : {
+          "$ref" : "#/components/schemas/User"
+        }
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -6365,12 +6534,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_createUsersWithListInput_user');
+  var result = $('#d2e199_createUsersWithListInput_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_createUsersWithListInput_user"></div>
+<div id="d2e199_createUsersWithListInput_body"></div>
 </td>
 </tr>
 
@@ -6461,7 +6630,8 @@ public class UserApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-deleteUser-0-android">
@@ -6486,7 +6656,7 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-deleteUser-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The name that needs to be deleted
+                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The name that needs to be deleted (default to null)
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
@@ -6535,7 +6705,7 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var username = username_example;  // String | The name that needs to be deleted
+            var username = username_example;  // String | The name that needs to be deleted (default to null)
 
             try
             {
@@ -6592,7 +6762,7 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-username = username_example # String | The name that needs to be deleted
+username = username_example # String | The name that needs to be deleted (default to null)
 
 try: 
     # Delete user
@@ -6764,7 +6934,8 @@ public class UserApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-getUserByName-0-android">
@@ -6790,7 +6961,7 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-getUserByName-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The name that needs to be fetched. Use user1 for testing.
+                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The name that needs to be fetched. Use user1 for testing. (default to null)
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
@@ -6842,7 +7013,7 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var username = username_example;  // String | The name that needs to be fetched. Use user1 for testing.
+            var username = username_example;  // String | The name that needs to be fetched. Use user1 for testing. (default to null)
 
             try
             {
@@ -6902,7 +7073,7 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-username = username_example # String | The name that needs to be fetched. Use user1 for testing.
+username = username_example # String | The name that needs to be fetched. Use user1 for testing. (default to null)
 
 try: 
     # Get user by user name
@@ -7015,9 +7186,14 @@ The name that needs to be fetched. Use user1 for testing.
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -7142,7 +7318,8 @@ public class UserApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-loginUser-0-android">
@@ -7169,8 +7346,8 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-loginUser-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The user name for login
-String *password = password_example; // The password for login in clear text
+                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // The user name for login (default to null)
+String *password = password_example; // The password for login in clear text (default to null)
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
@@ -7224,8 +7401,8 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var username = username_example;  // String | The user name for login
-            var password = password_example;  // String | The password for login in clear text
+            var username = username_example;  // String | The user name for login (default to null)
+            var password = password_example;  // String | The password for login in clear text (default to null)
 
             try
             {
@@ -7287,8 +7464,8 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-username = username_example # String | The user name for login
-password = password_example # String | The password for login in clear text
+username = username_example # String | The user name for login (default to null)
+password = password_example # String | The password for login in clear text (default to null)
 
 try: 
     # Logs user into the system
@@ -7444,9 +7621,14 @@ The password for login in clear text
     }
   }
 };
-                                        var schema = schemaWrapper.schema;
+                                        var schema = findNode('schema',schemaWrapper).schema;
+                                        if (!schema) {
+                                            schema = schemaWrapper.schema;
+                                        }
                                         if (schema.$ref != null) {
                                           schema = defsParser.$refs.get(schema.$ref);
+                                        } else if (schema.items != null && schema.items.$ref != null) {
+                                            schema.items = defsParser.$refs.get(schema.items.$ref);
                                         } else {
                                           schemaWrapper.definitions = Object.assign({}, defs);
                                           $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -7568,7 +7750,8 @@ public class UserApiExample {
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-logoutUser-0-android">
@@ -7802,15 +7985,16 @@ public class UserApiExample {
         
         UserApi apiInstance = new UserApi();
         String username = username_example; // String | name that need to be deleted
-        User user = ; // User | 
+        User body = ; // User | 
         try {
-            apiInstance.updateUser(username, user);
+            apiInstance.updateUser(username, body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#updateUser");
             e.printStackTrace();
         }
     }
-}</code></pre>
+}
+</code></pre>
                           </div>
 
                           <div class="tab-pane" id="examples-User-updateUser-0-android">
@@ -7821,9 +8005,9 @@ public class UserApiExample {
     public static void main(String[] args) {
         UserApi apiInstance = new UserApi();
         String username = username_example; // String | name that need to be deleted
-        User user = ; // User | 
+        User body = ; // User | 
         try {
-            apiInstance.updateUser(username, user);
+            apiInstance.updateUser(username, body);
         } catch (ApiException e) {
             System.err.println("Exception when calling UserApi#updateUser");
             e.printStackTrace();
@@ -7836,14 +8020,14 @@ public class UserApiExample {
   <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
   </div> -->
                             <div class="tab-pane" id="examples-User-updateUser-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // name that need to be deleted
-User *user = ; // 
+                              <pre class="prettyprint"><code class="language-cpp">String *username = username_example; // name that need to be deleted (default to null)
+User *body = ; // 
 
 UserApi *apiInstance = [[UserApi alloc] init];
 
 // Updated user
 [apiInstance updateUserWith:username
-    user:user
+    body:body
               completionHandler: ^(NSError* error) {
                             if (error) {
                                 NSLog(@"Error: %@", error);
@@ -7857,7 +8041,7 @@ UserApi *apiInstance = [[UserApi alloc] init];
 
 var api = new OpenApiPetstore.UserApi()
 var username = username_example; // {String} name that need to be deleted
-var user = ; // {User} 
+var body = ; // {User} 
 
 var callback = function(error, data, response) {
   if (error) {
@@ -7866,7 +8050,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully.');
   }
 };
-api.updateUser(username, user, callback);
+api.updateUser(username, body, callback);
 </code></pre>
                             </div>
 
@@ -7888,13 +8072,13 @@ namespace Example
         {
             
             var apiInstance = new UserApi();
-            var username = username_example;  // String | name that need to be deleted
-            var user = new User(); // User | 
+            var username = username_example;  // String | name that need to be deleted (default to null)
+            var body = new User(); // User | 
 
             try
             {
                 // Updated user
-                apiInstance.updateUser(username, user);
+                apiInstance.updateUser(username, body);
             }
             catch (Exception e)
             {
@@ -7912,10 +8096,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 $api_instance = new OpenAPITools\Client\Api\UserApi();
 $username = username_example; // String | name that need to be deleted
-$user = ; // User | 
+$body = ; // User | 
 
 try {
-    $api_instance->updateUser($username, $user);
+    $api_instance->updateUser($username, $body);
 } catch (Exception $e) {
     echo 'Exception when calling UserApi->updateUser: ', $e->getMessage(), PHP_EOL;
 }
@@ -7929,10 +8113,10 @@ use WWW::OPenAPIClient::UserApi;
 
 my $api_instance = WWW::OPenAPIClient::UserApi->new();
 my $username = username_example; # String | name that need to be deleted
-my $user = WWW::OPenAPIClient::Object::User->new(); # User | 
+my $body = WWW::OPenAPIClient::Object::User->new(); # User | 
 
 eval { 
-    $api_instance->updateUser(username => $username, user => $user);
+    $api_instance->updateUser(username => $username, body => $body);
 };
 if ($@) {
     warn "Exception when calling UserApi->updateUser: $@\n";
@@ -7948,12 +8132,12 @@ from pprint import pprint
 
 # create an instance of the API class
 api_instance = openapi_client.UserApi()
-username = username_example # String | name that need to be deleted
-user =  # User | 
+username = username_example # String | name that need to be deleted (default to null)
+body =  # User | 
 
 try: 
     # Updated user
-    api_instance.update_user(username, user)
+    api_instance.update_user(username, body)
 except ApiException as e:
     print("Exception when calling UserApi->updateUser: %s\n" % e)</code></pre>
                             </div>
@@ -7963,10 +8147,10 @@ except ApiException as e:
 
 pub fn main() {
     let username = username_example; // String
-    let user = ; // User
+    let body = ; // User
 
     let mut context = UserApi::Context::default();
-    let result = client.updateUser(username, user, &context).wait();
+    let result = client.updateUser(username, body, &context).wait();
     println!("{:?}", result);
 
 }
@@ -8019,13 +8203,26 @@ name that need to be deleted
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
-                                <tr><td style="width:150px;">user <span style="color:red;">*</span></td>
+                                <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
 <td>
 <p class="marked">Updated user object</p>
 <script>
 $(document).ready(function() {
-  var schemaWrapper = ;
-  var schema = schemaWrapper.schema;
+  var schemaWrapper = {
+  "description" : "Updated user object",
+  "content" : {
+    "*/*" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/User"
+      }
+    }
+  },
+  "required" : true
+};
+  var schema = findNode('schema', schemaWrapper).schema;
+  if (!schema) {
+      schema = schemaWrapper.schema;
+  }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
   } else {
@@ -8036,12 +8233,12 @@ $(document).ready(function() {
   }
 
   var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_updateUser_user');
+  var result = $('#d2e199_updateUser_body');
   result.empty();
   result.append(view.render());
 });
 </script>
-<div id="d2e199_updateUser_user"></div>
+<div id="d2e199_updateUser_body"></div>
 </td>
 </tr>
 
@@ -9838,8 +10035,7 @@ g,0<c.length&&(c=Aa[c[0]])&&(a.c[e]=c))}a.c[e]||(c=Aa[e])&&(a.c[e]=c);for(c=0;c<
 </script>
 
   <script>
-    var schemaWrapper = {};
-    schemaWrapper.definitions = Object.assign({}, defs);
+    var schemaWrapper = { "components": { "schemas" : defs}};
     defsParser = new $RefParser();
     defsParser.dereference(schemaWrapper).catch(function(err) {
       console.log(err);
-- 
GitLab


From a15da6feb673a5b3b9bd917b5acbe4191c3e9a50 Mon Sep 17 00:00:00 2001
From: Kieran Simpson <kierans777@gmail.com>
Date: Mon, 20 Apr 2020 00:32:29 +1000
Subject: [PATCH 09/23] [gradle] Print value of outputDir correctly in gradle
 plugin (#5936)

---
 .../openapitools/generator/gradle/plugin/tasks/GenerateTask.kt  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
index 93087a986e1..f273d12427a 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
@@ -640,7 +640,7 @@ open class GenerateTask : DefaultTask() {
 
                 DefaultGenerator().opts(clientOptInput).generate()
 
-                out.println("Successfully generated code to $outputDir")
+                out.println("Successfully generated code to ${outputDir.get()}")
             } catch (e: RuntimeException) {
                 throw GradleException("Code generation failed.", e)
             }
-- 
GitLab


From c6353a75891052d49142f3891d8666c411aba265 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Sun, 19 Apr 2020 23:15:57 +0800
Subject: [PATCH 10/23] add bearer auth support to C# 2.0 client (#5978)

---
 bin/csharp-dotnet2-petstore.sh                |  2 +-
 bin/windows/csharp-dotnet2-petstore.bat       |  2 +-
 .../csharp-dotnet2/ApiClient.mustache         | 21 +++++++++-
 .../csharp-dotnet2/Configuration.mustache     |  6 +++
 .../resources/csharp-dotnet2/README.mustache  | 41 +++++++++++++++----
 .../resources/csharp-dotnet2/api_doc.mustache | 24 ++++++++---
 .../Lib/OpenAPIClient/README.md               |  1 +
 .../Lib/OpenAPIClient/docs/PetApi.md          |  8 ----
 .../Lib/OpenAPIClient/docs/StoreApi.md        |  4 --
 .../Lib/OpenAPIClient/docs/UserApi.md         |  8 ----
 .../Org/OpenAPITools/Client/ApiClient.cs      |  4 +-
 .../Org/OpenAPITools/Client/Configuration.cs  |  6 +++
 12 files changed, 86 insertions(+), 41 deletions(-)

diff --git a/bin/csharp-dotnet2-petstore.sh b/bin/csharp-dotnet2-petstore.sh
index d3641ed1ce5..c953170bfaa 100755
--- a/bin/csharp-dotnet2-petstore.sh
+++ b/bin/csharp-dotnet2-petstore.sh
@@ -27,6 +27,6 @@ fi
 
 # if you've executed sbt assembly previously it will use that instead.
 export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient --additional-properties hideGenerationTimestamp=true $@"
+ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g csharp-dotnet2 -t modules/openapi-generator/src/main/resources/csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient --additional-properties hideGenerationTimestamp=true $@"
 
 java $JAVA_OPTS -jar $executable $ags
diff --git a/bin/windows/csharp-dotnet2-petstore.bat b/bin/windows/csharp-dotnet2-petstore.bat
index 6951617bed9..f5bc77332e6 100755
--- a/bin/windows/csharp-dotnet2-petstore.bat
+++ b/bin/windows/csharp-dotnet2-petstore.bat
@@ -5,6 +5,6 @@ If Not Exist %executable% (
 )
 
 REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M
-set ags=generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/OpenApiClientTest/Lib/OpenApiClient --additional-properties hideGenerationTimestamp=true
+set ags=generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g csharp-dotnet2 -t modules/openapi-generator/src/main/resources/csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/OpenApiClientTest/Lib/OpenApiClient --additional-properties hideGenerationTimestamp=true
 
 java %JAVA_OPTS% -jar %executable% %ags%
diff --git a/modules/openapi-generator/src/main/resources/csharp-dotnet2/ApiClient.mustache b/modules/openapi-generator/src/main/resources/csharp-dotnet2/ApiClient.mustache
index c382839d898..1938e277989 100644
--- a/modules/openapi-generator/src/main/resources/csharp-dotnet2/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-dotnet2/ApiClient.mustache
@@ -261,8 +261,25 @@ namespace {{clientPackage}}
                 {
                     {{#authMethods}}
                     case "{{name}}":
-                        {{#isApiKey}}{{#isKeyInHeader}}headerParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInHeader}}{{#isKeyInQuery}}queryParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInQuery}}{{/isApiKey}}{{#isBasic}}headerParams["Authorization"] = "Basic " + Base64Encode(Configuration.Username + ":" + Configuration.Password);{{/isBasic}}
-                        {{#isOAuth}}//TODO support oauth{{/isOAuth}}
+                        {{#isApiKey}}
+                        {{#isKeyInHeader}}
+                        headerParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");
+                        {{/isKeyInHeader}}
+                        {{#isKeyInQuery}}
+                        queryParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");
+                        {{/isKeyInQuery}}
+                        {{/isApiKey}}
+                        {{#isBasic}}
+                        {{#isBasicBasic}}
+                        headerParams["Authorization"] = "Basic " + Base64Encode(Configuration.Username + ":" + Configuration.Password);
+                        {{/isBasicBasic}}
+                        {{#isBasicBearer}}
+                        headerParams["Authorization"] = "Bearer " + Configuration.AccessToken;
+                        {{/isBasicBearer}}
+                        {{/isBasic}}
+                        {{#isOAuth}}
+                        headerParams["Authorization"] = "Bearer " + Configuration.AccessToken;
+                        {{/isOAuth}}
                         break;
                     {{/authMethods}}
                     default:
diff --git a/modules/openapi-generator/src/main/resources/csharp-dotnet2/Configuration.mustache b/modules/openapi-generator/src/main/resources/csharp-dotnet2/Configuration.mustache
index e09f39fc601..77f755d6114 100644
--- a/modules/openapi-generator/src/main/resources/csharp-dotnet2/Configuration.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-dotnet2/Configuration.mustache
@@ -37,6 +37,12 @@ namespace {{clientPackage}}
         /// <value>The password.</value>
         public static String Password { get; set; }
   
+        /// <summary>
+        /// Gets or sets the access token (Bearer/OAuth authentication).
+        /// </summary>
+        /// <value>The access token.</value>
+        public static String AccessToken { get; set; }
+
         /// <summary>
         /// Gets or sets the API key based on the authentication name.
         /// </summary>
diff --git a/modules/openapi-generator/src/main/resources/csharp-dotnet2/README.mustache b/modules/openapi-generator/src/main/resources/csharp-dotnet2/README.mustache
index 041dec963b0..0d8dfd814d4 100644
--- a/modules/openapi-generator/src/main/resources/csharp-dotnet2/README.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-dotnet2/README.mustache
@@ -56,16 +56,31 @@ namespace Example
     {
         public void main()
         {
-            {{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}}{{#hasAuthMethods}}{{#authMethods}}{{#isBasic}}
+            {{#apiInfo}}{{#apis}}{{#-first}}{{#operations}}{{#operation}}{{#-first}}
+            {{#hasAuthMethods}}
+            {{#authMethods}}
+            {{#isBasic}}
+            {{#isBasicBasic}}
             // Configure HTTP basic authorization: {{{name}}}
             Configuration.Default.Username = "YOUR_USERNAME";
-            Configuration.Default.Password = "YOUR_PASSWORD";{{/isBasic}}{{#isApiKey}}
+            Configuration.Default.Password = "YOUR_PASSWORD";
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // Configure Bearer access token for authorization: {{{name}}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isBasicBearer}}
+            {{/isBasic}}
+            {{#isApiKey}}
             // Configure API key authorization: {{{name}}}
             Configuration.Default.ApiKey.Add("{{{keyParamName}}}", "YOUR_API_KEY");
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
-            // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer");{{/isApiKey}}{{#isOAuth}}
+            // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer");
+            {{/isApiKey}}
+            {{#isOAuth}}
             // Configure OAuth2 access token for authorization: {{{name}}}
-            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";{{/isOAuth}}{{/authMethods}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isOAuth}}
+            {{/authMethods}}
             {{/hasAuthMethods}}
 
             var apiInstance = new {{classname}}();
@@ -123,21 +138,29 @@ No model defined in this package
 All endpoints do not require authorization.
 {{/authMethods}}
 {{#authMethods}}
-{{#last}}
+{{#-last}}
 Authentication schemes defined for the API:
-{{/last}}
+{{/-last}}
 {{/authMethods}}
 {{#authMethods}}
 <a name="{{name}}"></a>
 ### {{name}}
 
-{{#isApiKey}}- **Type**: API key
+{{#isApiKey}}
+- **Type**: API key
 - **API key parameter name**: {{keyParamName}}
 - **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}}
 {{/isApiKey}}
-{{#isBasic}}- **Type**: HTTP basic authentication
+{{#isBasic}}
+{{#isBasicBasic}}
+- **Type**: HTTP basic authentication
+{{/isBasicBasic}}
+{{#isBasicBearer}}
+- **Type**: HTTP bearer authentication
+{{/isBasicBearer}}
 {{/isBasic}}
-{{#isOAuth}}- **Type**: OAuth
+{{#isOAuth}}
+- **Type**: OAuth
 - **Flow**: {{flow}}
 - **Authorization URL**: {{authorizationUrl}}
 - **Scopes**: {{^scopes}}N/A{{/scopes}}
diff --git a/modules/openapi-generator/src/main/resources/csharp-dotnet2/api_doc.mustache b/modules/openapi-generator/src/main/resources/csharp-dotnet2/api_doc.mustache
index 1a772761894..325e1426014 100644
--- a/modules/openapi-generator/src/main/resources/csharp-dotnet2/api_doc.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp-dotnet2/api_doc.mustache
@@ -32,18 +32,32 @@ namespace Example
     {
         public void main()
         {
-            {{#hasAuthMethods}}{{#authMethods}}{{#isBasic}}
+            {{#hasAuthMethods}}
+            {{#authMethods}}
+            {{#isBasic}}
+            {{#isBasicBasic}}
             // Configure HTTP basic authorization: {{{name}}}
             Configuration.Default.Username = "YOUR_USERNAME";
-            Configuration.Default.Password = "YOUR_PASSWORD";{{/isBasic}}{{#isApiKey}}
+            Configuration.Default.Password = "YOUR_PASSWORD";
+            {{/isBasicBasic}}
+            {{#isBasicBearer}}
+            // Configure Bearer access token: {{{name}}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isBasicBearer}}
+            {{/isBasic}}
+            {{#isApiKey}}
             // Configure API key authorization: {{{name}}}
             Configuration.Default.ApiKey.Add("{{{keyParamName}}}", "YOUR_API_KEY");
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
-            // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer");{{/isApiKey}}{{#isOAuth}}
+            // Configuration.Default.ApiKeyPrefix.Add("{{{keyParamName}}}", "Bearer");
+            {{/isApiKey}}
+            {{#isOAuth}}
             // Configure OAuth2 access token for authorization: {{{name}}}
-            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";{{/isOAuth}}{{/authMethods}}
-            {{/hasAuthMethods}}
+            Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
+            {{/isOAuth}}
+            {{/authMethods}}
 
+            {{/hasAuthMethods}}
             var apiInstance = new {{classname}}();
             {{#allParams}}
             {{#isPrimitiveType}}
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/README.md b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/README.md
index b68ca22592a..5296503208a 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/README.md
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/README.md
@@ -112,6 +112,7 @@ Class | Method | HTTP request | Description
 <a name="documentation-for-authorization"></a>
 ## Documentation for Authorization
 
+Authentication schemes defined for the API:
 <a name="api_key"></a>
 ### api_key
 
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/PetApi.md b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/PetApi.md
index 3ce062d25aa..373f0348fe7 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/PetApi.md
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/PetApi.md
@@ -34,7 +34,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -96,7 +95,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -162,7 +160,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -227,7 +224,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -292,7 +288,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure API key authorization: api_key
             Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY");
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
@@ -357,7 +352,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -419,7 +413,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
@@ -485,7 +478,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure OAuth2 access token for authorization: petstore_auth
             Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
 
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/StoreApi.md b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/StoreApi.md
index 9ee43d09cc1..068cb5419f8 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/StoreApi.md
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/StoreApi.md
@@ -32,7 +32,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new StoreApi();
             var orderId = orderId_example;  // string | ID of the order that needs to be deleted
 
@@ -93,7 +92,6 @@ namespace Example
     {
         public void main()
         {
-            
             // Configure API key authorization: api_key
             Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY");
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
@@ -156,7 +154,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new StoreApi();
             var orderId = 789;  // long? | ID of pet that needs to be fetched
 
@@ -216,7 +213,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new StoreApi();
             var body = new Order(); // Order | order placed for purchasing the pet
 
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/UserApi.md b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/UserApi.md
index b9909cad575..74ca98353aa 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/UserApi.md
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/docs/UserApi.md
@@ -36,7 +36,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var body = new User(); // User | Created user object
 
@@ -95,7 +94,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var body = new List<User>(); // List<User> | List of user object
 
@@ -154,7 +152,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var body = new List<User>(); // List<User> | List of user object
 
@@ -215,7 +212,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var username = username_example;  // string | The name that needs to be deleted
 
@@ -274,7 +270,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var username = username_example;  // string | The name that needs to be fetched. Use user1 for testing.
 
@@ -334,7 +329,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var username = username_example;  // string | The user name for login
             var password = password_example;  // string | The password for login in clear text
@@ -396,7 +390,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
 
             try
@@ -453,7 +446,6 @@ namespace Example
     {
         public void main()
         {
-            
             var apiInstance = new UserApi();
             var username = username_example;  // string | name that need to be deleted
             var body = new User(); // User | Updated user object
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/ApiClient.cs b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/ApiClient.cs
index 934ae82628d..e1d91307dcf 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/ApiClient.cs
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/ApiClient.cs
@@ -261,11 +261,9 @@ namespace Org.OpenAPITools.Client
                 {
                     case "api_key":
                         headerParams["api_key"] = GetApiKeyWithPrefix("api_key");
-                        
                         break;
                     case "petstore_auth":
-                        
-                        //TODO support oauth
+                        headerParams["Authorization"] = "Bearer " + Configuration.AccessToken;
                         break;
                     default:
                         //TODO show warning about security definition not found
diff --git a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/Configuration.cs b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/Configuration.cs
index 7546607fa99..10bd0088bb7 100644
--- a/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/Configuration.cs
+++ b/samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient/src/main/CsharpDotNet2/Org/OpenAPITools/Client/Configuration.cs
@@ -37,6 +37,12 @@ namespace Org.OpenAPITools.Client
         /// <value>The password.</value>
         public static String Password { get; set; }
   
+        /// <summary>
+        /// Gets or sets the access token (Bearer/OAuth authentication).
+        /// </summary>
+        /// <value>The access token.</value>
+        public static String AccessToken { get; set; }
+
         /// <summary>
         /// Gets or sets the API key based on the authentication name.
         /// </summary>
-- 
GitLab


From 4818644278c66ee0c29cb6e9739f47d9fc6ad148 Mon Sep 17 00:00:00 2001
From: Malcolm Murray <malcolm.murray@scoffable.com>
Date: Mon, 20 Apr 2020 04:27:53 +0100
Subject: [PATCH 11/23] [BUG] [TYPESCRIPT-AXIOS] Fixing issue where dist folder
 is not published when publishing typescript-axios generated client with npm
 publish (#5850)

* Removing build path from gitignore as this causes npm publishing issues

* updating petstore example

* Adding npmignore to typescript-axios generator

* Updating petstore example
---
 .../codegen/languages/TypeScriptAxiosClientCodegen.java         | 1 +
 .../src/main/resources/typescript-axios/gitignore               | 2 +-
 .../src/main/resources/typescript-axios/npmignore               | 1 +
 .../client/petstore/typescript-axios/builds/default/.gitignore  | 2 +-
 .../client/petstore/typescript-axios/builds/default/.npmignore  | 1 +
 .../petstore/typescript-axios/builds/es6-target/.gitignore      | 2 +-
 .../petstore/typescript-axios/builds/es6-target/.npmignore      | 1 +
 .../typescript-axios/builds/with-complex-headers/.gitignore     | 2 +-
 .../typescript-axios/builds/with-complex-headers/.npmignore     | 1 +
 .../petstore/typescript-axios/builds/with-interfaces/.gitignore | 2 +-
 .../petstore/typescript-axios/builds/with-interfaces/.npmignore | 1 +
 .../with-npm-version-and-separate-models-and-api/.gitignore     | 2 +-
 .../with-npm-version-and-separate-models-and-api/.npmignore     | 1 +
 .../typescript-axios/builds/with-npm-version/.gitignore         | 2 +-
 .../typescript-axios/builds/with-npm-version/.npmignore         | 1 +
 15 files changed, 15 insertions(+), 7 deletions(-)
 create mode 100644 modules/openapi-generator/src/main/resources/typescript-axios/npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/default/.npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/es6-target/.npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/with-complex-headers/.npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/with-interfaces/.npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.npmignore
 create mode 100644 samples/client/petstore/typescript-axios/builds/with-npm-version/.npmignore

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java
index a441027bff0..023db027014 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java
@@ -110,6 +110,7 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege
         supportingFiles.add(new SupportingFile("configuration.mustache", "", "configuration.ts"));
         supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh"));
         supportingFiles.add(new SupportingFile("gitignore", "", ".gitignore"));
+        supportingFiles.add(new SupportingFile("npmignore", "", ".npmignore"));
 
         if (additionalProperties.containsKey(SEPARATE_MODELS_AND_API)) {
             boolean separateModelsAndApi = Boolean.parseBoolean(additionalProperties.get(SEPARATE_MODELS_AND_API).toString());
diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/gitignore b/modules/openapi-generator/src/main/resources/typescript-axios/gitignore
index 149b5765472..205d8013f46 100644
--- a/modules/openapi-generator/src/main/resources/typescript-axios/gitignore
+++ b/modules/openapi-generator/src/main/resources/typescript-axios/gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/npmignore b/modules/openapi-generator/src/main/resources/typescript-axios/npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/typescript-axios/npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/default/.gitignore b/samples/client/petstore/typescript-axios/builds/default/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/default/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/default/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/default/.npmignore b/samples/client/petstore/typescript-axios/builds/default/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/default/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/es6-target/.gitignore b/samples/client/petstore/typescript-axios/builds/es6-target/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/es6-target/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/es6-target/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/es6-target/.npmignore b/samples/client/petstore/typescript-axios/builds/es6-target/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/es6-target/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-complex-headers/.gitignore b/samples/client/petstore/typescript-axios/builds/with-complex-headers/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/with-complex-headers/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/with-complex-headers/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-complex-headers/.npmignore b/samples/client/petstore/typescript-axios/builds/with-complex-headers/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/with-complex-headers/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-interfaces/.gitignore b/samples/client/petstore/typescript-axios/builds/with-interfaces/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/with-interfaces/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/with-interfaces/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-interfaces/.npmignore b/samples/client/petstore/typescript-axios/builds/with-interfaces/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/with-interfaces/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.gitignore b/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.npmignore b/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/with-npm-version-and-separate-models-and-api/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-npm-version/.gitignore b/samples/client/petstore/typescript-axios/builds/with-npm-version/.gitignore
index 149b5765472..205d8013f46 100644
--- a/samples/client/petstore/typescript-axios/builds/with-npm-version/.gitignore
+++ b/samples/client/petstore/typescript-axios/builds/with-npm-version/.gitignore
@@ -1,4 +1,4 @@
 wwwroot/*.js
 node_modules
 typings
-dist
+dist
\ No newline at end of file
diff --git a/samples/client/petstore/typescript-axios/builds/with-npm-version/.npmignore b/samples/client/petstore/typescript-axios/builds/with-npm-version/.npmignore
new file mode 100644
index 00000000000..999d88df693
--- /dev/null
+++ b/samples/client/petstore/typescript-axios/builds/with-npm-version/.npmignore
@@ -0,0 +1 @@
+# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm
\ No newline at end of file
-- 
GitLab


From 1766279916377f49df70aa2b935a98f9efe35eab Mon Sep 17 00:00:00 2001
From: Justin Black <spacether@users.noreply.github.com>
Date: Mon, 20 Apr 2020 01:00:24 -0700
Subject: [PATCH 12/23] Fixes issue 5876 (#5977)

* Fixes getParentName function

* Updates getChildrenMap to not throw a NPE

* Updates test

* Runs ensure up to date
---
 .../openapitools/codegen/utils/ModelUtils.java    | 15 ++-------------
 .../openapitools/codegen/DefaultCodegenTest.java  |  4 ++--
 .../petstore/python-experimental/docs/Child.md    |  2 +-
 .../petstore/python-experimental/docs/Parent.md   |  2 +-
 .../petstore_api/models/child.py                  |  6 +++---
 .../petstore_api/models/parent.py                 |  6 +++---
 6 files changed, 12 insertions(+), 23 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
index 8dac545365a..6dbefe36db4 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
@@ -1104,9 +1104,9 @@ public class ModelUtils {
     public static Map<String, List<String>> getChildrenMap(OpenAPI openAPI) {
         Map<String, Schema> allSchemas = getSchemas(openAPI);
 
-        // FIXME: The collect here will throw NPE if a spec document has only a single oneOf hierarchy.
         Map<String, List<Entry<String, Schema>>> groupedByParent = allSchemas.entrySet().stream()
             .filter(entry -> isComposedSchema(entry.getValue()))
+                .filter(entry -> getParentName((ComposedSchema) entry.getValue(), allSchemas)!=null)
             .collect(Collectors.groupingBy(entry -> getParentName((ComposedSchema) entry.getValue(), allSchemas)));
 
         return groupedByParent.entrySet().stream()
@@ -1165,14 +1165,6 @@ public class ModelUtils {
         int nullSchemaChildrenCount = 0;
         boolean hasAmbiguousParents = false;
         List<String> refedWithoutDiscriminator = new ArrayList<>();
-        String schemaName = "";
-        for (String thisSchemaName : allSchemas.keySet()) {
-            Schema sc = allSchemas.get(thisSchemaName);
-            if (isComposedSchema(sc) && (ComposedSchema) sc == composedSchema) {
-                schemaName = thisSchemaName;
-                break;
-            }
-        }
 
         if (interfaces != null && !interfaces.isEmpty()) {
             for (Schema schema : interfaces) {
@@ -1189,10 +1181,7 @@ public class ModelUtils {
                     } else {
                         // not a parent since discriminator.propertyName is not set
                         hasAmbiguousParents = true;
-                        boolean isNotExtractedInlineSchema = !parentName.equals(schemaName+"_allOf");
-                        if (isNotExtractedInlineSchema) {
-                            refedWithoutDiscriminator.add(parentName);
-                        }
+                        refedWithoutDiscriminator.add(parentName);
                     }
                 } else {
                     // not a ref, doing nothing, except counting the number of times the 'null' type
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index e655027890e..3eb3c3e62c2 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -612,8 +612,8 @@ public class DefaultCodegenTest {
         Schema schema = openAPI.getComponents().getSchemas().get("MessageEventCoreWithTimeListEntries");
         codegen.setOpenAPI(openAPI);
         CodegenModel model = codegen.fromModel("MessageEventCoreWithTimeListEntries", schema);
-        Assert.assertEquals(model.parent, "MessageEventCore");
-        Assert.assertEquals(model.allParents, Collections.singletonList("MessageEventCore"));
+        Assert.assertEquals(model.parent, null);
+        Assert.assertEquals(model.allParents, null);
     }
 
     @Test
diff --git a/samples/client/petstore/python-experimental/docs/Child.md b/samples/client/petstore/python-experimental/docs/Child.md
index f208f06a059..bc3c7f3922d 100644
--- a/samples/client/petstore/python-experimental/docs/Child.md
+++ b/samples/client/petstore/python-experimental/docs/Child.md
@@ -3,9 +3,9 @@
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**inter_net** | **bool** |  | [optional] 
 **radio_waves** | **bool** |  | [optional] 
 **tele_vision** | **bool** |  | [optional] 
+**inter_net** | **bool** |  | [optional] 
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/python-experimental/docs/Parent.md b/samples/client/petstore/python-experimental/docs/Parent.md
index 48d2dc6c78f..2437d3c81ac 100644
--- a/samples/client/petstore/python-experimental/docs/Parent.md
+++ b/samples/client/petstore/python-experimental/docs/Parent.md
@@ -3,8 +3,8 @@
 ## Properties
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
-**tele_vision** | **bool** |  | [optional] 
 **radio_waves** | **bool** |  | [optional] 
+**tele_vision** | **bool** |  | [optional] 
 
 [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
 
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/child.py b/samples/client/petstore/python-experimental/petstore_api/models/child.py
index 3d3b7183934..501c2242791 100644
--- a/samples/client/petstore/python-experimental/petstore_api/models/child.py
+++ b/samples/client/petstore/python-experimental/petstore_api/models/child.py
@@ -84,9 +84,9 @@ class Child(ModelComposed):
                 and the value is attribute type.
         """
         return {
-            'inter_net': (bool,),  # noqa: E501
             'radio_waves': (bool,),  # noqa: E501
             'tele_vision': (bool,),  # noqa: E501
+            'inter_net': (bool,),  # noqa: E501
         }
 
     @staticmethod
@@ -94,9 +94,9 @@ class Child(ModelComposed):
         return None
 
     attribute_map = {
-        'inter_net': 'interNet',  # noqa: E501
         'radio_waves': 'radioWaves',  # noqa: E501
         'tele_vision': 'teleVision',  # noqa: E501
+        'inter_net': 'interNet',  # noqa: E501
     }
 
     required_properties = set([
@@ -127,9 +127,9 @@ class Child(ModelComposed):
                                 deserializing a file_type parameter.
                                 If passed, type conversion is attempted
                                 If omitted no type conversion is done.
-            inter_net (bool): [optional]  # noqa: E501
             radio_waves (bool): [optional]  # noqa: E501
             tele_vision (bool): [optional]  # noqa: E501
+            inter_net (bool): [optional]  # noqa: E501
         """
 
         self._data_store = {}
diff --git a/samples/client/petstore/python-experimental/petstore_api/models/parent.py b/samples/client/petstore/python-experimental/petstore_api/models/parent.py
index 443b134d1cf..f62abd94cee 100644
--- a/samples/client/petstore/python-experimental/petstore_api/models/parent.py
+++ b/samples/client/petstore/python-experimental/petstore_api/models/parent.py
@@ -84,8 +84,8 @@ class Parent(ModelComposed):
                 and the value is attribute type.
         """
         return {
-            'tele_vision': (bool,),  # noqa: E501
             'radio_waves': (bool,),  # noqa: E501
+            'tele_vision': (bool,),  # noqa: E501
         }
 
     @staticmethod
@@ -93,8 +93,8 @@ class Parent(ModelComposed):
         return None
 
     attribute_map = {
-        'tele_vision': 'teleVision',  # noqa: E501
         'radio_waves': 'radioWaves',  # noqa: E501
+        'tele_vision': 'teleVision',  # noqa: E501
     }
 
     required_properties = set([
@@ -125,8 +125,8 @@ class Parent(ModelComposed):
                                 deserializing a file_type parameter.
                                 If passed, type conversion is attempted
                                 If omitted no type conversion is done.
-            tele_vision (bool): [optional]  # noqa: E501
             radio_waves (bool): [optional]  # noqa: E501
+            tele_vision (bool): [optional]  # noqa: E501
         """
 
         self._data_store = {}
-- 
GitLab


From c35f32bf39a957b1379591403f513de26ba53e40 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Mon, 20 Apr 2020 18:39:06 +0800
Subject: [PATCH 13/23] Add tests for parents, allParents (#5984)

* add test for regression with a single ref in allof

* fix tests

* add a test for allParents
---
 .../codegen/DefaultCodegenTest.java           | 31 +++++++++++++++----
 .../test/resources/3_0/allOf_composition.yaml | 11 +++++++
 2 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index 3eb3c3e62c2..06007048a76 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -605,15 +605,34 @@ public class DefaultCodegenTest {
     }
 
     @Test
-    public void testAllOfSingleRefWithOwnPropsNoDiscriminator() {
-        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml");
+    public void testAllOfSingleAndDoubleRefWithOwnPropsNoDiscriminator() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOf_composition.yaml");
+        final DefaultCodegen codegen = new CodegenWithMultipleInheritance();
+
+        codegen.setOpenAPI(openAPI);
+
+        Schema supermanSchema = openAPI.getComponents().getSchemas().get("SuperMan");
+        CodegenModel supermanModel = codegen.fromModel("SuperMan", supermanSchema);
+        Assert.assertEquals(supermanModel.parent, null);
+        Assert.assertEquals(supermanModel.allParents, null);
+
+        Schema superboySchema = openAPI.getComponents().getSchemas().get("SuperBoy");
+        CodegenModel superboyModel = codegen.fromModel("SuperBoy", superboySchema);
+        Assert.assertEquals(superboyModel.parent, null);
+        Assert.assertEquals(superboyModel.allParents, null);
+    }
+
+    @Test
+    public void testAllParents() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOfMappingDuplicatedProperties.yaml");
         final DefaultCodegen codegen = new CodegenWithMultipleInheritance();
 
-        Schema schema = openAPI.getComponents().getSchemas().get("MessageEventCoreWithTimeListEntries");
         codegen.setOpenAPI(openAPI);
-        CodegenModel model = codegen.fromModel("MessageEventCoreWithTimeListEntries", schema);
-        Assert.assertEquals(model.parent, null);
-        Assert.assertEquals(model.allParents, null);
+
+        Schema adultSchema = openAPI.getComponents().getSchemas().get("Adult");
+        CodegenModel adultModel = codegen.fromModel("Adult", adultSchema);
+        Assert.assertEquals(adultModel.parent, "Person");
+        Assert.assertEquals(adultModel.allParents, Collections.singletonList("Person"));
     }
 
     @Test
diff --git a/modules/openapi-generator/src/test/resources/3_0/allOf_composition.yaml b/modules/openapi-generator/src/test/resources/3_0/allOf_composition.yaml
index 93ddc36c604..89f132c1ef2 100644
--- a/modules/openapi-generator/src/test/resources/3_0/allOf_composition.yaml
+++ b/modules/openapi-generator/src/test/resources/3_0/allOf_composition.yaml
@@ -26,6 +26,17 @@ paths:
                 $ref: "#/components/schemas/SuperMan"
 components:
   schemas:
+    SuperBoy: # to test single ref (Human) only
+      allOf:
+      - $ref: '#/components/schemas/Human'
+      - type: object
+        required:
+          - level
+        properties:
+          category:
+            type: string
+          level:
+            type: integer 
     SuperMan:
       allOf:
       - $ref: '#/components/schemas/Human'
-- 
GitLab


From fe2f092e7f2e8d4f9a841cd9649016c3e8700623 Mon Sep 17 00:00:00 2001
From: Romain Pouclet <romain.pouclet@gmail.com>
Date: Mon, 20 Apr 2020 23:23:33 -0700
Subject: [PATCH 14/23] Expose deprecated flag in model template (#5964)

---
 .../openapitools/codegen/CodegenModel.java    |  6 ++-
 .../openapitools/codegen/DefaultCodegen.java  |  4 ++
 .../codegen/DefaultCodegenTest.java           | 13 +++++++
 .../resources/3_0/component-deprecated.yml    | 37 +++++++++++++++++++
 4 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 modules/openapi-generator/src/test/resources/3_0/component-deprecated.yml

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
index c0519355cd5..16a296f84e1 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
@@ -74,7 +74,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
     public Set<String> allMandatory = new TreeSet<String>(); // with parent's required properties
 
     public Set<String> imports = new TreeSet<String>();
-    public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, isNullable, hasRequired, hasOptional, isArrayModel, hasChildren, isMapModel;
+    public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, isNullable, hasRequired, hasOptional, isArrayModel, hasChildren, isMapModel, isDeprecated;
     public boolean hasOnlyReadOnly = true; // true if all properties are read-only
     public ExternalDocumentation externalDocumentation;
 
@@ -543,6 +543,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
                 isArrayModel == that.isArrayModel &&
                 hasChildren == that.hasChildren &&
                 isMapModel == that.isMapModel &&
+                isDeprecated == that.isDeprecated &&
                 hasOnlyReadOnly == that.hasOnlyReadOnly &&
                 getUniqueItems() == that.getUniqueItems() &&
                 getExclusiveMinimum() == that.getExclusiveMinimum() &&
@@ -609,7 +610,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
                 getVars(), getAllVars(), getRequiredVars(), getOptionalVars(), getReadOnlyVars(), getReadWriteVars(),
                 getParentVars(), getAllowableValues(), getMandatory(), getAllMandatory(), getImports(), hasVars,
                 isEmptyVars(), hasMoreModels, hasEnums, isEnum, isNullable, hasRequired, hasOptional, isArrayModel,
-                hasChildren, isMapModel, hasOnlyReadOnly, getExternalDocumentation(), getVendorExtensions(),
+                hasChildren, isMapModel, isDeprecated, hasOnlyReadOnly, getExternalDocumentation(), getVendorExtensions(),
                 getAdditionalPropertiesType(), getMaxProperties(), getMinProperties(), getUniqueItems(), getMaxItems(),
                 getMinItems(), getMaxLength(), getMinLength(), getExclusiveMinimum(), getExclusiveMaximum(), getMinimum(),
                 getMaximum(), getPattern(), getMultipleOf());
@@ -673,6 +674,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
         sb.append(", isArrayModel=").append(isArrayModel);
         sb.append(", hasChildren=").append(hasChildren);
         sb.append(", isMapModel=").append(isMapModel);
+        sb.append(", isDeprecated=").append(isDeprecated);
         sb.append(", hasOnlyReadOnly=").append(hasOnlyReadOnly);
         sb.append(", externalDocumentation=").append(externalDocumentation);
         sb.append(", vendorExtensions=").append(vendorExtensions);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index e6a75981b7f..f0906626eea 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -2117,6 +2117,10 @@ public class DefaultCodegen implements CodegenConfig {
                 || isAliasOfSimpleTypes(schema)); // check if the unaliased schema is an alias of simple OAS types
         m.discriminator = createDiscriminator(name, schema);
 
+        if (schema.getDeprecated() != null) {
+            m.isDeprecated = schema.getDeprecated();
+        }
+
         if (schema.getXml() != null) {
             m.xmlPrefix = schema.getXml().getPrefix();
             m.xmlNamespace = schema.getXml().getNamespace();
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index 06007048a76..d43f7062e23 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -805,6 +805,19 @@ public class DefaultCodegenTest {
         Assert.assertTrue(property.isNullable);
     }
 
+    @Test
+    public void testDeprecatedModel() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/component-deprecated.yml");
+        new InlineModelResolver().flatten(openAPI);
+        final DefaultCodegen codegen = new DefaultCodegen();
+
+        CodegenModel codedenPetModel = codegen.fromModel("Pet", openAPI.getComponents().getSchemas().get("Pet"));
+        Assert.assertTrue(codedenPetModel.isDeprecated);
+
+        CodegenModel codegenFoodModel = codegen.fromModel("Food", openAPI.getComponents().getSchemas().get("Food"));
+        Assert.assertTrue(codegenFoodModel.isDeprecated);
+    }
+
     @Test
     public void testDeprecatedProperty() {
         final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/property-deplicated.yaml");
diff --git a/modules/openapi-generator/src/test/resources/3_0/component-deprecated.yml b/modules/openapi-generator/src/test/resources/3_0/component-deprecated.yml
new file mode 100644
index 00000000000..4c1c5000be9
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/component-deprecated.yml
@@ -0,0 +1,37 @@
+openapi: 3.0.1
+info:
+  version: 1.0.0
+  title: Example
+  license:
+    name: MIT
+servers:
+  - url: http://api.example.xyz/v1
+
+components:
+  schemas:
+    Food:
+      deprecated: true
+      type: string
+      enum:
+        - dry
+        - wet
+
+    Pet:
+      title: a Pet
+      deprecated: true
+      description: A pet up for adoption
+      type: object
+      required:
+        - name
+        - status
+      properties:
+        name:
+          type: string
+          example: doggie
+        status:
+          type: string
+          description: pet status
+          enum:
+            - available
+            - pending
+            - adopted
\ No newline at end of file
-- 
GitLab


From da149e1204e7d2d3bcfcda8ac31d223e69a405a0 Mon Sep 17 00:00:00 2001
From: Yuriy Belenko <yura-bely@mail.ru>
Date: Tue, 21 Apr 2020 09:25:56 +0300
Subject: [PATCH 15/23] [mysql] Add OAuth2 framework tables (#5807)

* Add OAuth table schemas

* Refresh samples

* Expand password column length

* Add copyright notice of OAuth2 schema author

* Refresh samples
---
 .../mysql-schema/mysql_schema.mustache        | 111 +++++++++++++++++-
 .../schema/petstore/mysql/mysql_schema.sql    | 108 +++++++++++++++++
 2 files changed, 218 insertions(+), 1 deletion(-)

diff --git a/modules/openapi-generator/src/main/resources/mysql-schema/mysql_schema.mustache b/modules/openapi-generator/src/main/resources/mysql-schema/mysql_schema.mustache
index 180e2c853f1..9ccdef75643 100644
--- a/modules/openapi-generator/src/main/resources/mysql-schema/mysql_schema.mustache
+++ b/modules/openapi-generator/src/main/resources/mysql-schema/mysql_schema.mustache
@@ -42,4 +42,113 @@ CREATE TABLE IF NOT EXISTS {{#defaultDatabaseName}}`{{{defaultDatabaseName}}}`.{
 {{/x-mysqlSchema}}
 {{/vendorExtensions}}
 
-{{/isArrayModel}}{{/hasVars}}{{/model}}{{/models}}
\ No newline at end of file
+{{/isArrayModel}}{{/hasVars}}{{/model}}{{/models}}
+{{#hasOAuthMethods}}
+--
+-- OAuth2 framework tables
+-- Thanks to https://github.com/dsquier/oauth2-server-php-mysql repo
+--
+
+--
+-- Table structure for table `oauth_clients`
+--
+CREATE TABLE IF NOT EXISTS `oauth_clients` (
+  `client_id`            VARCHAR(80)    NOT NULL,
+  `client_secret`        VARCHAR(80)    DEFAULT NULL,
+  `redirect_uri`         VARCHAR(2000)  DEFAULT NULL,
+  `grant_types`          VARCHAR(80)    DEFAULT NULL,
+  `scope`                VARCHAR(4000)  DEFAULT NULL,
+  `user_id`              VARCHAR(80)    DEFAULT NULL,
+  PRIMARY KEY (`client_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_access_tokens`
+--
+CREATE TABLE IF NOT EXISTS `oauth_access_tokens` (
+  `access_token`         VARCHAR(40)    NOT NULL,
+  `client_id`            VARCHAR(80)    DEFAULT NULL,
+  `user_id`              VARCHAR(80)    DEFAULT NULL,
+  `expires`              TIMESTAMP      NOT NULL,
+  `scope`                VARCHAR(4000)  DEFAULT NULL,
+  PRIMARY KEY (`access_token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_authorization_codes`
+--
+CREATE TABLE IF NOT EXISTS `oauth_authorization_codes` (
+  `authorization_code`  VARCHAR(40)    NOT NULL,
+  `client_id`           VARCHAR(80)    DEFAULT NULL,
+  `user_id`             VARCHAR(80)    DEFAULT NULL,
+  `redirect_uri`        VARCHAR(2000)  NOT NULL,
+  `expires`             TIMESTAMP      NOT NULL,
+  `scope`               VARCHAR(4000)  DEFAULT NULL,
+  `id_token`            VARCHAR(1000)  DEFAULT NULL,
+  PRIMARY KEY (`authorization_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_refresh_tokens`
+--
+CREATE TABLE IF NOT EXISTS `oauth_refresh_tokens` (
+  `refresh_token`       VARCHAR(40)    NOT NULL,
+  `client_id`           VARCHAR(80)    DEFAULT NULL,
+  `user_id`             VARCHAR(80)    DEFAULT NULL,
+  `expires`             TIMESTAMP      on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `scope`               VARCHAR(4000)  DEFAULT NULL,
+  PRIMARY KEY (`refresh_token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_users`
+--
+CREATE TABLE IF NOT EXISTS `oauth_users` (
+  `username`            VARCHAR(80)    DEFAULT NULL,
+  `password`            VARCHAR(255)   DEFAULT NULL,
+  `first_name`          VARCHAR(80)    DEFAULT NULL,
+  `last_name`           VARCHAR(80)    DEFAULT NULL,
+  `email`               VARCHAR(2000)  DEFAULT NULL,
+  `email_verified`      TINYINT(1)     DEFAULT NULL,
+  `scope`               VARCHAR(4000)  DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_scopes`
+--
+CREATE TABLE IF NOT EXISTS `oauth_scopes` (
+  `scope`               VARCHAR(80)  NOT NULL,
+  `is_default`          TINYINT(1)   DEFAULT NULL,
+  PRIMARY KEY (`scope`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_jwt`
+--
+CREATE TABLE IF NOT EXISTS `oauth_jwt` (
+  `client_id`           VARCHAR(80)    NOT NULL,
+  `subject`             VARCHAR(80)    DEFAULT NULL,
+  `public_key`          VARCHAR(2000)  NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_jti`
+--
+CREATE TABLE IF NOT EXISTS `oauth_jti` (
+  `issuer`              VARCHAR(80)    NOT NULL,
+  `subject`             VARCHAR(80)    DEFAULT NULL,
+  `audiance`            VARCHAR(80)    DEFAULT NULL,
+  `expires`             TIMESTAMP      NOT NULL,
+  `jti`                 VARCHAR(2000)  NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_public_keys`
+--
+CREATE TABLE IF NOT EXISTS `oauth_public_keys` (
+  `client_id`            VARCHAR(80)    DEFAULT NULL,
+  `public_key`           VARCHAR(2000)  DEFAULT NULL,
+  `private_key`          VARCHAR(2000)  DEFAULT NULL,
+  `encryption_algorithm` VARCHAR(100)   DEFAULT 'RS256'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+{{/hasOAuthMethods}}
\ No newline at end of file
diff --git a/samples/schema/petstore/mysql/mysql_schema.sql b/samples/schema/petstore/mysql/mysql_schema.sql
index 21145731600..21198e1355a 100644
--- a/samples/schema/petstore/mysql/mysql_schema.sql
+++ b/samples/schema/petstore/mysql/mysql_schema.sql
@@ -493,3 +493,111 @@ CREATE TABLE IF NOT EXISTS `XmlItem` (
   `prefix_ns_wrapped_array` JSON DEFAULT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
+
+--
+-- OAuth2 framework tables
+-- Thanks to https://github.com/dsquier/oauth2-server-php-mysql repo
+--
+
+--
+-- Table structure for table `oauth_clients`
+--
+CREATE TABLE IF NOT EXISTS `oauth_clients` (
+  `client_id`            VARCHAR(80)    NOT NULL,
+  `client_secret`        VARCHAR(80)    DEFAULT NULL,
+  `redirect_uri`         VARCHAR(2000)  DEFAULT NULL,
+  `grant_types`          VARCHAR(80)    DEFAULT NULL,
+  `scope`                VARCHAR(4000)  DEFAULT NULL,
+  `user_id`              VARCHAR(80)    DEFAULT NULL,
+  PRIMARY KEY (`client_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_access_tokens`
+--
+CREATE TABLE IF NOT EXISTS `oauth_access_tokens` (
+  `access_token`         VARCHAR(40)    NOT NULL,
+  `client_id`            VARCHAR(80)    DEFAULT NULL,
+  `user_id`              VARCHAR(80)    DEFAULT NULL,
+  `expires`              TIMESTAMP      NOT NULL,
+  `scope`                VARCHAR(4000)  DEFAULT NULL,
+  PRIMARY KEY (`access_token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_authorization_codes`
+--
+CREATE TABLE IF NOT EXISTS `oauth_authorization_codes` (
+  `authorization_code`  VARCHAR(40)    NOT NULL,
+  `client_id`           VARCHAR(80)    DEFAULT NULL,
+  `user_id`             VARCHAR(80)    DEFAULT NULL,
+  `redirect_uri`        VARCHAR(2000)  NOT NULL,
+  `expires`             TIMESTAMP      NOT NULL,
+  `scope`               VARCHAR(4000)  DEFAULT NULL,
+  `id_token`            VARCHAR(1000)  DEFAULT NULL,
+  PRIMARY KEY (`authorization_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_refresh_tokens`
+--
+CREATE TABLE IF NOT EXISTS `oauth_refresh_tokens` (
+  `refresh_token`       VARCHAR(40)    NOT NULL,
+  `client_id`           VARCHAR(80)    DEFAULT NULL,
+  `user_id`             VARCHAR(80)    DEFAULT NULL,
+  `expires`             TIMESTAMP      on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `scope`               VARCHAR(4000)  DEFAULT NULL,
+  PRIMARY KEY (`refresh_token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_users`
+--
+CREATE TABLE IF NOT EXISTS `oauth_users` (
+  `username`            VARCHAR(80)    DEFAULT NULL,
+  `password`            VARCHAR(255)   DEFAULT NULL,
+  `first_name`          VARCHAR(80)    DEFAULT NULL,
+  `last_name`           VARCHAR(80)    DEFAULT NULL,
+  `email`               VARCHAR(2000)  DEFAULT NULL,
+  `email_verified`      TINYINT(1)     DEFAULT NULL,
+  `scope`               VARCHAR(4000)  DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_scopes`
+--
+CREATE TABLE IF NOT EXISTS `oauth_scopes` (
+  `scope`               VARCHAR(80)  NOT NULL,
+  `is_default`          TINYINT(1)   DEFAULT NULL,
+  PRIMARY KEY (`scope`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_jwt`
+--
+CREATE TABLE IF NOT EXISTS `oauth_jwt` (
+  `client_id`           VARCHAR(80)    NOT NULL,
+  `subject`             VARCHAR(80)    DEFAULT NULL,
+  `public_key`          VARCHAR(2000)  NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_jti`
+--
+CREATE TABLE IF NOT EXISTS `oauth_jti` (
+  `issuer`              VARCHAR(80)    NOT NULL,
+  `subject`             VARCHAR(80)    DEFAULT NULL,
+  `audiance`            VARCHAR(80)    DEFAULT NULL,
+  `expires`             TIMESTAMP      NOT NULL,
+  `jti`                 VARCHAR(2000)  NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `oauth_public_keys`
+--
+CREATE TABLE IF NOT EXISTS `oauth_public_keys` (
+  `client_id`            VARCHAR(80)    DEFAULT NULL,
+  `public_key`           VARCHAR(2000)  DEFAULT NULL,
+  `private_key`          VARCHAR(2000)  DEFAULT NULL,
+  `encryption_algorithm` VARCHAR(100)   DEFAULT 'RS256'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 
GitLab


From f8911700c7403aaf1a1f0e49a7d9819f9dfecba2 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Tue, 21 Apr 2020 15:39:40 +0800
Subject: [PATCH 16/23] fix inline schema without object type (#5992)

---
 .../codegen/InlineModelResolver.java           | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
index 32f6023d695..c1f26c8ad77 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
@@ -332,11 +332,11 @@ public class InlineModelResolver {
      * Flattens properties of inline object schemas that belong to a composed schema into a
      * single flat list of properties. This is useful to generate a single or multiple
      * inheritance model.
-     * 
+     *
      * In the example below, codegen may generate a 'Dog' class that extends from the
      * generated 'Animal' class. 'Dog' has additional properties 'name', 'age' and 'breed' that
      * are flattened as a single list of properties.
-     * 
+     *
      * Dog:
      *   allOf:
      *     - $ref: '#/components/schemas/Animal'
@@ -350,7 +350,7 @@ public class InlineModelResolver {
      *       properties:
      *         breed:
      *           type: string
-     * 
+     *
      * @param openAPI the OpenAPI document
      * @param key a unique name ofr the composed schema.
      * @param children the list of nested schemas within a composed schema (allOf, anyOf, oneOf).
@@ -362,8 +362,10 @@ public class InlineModelResolver {
         ListIterator<Schema> listIterator = children.listIterator();
         while (listIterator.hasNext()) {
             Schema component = listIterator.next();
-            if (component instanceof ObjectSchema) {
-                ObjectSchema op = (ObjectSchema) component;
+            if (component instanceof ObjectSchema || // for inline schema with type:object
+                    (component != null && component.getProperties() != null &&
+                            !component.getProperties().isEmpty())) { // for inline schema without type:object
+                Schema op = component;
                 if (op.get$ref() == null && op.getProperties() != null && op.getProperties().size() > 0) {
                     // If a `title` attribute is defined in the inline schema, codegen uses it to name the
                     // inline schema. Otherwise, we'll use the default naming such as InlineObject1, etc.
@@ -390,6 +392,8 @@ public class InlineModelResolver {
                         listIterator.set(schema);
                     }
                 }
+            } else {
+                // likely a reference to schema (not inline schema)
             }
         }
     }
@@ -465,7 +469,7 @@ public class InlineModelResolver {
      * with underscores
      *
      * e.g. io.schema.User_name => io_schema_User_name
-     * 
+     *
      * @param title String title field in the schema if present
      * @param key String model name
      *
@@ -607,7 +611,7 @@ public class InlineModelResolver {
         }
     }
 
-    private Schema modelFromProperty(ObjectSchema object, String path) {
+    private Schema modelFromProperty(Schema object, String path) {
         String description = object.getDescription();
         String example = null;
         Object obj = object.getExample();
-- 
GitLab


From 8661ed3c0422897b0b3dfc7dcc73f20288f117ad Mon Sep 17 00:00:00 2001
From: Christian Katzorke <c.katzorke@web.de>
Date: Tue, 21 Apr 2020 09:40:08 +0200
Subject: [PATCH 17/23] Added Allianz Technolgy (#5999)

Allianz Technology, the service provider subsidiary of Allianz SE is using OpenAPI generator.
---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 8e21254fe81..ec9b3822b97 100644
--- a/README.md
+++ b/README.md
@@ -567,6 +567,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
 
 - [Adaptant Solutions AG](https://www.adaptant.io/)
 - [Agoda](https://www.agoda.com/)
+- [Allianz](https://www.allianz.com)
 - [Angular.Schule](https://angular.schule/)
 - [Australia and New Zealand Banking Group (ANZ)](http://www.anz.com/)
 - [ASKUL](https://www.askul.co.jp)
-- 
GitLab


From c9882cb494c870ed7d386ed97581199c38490ebe Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Tue, 21 Apr 2020 17:07:29 +0800
Subject: [PATCH 18/23] add allianz logo

---
 website/src/dynamic/users.yml            |   5 +++++
 website/static/img/companies/allianz.png | Bin 0 -> 9670 bytes
 2 files changed, 5 insertions(+)
 create mode 100644 website/static/img/companies/allianz.png

diff --git a/website/src/dynamic/users.yml b/website/src/dynamic/users.yml
index 82349f8f46b..da74a98af9e 100644
--- a/website/src/dynamic/users.yml
+++ b/website/src/dynamic/users.yml
@@ -8,6 +8,11 @@
   image: "img/companies/agoda.png"
   infoLink: "https://www.agoda.com/"
   pinned: false
+-
+  caption: "Allianz"
+  image: "img/companies/allianz.png"
+  infoLink: "https://www.allianz.com"
+  pinned: false
 -
   caption: "Angular.Schule"
   image: "img/companies/angular-schule.svg"
diff --git a/website/static/img/companies/allianz.png b/website/static/img/companies/allianz.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4b4266f7db3be9cd70199a6d42de09eab4160e9
GIT binary patch
literal 9670
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

literal 0
HcmV?d00001

-- 
GitLab


From 381ebeb33e3c14d16d76a3f94764053c6aa6e325 Mon Sep 17 00:00:00 2001
From: Harald Fernengel <harald.fernengel@here.com>
Date: Tue, 21 Apr 2020 14:12:11 +0200
Subject: [PATCH 19/23] [typescript-fetch] support http HEAD as well (#5994)

closes #2935
---
 .../src/main/resources/typescript-fetch/runtime.mustache        | 2 +-
 .../client/petstore/typescript-fetch/builds/default/runtime.ts  | 2 +-
 .../petstore/typescript-fetch/builds/es6-target/src/runtime.ts  | 2 +-
 .../typescript-fetch/builds/multiple-parameters/runtime.ts      | 2 +-
 .../builds/prefix-parameter-interfaces/src/runtime.ts           | 2 +-
 .../builds/typescript-three-plus/src/runtime.ts                 | 2 +-
 .../petstore/typescript-fetch/builds/with-interfaces/runtime.ts | 2 +-
 .../typescript-fetch/builds/with-npm-version/src/runtime.ts     | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/runtime.mustache
index 68a3811bb39..ee1ee65cc39 100644
--- a/modules/openapi-generator/src/main/resources/typescript-fetch/runtime.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-fetch/runtime.mustache
@@ -182,7 +182,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/default/runtime.ts b/samples/client/petstore/typescript-fetch/builds/default/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/default/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/src/runtime.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/src/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/es6-target/src/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/es6-target/src/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/runtime.ts b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/runtime.ts b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/typescript-three-plus/src/runtime.ts b/samples/client/petstore/typescript-fetch/builds/typescript-three-plus/src/runtime.ts
index c84478821a0..b6e6a7744d7 100644
--- a/samples/client/petstore/typescript-fetch/builds/typescript-three-plus/src/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/typescript-three-plus/src/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-fetch/builds/with-interfaces/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-interfaces/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-interfaces/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/runtime.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/runtime.ts
index 8862b423aaa..649e1750424 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/runtime.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/runtime.ts
@@ -193,7 +193,7 @@ export class Configuration {
 }
 
 export type Json = any;
-export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
+export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
 export type HTTPHeaders = { [key: string]: string };
 export type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | HTTPQuery };
 export type HTTPBody = Json | FormData | URLSearchParams;
-- 
GitLab


From 12512cf720ad4bf9c4b23798d6cabfffbaa17ba4 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Wed, 22 Apr 2020 11:02:23 +0800
Subject: [PATCH 20/23] update cxf version (#6003)

---
 .../src/main/resources/JavaJaxRS/cxf-cdi/pom.mustache         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pom.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pom.mustache
index 2e4a1649272..d553a7b1278 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pom.mustache
@@ -58,8 +58,8 @@
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
             <!-- Version is just a guess -->
-            <!-- IBM WebSphere Application Server Liberty Core v8.5.5.6 uses v3.0.2, source https://www.ibm.com/support/knowledgecenter/SSD28V_8.5.5/com.ibm.websphere.wlp.core.doc/ae/rwlp_jaxrs_secure.html -->
-            <version>3.0.2</version>
+            <!-- Require at lease CXF 3.1.2 since HTTP PATCH support was added on this version -->
+            <version>3.1.2</version>
             <scope>provided</scope>
         </dependency>
 
-- 
GitLab


From 40be1c311ed0d4536f6692e6ffb7d4084b81c20f Mon Sep 17 00:00:00 2001
From: Jochen Schalanda <jochen@schalanda.name>
Date: Wed, 22 Apr 2020 05:19:17 +0200
Subject: [PATCH 21/23] [Java][Client] Fix Gradle and SBT builds for REST
 Assured generator (#5990)

* Fix Gradle and SBT builds for Java REST Assured generator

* Add missing jackson-databind-nullable dependency to SBT build

* Update rest-assured sample

* Add sample for Java client with REST Assured and Jackson

* Add new REST Assured sample as Maven sub-module
---
 bin/ci/java-rest-assured-jackson.json         |   16 +
 bin/java-petstore-all.sh                      |    1 +
 bin/java-petstore-rest-assured-jackson.json   |    4 +
 bin/java-petstore-rest-assured-jackson.sh     |   36 +
 bin/windows/java-petstore-all.bat             |    1 +
 .../java-petstore-rest-assured-jackson.bat    |   10 +
 .../rest-assured/build.gradle.mustache        |   19 +-
 .../libraries/rest-assured/build.sbt.mustache |   23 +-
 pom.xml                                       |    1 +
 .../java/rest-assured-jackson/.gitignore      |   21 +
 .../.openapi-generator-ignore                 |   23 +
 .../.openapi-generator/VERSION                |    1 +
 .../java/rest-assured-jackson/.travis.yml     |   22 +
 .../java/rest-assured-jackson/README.md       |   43 +
 .../rest-assured-jackson/api/openapi.yaml     | 2183 +++++++++++++++++
 .../java/rest-assured-jackson/build.gradle    |  121 +
 .../java/rest-assured-jackson/build.sbt       |   27 +
 .../docs/AdditionalPropertiesAnyType.md       |   12 +
 .../docs/AdditionalPropertiesArray.md         |   12 +
 .../docs/AdditionalPropertiesBoolean.md       |   12 +
 .../docs/AdditionalPropertiesClass.md         |   22 +
 .../docs/AdditionalPropertiesInteger.md       |   12 +
 .../docs/AdditionalPropertiesNumber.md        |   12 +
 .../docs/AdditionalPropertiesObject.md        |   12 +
 .../docs/AdditionalPropertiesString.md        |   12 +
 .../java/rest-assured-jackson/docs/Animal.md  |   13 +
 .../docs/AnotherFakeApi.md                    |   51 +
 .../docs/ArrayOfArrayOfNumberOnly.md          |   12 +
 .../docs/ArrayOfNumberOnly.md                 |   12 +
 .../rest-assured-jackson/docs/ArrayTest.md    |   14 +
 .../java/rest-assured-jackson/docs/BigCat.md  |   23 +
 .../rest-assured-jackson/docs/BigCatAllOf.md  |   23 +
 .../docs/Capitalization.md                    |   17 +
 .../docs/Cat.md}                              |    5 +-
 .../rest-assured-jackson/docs/CatAllOf.md     |   12 +
 .../rest-assured-jackson/docs/Category.md     |   13 +
 .../rest-assured-jackson/docs/ClassModel.md   |   13 +
 .../java/rest-assured-jackson/docs/Client.md  |   12 +
 .../docs/Dog.md}                              |    5 +-
 .../rest-assured-jackson/docs/DogAllOf.md     |   12 +
 .../rest-assured-jackson/docs/EnumArrays.md   |   31 +
 .../rest-assured-jackson/docs/EnumClass.md    |   15 +
 .../rest-assured-jackson/docs/EnumTest.md     |   54 +
 .../java/rest-assured-jackson/docs/FakeApi.md |  641 +++++
 .../docs/FakeClassnameTags123Api.md           |   51 +
 .../docs/FileSchemaTestClass.md               |   13 +
 .../rest-assured-jackson/docs/FormatTest.md   |   25 +
 .../docs/HasOnlyReadOnly.md                   |   13 +
 .../java/rest-assured-jackson/docs/MapTest.md |   24 +
 ...dPropertiesAndAdditionalPropertiesClass.md |   14 +
 .../docs/Model200Response.md                  |   14 +
 .../docs/ModelApiResponse.md                  |   14 +
 .../rest-assured-jackson/docs/ModelReturn.md  |   13 +
 .../java/rest-assured-jackson/docs/Name.md    |   16 +
 .../rest-assured-jackson/docs/NumberOnly.md   |   12 +
 .../java/rest-assured-jackson/docs/Order.md   |   27 +
 .../docs/OuterComposite.md                    |   14 +
 .../rest-assured-jackson/docs/OuterEnum.md    |   15 +
 .../java/rest-assured-jackson/docs/Pet.md     |   27 +
 .../java/rest-assured-jackson/docs/PetApi.md  |  391 +++
 .../docs/ReadOnlyFirst.md                     |   13 +
 .../docs/SpecialModelName.md                  |   12 +
 .../rest-assured-jackson/docs/StoreApi.md     |  174 ++
 .../java/rest-assured-jackson/docs/Tag.md     |   13 +
 .../docs/TypeHolderDefault.md                 |   16 +
 .../docs/TypeHolderExample.md                 |   17 +
 .../java/rest-assured-jackson/docs/User.md    |   19 +
 .../java/rest-assured-jackson/docs/UserApi.md |  342 +++
 .../java/rest-assured-jackson/docs/XmlItem.md |   40 +
 .../java/rest-assured-jackson/git_push.sh     |   58 +
 .../rest-assured-jackson/gradle.properties    |    2 +
 .../gradle/wrapper/gradle-wrapper.jar         |  Bin 0 -> 58702 bytes
 .../gradle/wrapper/gradle-wrapper.properties  |    5 +
 .../java/rest-assured-jackson/gradlew         |  183 ++
 .../java/rest-assured-jackson/gradlew.bat     |  100 +
 .../java/rest-assured-jackson/pom.xml         |  287 +++
 .../java/rest-assured-jackson/settings.gradle |    1 +
 .../src/main/AndroidManifest.xml              |    3 +
 .../org/openapitools/client/ApiClient.java    |   78 +
 .../client/BeanValidationException.java       |   27 +
 .../client/JacksonObjectMapper.java           |   52 +
 .../client/RFC3339DateFormat.java             |   32 +
 .../client/ResponseSpecBuilders.java          |   42 +
 .../client/ServerConfiguration.java           |   58 +
 .../openapitools/client/ServerVariable.java   |   23 +
 .../client/api/AnotherFakeApi.java            |  157 ++
 .../org/openapitools/client/api/FakeApi.java  | 1527 ++++++++++++
 .../client/api/FakeClassnameTags123Api.java   |  157 ++
 .../org/openapitools/client/api/Oper.java     |   24 +
 .../org/openapitools/client/api/PetApi.java   |  885 +++++++
 .../org/openapitools/client/api/StoreApi.java |  390 +++
 .../org/openapitools/client/api/UserApi.java  |  693 ++++++
 .../model/AdditionalPropertiesAnyType.java    |  109 +
 .../model/AdditionalPropertiesArray.java      |  110 +
 .../model/AdditionalPropertiesBoolean.java    |  109 +
 .../model/AdditionalPropertiesClass.java      |  491 ++++
 .../model/AdditionalPropertiesInteger.java    |  109 +
 .../model/AdditionalPropertiesNumber.java     |  110 +
 .../model/AdditionalPropertiesObject.java     |  109 +
 .../model/AdditionalPropertiesString.java     |  109 +
 .../org/openapitools/client/model/Animal.java |  145 ++
 .../model/ArrayOfArrayOfNumberOnly.java       |  117 +
 .../client/model/ArrayOfNumberOnly.java       |  117 +
 .../openapitools/client/model/ArrayTest.java  |  196 ++
 .../org/openapitools/client/model/BigCat.java |  148 ++
 .../client/model/BigCatAllOf.java             |  144 ++
 .../client/model/Capitalization.java          |  260 ++
 .../org/openapitools/client/model/Cat.java    |  109 +
 .../openapitools/client/model/CatAllOf.java   |  105 +
 .../openapitools/client/model/Category.java   |  136 +
 .../openapitools/client/model/ClassModel.java |  106 +
 .../org/openapitools/client/model/Client.java |  105 +
 .../org/openapitools/client/model/Dog.java    |  109 +
 .../openapitools/client/model/DogAllOf.java   |  105 +
 .../openapitools/client/model/EnumArrays.java |  216 ++
 .../openapitools/client/model/EnumClass.java  |   63 +
 .../openapitools/client/model/EnumTest.java   |  375 +++
 .../client/model/FileSchemaTestClass.java     |  148 ++
 .../openapitools/client/model/FormatTest.java |  529 ++++
 .../client/model/HasOnlyReadOnly.java         |  118 +
 .../openapitools/client/model/MapTest.java    |  269 ++
 ...ropertiesAndAdditionalPropertiesClass.java |  184 ++
 .../client/model/Model200Response.java        |  137 ++
 .../client/model/ModelApiResponse.java        |  167 ++
 .../client/model/ModelReturn.java             |  106 +
 .../org/openapitools/client/model/Name.java   |  181 ++
 .../openapitools/client/model/NumberOnly.java |  107 +
 .../org/openapitools/client/model/Order.java  |  299 +++
 .../client/model/OuterComposite.java          |  169 ++
 .../openapitools/client/model/OuterEnum.java  |   63 +
 .../org/openapitools/client/model/Pet.java    |  316 +++
 .../client/model/ReadOnlyFirst.java           |  127 +
 .../client/model/SpecialModelName.java        |  105 +
 .../org/openapitools/client/model/Tag.java    |  136 +
 .../client/model/TypeHolderDefault.java       |  238 ++
 .../client/model/TypeHolderExample.java       |  269 ++
 .../org/openapitools/client/model/User.java   |  322 +++
 .../openapitools/client/model/XmlItem.java    | 1053 ++++++++
 .../client/api/AnotherFakeApiTest.java        |   61 +
 .../openapitools/client/api/FakeApiTest.java  |  306 +++
 .../api/FakeClassnameTags123ApiTest.java      |   61 +
 .../openapitools/client/api/PetApiTest.java   |  267 ++
 .../openapitools/client/api/StoreApiTest.java |  139 ++
 .../openapitools/client/api/UserApiTest.java  |  206 ++
 .../AdditionalPropertiesAnyTypeTest.java      |   51 +
 .../model/AdditionalPropertiesArrayTest.java  |   52 +
 .../AdditionalPropertiesBooleanTest.java      |   51 +
 .../model/AdditionalPropertiesClassTest.java  |  133 +
 .../AdditionalPropertiesIntegerTest.java      |   51 +
 .../model/AdditionalPropertiesNumberTest.java |   52 +
 .../model/AdditionalPropertiesObjectTest.java |   51 +
 .../model/AdditionalPropertiesStringTest.java |   51 +
 .../openapitools/client/model/AnimalTest.java |   59 +
 .../model/ArrayOfArrayOfNumberOnlyTest.java   |   52 +
 .../client/model/ArrayOfNumberOnlyTest.java   |   52 +
 .../client/model/ArrayTestTest.java           |   68 +
 .../client/model/BigCatAllOfTest.java         |   49 +
 .../openapitools/client/model/BigCatTest.java |   75 +
 .../client/model/CapitalizationTest.java      |   89 +
 .../client/model/CatAllOfTest.java            |   49 +
 .../openapitools/client/model/CatTest.java    |   67 +
 .../client/model/CategoryTest.java            |   57 +
 .../client/model/ClassModelTest.java          |   49 +
 .../openapitools/client/model/ClientTest.java |   49 +
 .../client/model/DogAllOfTest.java            |   49 +
 .../openapitools/client/model/DogTest.java    |   67 +
 .../client/model/EnumArraysTest.java          |   59 +
 .../client/model/EnumClassTest.java           |   33 +
 .../client/model/EnumTestTest.java            |   82 +
 .../client/model/FileSchemaTestClassTest.java |   59 +
 .../client/model/FormatTestTest.java          |  158 ++
 .../client/model/HasOnlyReadOnlyTest.java     |   57 +
 .../client/model/MapTestTest.java             |   76 +
 ...rtiesAndAdditionalPropertiesClassTest.java |   71 +
 .../client/model/Model200ResponseTest.java    |   57 +
 .../client/model/ModelApiResponseTest.java    |   65 +
 .../client/model/ModelReturnTest.java         |   49 +
 .../openapitools/client/model/NameTest.java   |   73 +
 .../client/model/NumberOnlyTest.java          |   50 +
 .../openapitools/client/model/OrderTest.java  |   90 +
 .../client/model/OuterCompositeTest.java      |   66 +
 .../client/model/OuterEnumTest.java           |   33 +
 .../openapitools/client/model/PetTest.java    |   93 +
 .../client/model/ReadOnlyFirstTest.java       |   57 +
 .../client/model/SpecialModelNameTest.java    |   49 +
 .../openapitools/client/model/TagTest.java    |   57 +
 .../client/model/TypeHolderDefaultTest.java   |   84 +
 .../client/model/TypeHolderExampleTest.java   |   92 +
 .../openapitools/client/model/UserTest.java   |  105 +
 .../client/model/XmlItemTest.java             |  276 +++
 .../petstore/java/rest-assured/build.gradle   |    2 +-
 .../petstore/java/rest-assured/build.sbt      |    4 +-
 .../client/api/AnotherFakeApiTest.java        |    9 +-
 .../openapitools/client/api/FakeApiTest.java  |   56 +-
 .../api/FakeClassnameTags123ApiTest.java      |    9 +-
 .../openapitools/client/api/PetApiTest.java   |   72 +-
 .../openapitools/client/api/StoreApiTest.java |   13 +-
 .../openapitools/client/api/UserApiTest.java  |   25 +-
 .../AdditionalPropertiesAnyTypeTest.java      |    2 +-
 .../model/AdditionalPropertiesArrayTest.java  |    2 +-
 .../AdditionalPropertiesBooleanTest.java      |    2 +-
 .../model/AdditionalPropertiesClassTest.java  |   87 +-
 .../AdditionalPropertiesIntegerTest.java      |    2 +-
 .../model/AdditionalPropertiesNumberTest.java |    2 +-
 .../model/AdditionalPropertiesObjectTest.java |    2 +-
 .../model/AdditionalPropertiesStringTest.java |    2 +-
 .../openapitools/client/model/AnimalTest.java |    2 +-
 .../model/ArrayOfArrayOfNumberOnlyTest.java   |    2 +-
 .../client/model/ArrayOfNumberOnlyTest.java   |    2 +-
 .../client/model/ArrayTestTest.java           |    2 +-
 .../client/model/CapitalizationTest.java      |    2 +-
 .../openapitools/client/model/CatTest.java    |    3 +-
 .../client/model/CategoryTest.java            |    2 +-
 .../client/model/ClassModelTest.java          |    2 +-
 .../openapitools/client/model/ClientTest.java |    2 +-
 .../openapitools/client/model/DogTest.java    |    3 +-
 .../client/model/EnumArraysTest.java          |    2 +-
 .../client/model/EnumClassTest.java           |    2 +-
 .../client/model/EnumTestTest.java            |    2 +-
 .../client/model/FileSchemaTestClassTest.java |    2 +-
 .../client/model/FormatTestTest.java          |   10 +-
 .../client/model/HasOnlyReadOnlyTest.java     |    2 +-
 .../client/model/MapTestTest.java             |    2 +-
 ...rtiesAndAdditionalPropertiesClassTest.java |    2 +-
 .../client/model/Model200ResponseTest.java    |    2 +-
 .../client/model/ModelApiResponseTest.java    |    2 +-
 .../client/model/ModelReturnTest.java         |    2 +-
 .../openapitools/client/model/NameTest.java   |    2 +-
 .../client/model/NumberOnlyTest.java          |    2 +-
 .../openapitools/client/model/OrderTest.java  |    2 +-
 .../client/model/OuterCompositeTest.java      |    2 +-
 .../client/model/OuterEnumTest.java           |    2 +-
 .../openapitools/client/model/PetTest.java    |    2 +-
 .../client/model/ReadOnlyFirstTest.java       |    2 +-
 .../client/model/SpecialModelNameTest.java    |    2 +-
 .../openapitools/client/model/TagTest.java    |    2 +-
 .../client/model/TypeHolderDefaultTest.java   |    2 +-
 .../client/model/TypeHolderExampleTest.java   |   10 +-
 .../openapitools/client/model/UserTest.java   |    2 +-
 .../client/model/XmlItemTest.java             |   38 +-
 240 files changed, 23146 insertions(+), 125 deletions(-)
 create mode 100644 bin/ci/java-rest-assured-jackson.json
 create mode 100644 bin/java-petstore-rest-assured-jackson.json
 create mode 100755 bin/java-petstore-rest-assured-jackson.sh
 create mode 100644 bin/windows/java-petstore-rest-assured-jackson.bat
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/.gitignore
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/.openapi-generator-ignore
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/.travis.yml
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/README.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/api/openapi.yaml
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/build.gradle
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/build.sbt
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesAnyType.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesArray.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesBoolean.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesClass.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesInteger.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesNumber.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesObject.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AdditionalPropertiesString.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Animal.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/AnotherFakeApi.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfArrayOfNumberOnly.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ArrayOfNumberOnly.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ArrayTest.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/BigCat.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/BigCatAllOf.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Capitalization.md
 rename samples/client/petstore/java/{rest-assured/docs/StringBooleanMap.md => rest-assured-jackson/docs/Cat.md} (68%)
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/CatAllOf.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Category.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ClassModel.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Client.md
 rename samples/client/petstore/java/{rest-assured/docs/AnimalFarm.md => rest-assured-jackson/docs/Dog.md} (70%)
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/DogAllOf.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/EnumArrays.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/EnumClass.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/EnumTest.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/FakeApi.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/FakeClassnameTags123Api.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/FileSchemaTestClass.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/FormatTest.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/HasOnlyReadOnly.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/MapTest.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/MixedPropertiesAndAdditionalPropertiesClass.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Model200Response.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ModelApiResponse.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ModelReturn.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Name.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/NumberOnly.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Order.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/OuterComposite.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/OuterEnum.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Pet.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/PetApi.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/ReadOnlyFirst.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/SpecialModelName.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/StoreApi.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/Tag.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderDefault.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/TypeHolderExample.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/User.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/UserApi.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/docs/XmlItem.md
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/git_push.sh
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/gradle.properties
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/gradlew
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/gradlew.bat
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/pom.xml
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/settings.gradle
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/AndroidManifest.xml
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ApiClient.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/BeanValidationException.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/JacksonObjectMapper.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/RFC3339DateFormat.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ResponseSpecBuilders.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerConfiguration.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/ServerVariable.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/AnotherFakeApi.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeApi.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/Oper.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/PetApi.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/StoreApi.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/UserApi.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Animal.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCat.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCatAllOf.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Capitalization.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Cat.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/CatAllOf.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Category.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ClassModel.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Client.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Dog.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/DogAllOf.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumArrays.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumClass.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FormatTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MapTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Model200Response.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelApiResponse.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelReturn.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Name.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/NumberOnly.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Order.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterComposite.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterEnum.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Pet.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/SpecialModelName.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Tag.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderDefault.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderExample.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/User.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/XmlItem.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/PetApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/StoreApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/UserApiTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AnimalTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayTestTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatAllOfTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CapitalizationTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatAllOfTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CategoryTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClassModelTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClientTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogAllOfTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumArraysTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumClassTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumTestTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FormatTestTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MapTestTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelReturnTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NameTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OrderTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterEnumTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/PetTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TagTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/UserTest.java
 create mode 100644 samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/XmlItemTest.java

diff --git a/bin/ci/java-rest-assured-jackson.json b/bin/ci/java-rest-assured-jackson.json
new file mode 100644
index 00000000000..1ff56d80ea8
--- /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 6eed10ebe38..05b50835c99 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 00000000000..d6e6035df80
--- /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 00000000000..eeffe6aacee
--- /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 dd357cfd56d..816919bb8fd 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 00000000000..8104df8b771
--- /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 640ad1cd18c..0868a2aa7c0 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 77f8af4f436..955f515fc70 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 361c55d0623..df4f81ac4e5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1320,6 +1320,7 @@
                 <module>samples/client/petstore/java/resteasy</module>
                 <module>samples/client/petstore/java/google-api-client</module>
                 <module>samples/client/petstore/java/rest-assured</module>
+                <module>samples/client/petstore/java/rest-assured-jackson</module>
                 <module>samples/client/petstore/groovy</module>
                 <!-- servers -->
                 <module>samples/server/petstore/jaxrs-jersey</module>
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 00000000000..a530464afa1
--- /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 00000000000..7484ee590a3
--- /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 00000000000..b5d898602c2
--- /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 00000000000..e3bdf2af1be
--- /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 00000000000..5ddd1aa2147
--- /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
+<dependency>
+    <groupId>org.openapitools</groupId>
+    <artifactId>petstore-rest-assured-jackson</artifactId>
+    <version>1.0.0</version>
+    <scope>compile</scope>
+</dependency>
+
+```
+
+## 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 00000000000..30aad25824c
--- /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 00000000000..ca4ac63c3ec
--- /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 00000000000..8f167f16a2f
--- /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 00000000000..87b468bb7ca
--- /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 00000000000..cb7fe9b3903
--- /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 00000000000..6b53e7ba73a
--- /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 00000000000..36e18162001
--- /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&lt;String, String&gt;** |  |  [optional]
+**mapNumber** | [**Map&lt;String, BigDecimal&gt;**](BigDecimal.md) |  |  [optional]
+**mapInteger** | **Map&lt;String, Integer&gt;** |  |  [optional]
+**mapBoolean** | **Map&lt;String, Boolean&gt;** |  |  [optional]
+**mapArrayInteger** | [**Map&lt;String, List&lt;Integer&gt;&gt;**](List.md) |  |  [optional]
+**mapArrayAnytype** | [**Map&lt;String, List&lt;Object&gt;&gt;**](List.md) |  |  [optional]
+**mapMapString** | [**Map&lt;String, Map&lt;String, String&gt;&gt;**](Map.md) |  |  [optional]
+**mapMapAnytype** | [**Map&lt;String, Map&lt;String, Object&gt;&gt;**](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 00000000000..d2ed7fb1a46
--- /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 00000000000..53f6e81e717
--- /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 00000000000..98ac8d2e5fe
--- /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 00000000000..d7970cdfe19
--- /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 00000000000..c8e18ae55e4
--- /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 00000000000..8763b590990
--- /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
+
+
+<a name="call123testSpecialTags"></a>
+# **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 00000000000..a48aa23e78e
--- /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&lt;List&lt;BigDecimal&gt;&gt;**](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 00000000000..fa2909211a0
--- /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&lt;BigDecimal&gt;**](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 00000000000..9ad1c9814a5
--- /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&lt;String&gt;** |  |  [optional]
+**arrayArrayOfInteger** | [**List&lt;List&lt;Long&gt;&gt;**](List.md) |  |  [optional]
+**arrayArrayOfModel** | [**List&lt;List&lt;ReadOnlyFirst&gt;&gt;**](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 00000000000..8a075304abf
--- /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 | &quot;lions&quot;
+TIGERS | &quot;tigers&quot;
+LEOPARDS | &quot;leopards&quot;
+JAGUARS | &quot;jaguars&quot;
+
+
+
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 00000000000..21177dbf089
--- /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 | &quot;lions&quot;
+TIGERS | &quot;tigers&quot;
+LEOPARDS | &quot;leopards&quot;
+JAGUARS | &quot;jaguars&quot;
+
+
+
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 00000000000..7b73c40b554
--- /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 cac7afc80e0..39c2f864df8 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 00000000000..1098fd900c5
--- /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 00000000000..613ea9f7ee2
--- /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 00000000000..d5453c20133
--- /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 00000000000..228df492383
--- /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 c7c7f1ddcce..73cedf2bc91 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 00000000000..cbeb9e9a22d
--- /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 00000000000..869b7a6c066
--- /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&lt;ArrayEnumEnum&gt;**](#List&lt;ArrayEnumEnum&gt;) |  |  [optional]
+
+
+
+## Enum: JustSymbolEnum
+
+Name | Value
+---- | -----
+GREATER_THAN_OR_EQUAL_TO | &quot;&gt;&#x3D;&quot;
+DOLLAR | &quot;$&quot;
+
+
+
+## Enum: List&lt;ArrayEnumEnum&gt;
+
+Name | Value
+---- | -----
+FISH | &quot;fish&quot;
+CRAB | &quot;crab&quot;
+
+
+
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 00000000000..b314590a759
--- /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 00000000000..61eb95f22fe
--- /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 | &quot;UPPER&quot;
+LOWER | &quot;lower&quot;
+EMPTY | &quot;&quot;
+
+
+
+## Enum: EnumStringRequiredEnum
+
+Name | Value
+---- | -----
+UPPER | &quot;UPPER&quot;
+LOWER | &quot;lower&quot;
+EMPTY | &quot;&quot;
+
+
+
+## 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 00000000000..075077996e7
--- /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 \&quot;client\&quot; 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 | 
+
+
+<a name="createXmlItem"></a>
+# **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
+
+<a name="fakeOuterBooleanSerialize"></a>
+# **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**: */*
+
+<a name="fakeOuterCompositeSerialize"></a>
+# **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**: */*
+
+<a name="fakeOuterNumberSerialize"></a>
+# **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**: */*
+
+<a name="fakeOuterStringSerialize"></a>
+# **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**: */*
+
+<a name="testBodyWithFileSchema"></a>
+# **testBodyWithFileSchema**
+> testBodyWithFileSchema(body)
+
+
+
+For this test, the body for this request much reference a schema named &#x60;File&#x60;.
+
+### 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
+
+<a name="testBodyWithQueryParams"></a>
+# **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
+
+<a name="testClientModel"></a>
+# **testClientModel**
+> Client testClientModel(body)
+
+To test \&quot;client\&quot; model
+
+To test \&quot;client\&quot; 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
+
+<a name="testEndpointParameters"></a>
+# **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
+
+<a name="testEnumParameters"></a>
+# **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&lt;String&gt;**](String.md)| Header parameter enum test (string array) | [optional] [default to new ArrayList&lt;&gt;()] [enum: >, $]
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to -efg] [enum: _abc, -efg, (xyz)]
+ **enumQueryStringArray** | [**List&lt;String&gt;**](String.md)| Query parameter enum test (string array) | [optional] [default to new ArrayList&lt;&gt;()] [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&lt;String&gt;**](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
+
+<a name="testGroupParameters"></a>
+# **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
+
+<a name="testInlineAdditionalProperties"></a>
+# **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&lt;String, String&gt;**](String.md)| request body |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+<a name="testJsonFormData"></a>
+# **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
+
+<a name="testQueryParameterCollectionFormat"></a>
+# **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&lt;String&gt;**](String.md)|  | [default to new ArrayList&lt;&gt;()]
+ **ioutil** | [**List&lt;String&gt;**](String.md)|  | [default to new ArrayList&lt;&gt;()]
+ **http** | [**List&lt;String&gt;**](String.md)|  | [default to new ArrayList&lt;&gt;()]
+ **url** | [**List&lt;String&gt;**](String.md)|  | [default to new ArrayList&lt;&gt;()]
+ **context** | [**List&lt;String&gt;**](String.md)|  | [default to new ArrayList&lt;&gt;()]
+
+### 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 00000000000..7aa78d36b35
--- /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
+
+
+<a name="testClassname"></a>
+# **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 00000000000..3a95e27d7c0
--- /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&lt;java.io.File&gt;**](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 00000000000..d138e921902
--- /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 00000000000..4795b40ef65
--- /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 00000000000..c35c3cf2c0b
--- /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&lt;String, Map&lt;String, String&gt;&gt;**](Map.md) |  |  [optional]
+**mapOfEnumString** | [**Map&lt;String, InnerEnum&gt;**](#Map&lt;String, InnerEnum&gt;) |  |  [optional]
+**directMap** | **Map&lt;String, Boolean&gt;** |  |  [optional]
+**indirectMap** | **Map&lt;String, Boolean&gt;** |  |  [optional]
+
+
+
+## Enum: Map&lt;String, InnerEnum&gt;
+
+Name | Value
+---- | -----
+UPPER | &quot;UPPER&quot;
+LOWER | &quot;lower&quot;
+
+
+
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 00000000000..3dc283ae493
--- /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&lt;String, Animal&gt;**](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 00000000000..f9928d70622
--- /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 00000000000..14fb7f1ed27
--- /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 00000000000..5005d4b7239
--- /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 00000000000..b815a0b4c99
--- /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 00000000000..1c12b6adf3b
--- /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 00000000000..409fc4cc961
--- /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 | &quot;placed&quot;
+APPROVED | &quot;approved&quot;
+DELIVERED | &quot;delivered&quot;
+
+
+
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 00000000000..e0629221884
--- /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 00000000000..1f9b723eb8e
--- /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 00000000000..37ac007b793
--- /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&lt;String&gt;** |  | 
+**tags** | [**List&lt;Tag&gt;**](Tag.md) |  |  [optional]
+**status** | [**StatusEnum**](#StatusEnum) | pet status in the store |  [optional]
+
+
+
+## Enum: StatusEnum
+
+Name | Value
+---- | -----
+AVAILABLE | &quot;available&quot;
+PENDING | &quot;pending&quot;
+SOLD | &quot;sold&quot;
+
+
+
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 00000000000..c2aaadd88c7
--- /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)
+
+
+<a name="addPet"></a>
+# **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
+
+<a name="deletePet"></a>
+# **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
+
+<a name="findPetsByStatus"></a>
+# **findPetsByStatus**
+> List&lt;Pet&gt; 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&lt;String&gt;**](String.md)| Status values that need to be considered for filter | [default to new ArrayList&lt;&gt;()] [enum: available, pending, sold]
+
+### Return type
+
+[**List&lt;Pet&gt;**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+<a name="findPetsByTags"></a>
+# **findPetsByTags**
+> List&lt;Pet&gt; 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&lt;String&gt;**](String.md)| Tags to filter by | [default to new ArrayList&lt;&gt;()]
+
+### Return type
+
+[**List&lt;Pet&gt;**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+<a name="getPetById"></a>
+# **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
+
+<a name="updatePet"></a>
+# **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
+
+<a name="updatePetWithForm"></a>
+# **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
+
+<a name="uploadFile"></a>
+# **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
+
+<a name="uploadFileWithRequiredFile"></a>
+# **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 00000000000..a692499dc66
--- /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 00000000000..934b8f0f25d
--- /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 00000000000..2fc7a8ebbbf
--- /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
+
+
+<a name="deleteOrder"></a>
+# **deleteOrder**
+> deleteOrder(orderId)
+
+Delete purchase order by ID
+
+For valid response try integer IDs with value &lt; 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
+
+<a name="getInventory"></a>
+# **getInventory**
+> Map&lt;String, Integer&gt; 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&lt;String, Integer&gt;**
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+<a name="getOrderById"></a>
+# **getOrderById**
+> Order getOrderById(orderId)
+
+Find purchase order by ID
+
+For valid response try integer IDs with value &lt;&#x3D; 5 or &gt; 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
+
+<a name="placeOrder"></a>
+# **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 00000000000..f24eba7d222
--- /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 00000000000..a338fc900cb
--- /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&lt;Integer&gt;** |  | 
+
+
+
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 00000000000..f8858da6066
--- /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&lt;Integer&gt;** |  | 
+
+
+
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 00000000000..c4ea94b7fc1
--- /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 00000000000..5f5a5dbd362
--- /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
+
+
+<a name="createUser"></a>
+# **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
+
+<a name="createUsersWithArrayInput"></a>
+# **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&lt;User&gt;**](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
+
+<a name="createUsersWithListInput"></a>
+# **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&lt;User&gt;**](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
+
+<a name="deleteUser"></a>
+# **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
+
+<a name="getUserByName"></a>
+# **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
+
+<a name="loginUser"></a>
+# **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
+
+<a name="logoutUser"></a>
+# **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
+
+<a name="updateUser"></a>
+# **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 00000000000..6065fd1f4e5
--- /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&lt;Integer&gt;** |  |  [optional]
+**nameString** | **String** |  |  [optional]
+**nameNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**nameInteger** | **Integer** |  |  [optional]
+**nameBoolean** | **Boolean** |  |  [optional]
+**nameArray** | **List&lt;Integer&gt;** |  |  [optional]
+**nameWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixString** | **String** |  |  [optional]
+**prefixNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixInteger** | **Integer** |  |  [optional]
+**prefixBoolean** | **Boolean** |  |  [optional]
+**prefixArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceString** | **String** |  |  [optional]
+**namespaceNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**namespaceInteger** | **Integer** |  |  [optional]
+**namespaceBoolean** | **Boolean** |  |  [optional]
+**namespaceArray** | **List&lt;Integer&gt;** |  |  [optional]
+**namespaceWrappedArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsString** | **String** |  |  [optional]
+**prefixNsNumber** | [**BigDecimal**](BigDecimal.md) |  |  [optional]
+**prefixNsInteger** | **Integer** |  |  [optional]
+**prefixNsBoolean** | **Boolean** |  |  [optional]
+**prefixNsArray** | **List&lt;Integer&gt;** |  |  [optional]
+**prefixNsWrappedArray** | **List&lt;Integer&gt;** |  |  [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 00000000000..ced3be2b0c7
--- /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 00000000000..05644f0754a
--- /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 0000000000000000000000000000000000000000..cc4fdc293d0e50b0ad9b65c16e7ddd1db2f6025b
GIT binary patch
literal 58702
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
D613UA

literal 0
HcmV?d00001

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 00000000000..94920145f34
--- /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 00000000000..2fe81a7d95e
--- /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 00000000000..9618d8d9607
--- /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 00000000000..3666b630e03
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/pom.xml
@@ -0,0 +1,287 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.openapitools</groupId>
+    <artifactId>petstore-rest-assured-jackson</artifactId>
+    <packaging>jar</packaging>
+    <name>petstore-rest-assured-jackson</name>
+    <version>1.0.0</version>
+    <url>https://github.com/openapitools/openapi-generator</url>
+    <description>OpenAPI Java</description>
+    <scm>
+        <connection>scm:git:git@github.com:openapitools/openapi-generator.git</connection>
+        <developerConnection>scm:git:git@github.com:openapitools/openapi-generator.git</developerConnection>
+        <url>https://github.com/openapitools/openapi-generator</url>
+    </scm>
+
+    <licenses>
+        <license>
+            <name>Unlicense</name>
+            <url>https://www.apache.org/licenses/LICENSE-2.0.html</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+
+    <developers>
+        <developer>
+            <name>OpenAPI-Generator Contributors</name>
+            <email>team@openapitools.org</email>
+            <organization>OpenAPITools.org</organization>
+            <organizationUrl>http://openapitools.org</organizationUrl>
+        </developer>
+    </developers>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <version>3.0.0-M3</version>
+                <executions>
+                    <execution>
+                        <id>enforce-maven</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <version>3.0.5</version>
+                                </requireMavenVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.22.2</version>
+                <configuration>
+                    <systemProperties>
+                        <property>
+                            <name>loggerPath</name>
+                            <value>conf/log4j.properties</value>
+                        </property>
+                    </systemProperties>
+                    <reuseForks>false</reuseForks>
+                    <forkCount>1C</forkCount>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- attach test jar -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.2</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jar</goal>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>3.1.0</version>
+                <executions>
+                    <execution>
+                        <id>add_sources</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>src/main/java</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>add_test_sources</id>
+                        <phase>generate-test-sources</phase>
+                        <goals>
+                            <goal>add-test-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>src/test/java</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>3.2.0</version>
+                <configuration>
+                    <doclint>none</doclint>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>attach-javadocs</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>3.2.0</version>
+                <executions>
+                    <execution>
+                        <id>attach-sources</id>
+                        <goals>
+                            <goal>jar-no-fork</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>sign-artifacts</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-gpg-plugin</artifactId>
+                        <version>1.6</version>
+                        <executions>
+                            <execution>
+                                <id>sign-artifacts</id>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>sign</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.fasterxml.jackson</groupId>
+                <artifactId>jackson-bom</artifactId>
+                <version>${jackson-version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>${swagger-annotations-version}</version>
+        </dependency>
+        <!-- @Nullable annotation -->
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <version>3.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <version>${rest-assured.version}</version>
+        </dependency>
+        <!-- JSON processing: jackson -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.openapitools</groupId>
+            <artifactId>jackson-databind-nullable</artifactId>
+            <version>${jackson-databind-nullable-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-jsr310</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.squareup.okio</groupId>
+            <artifactId>okio</artifactId>
+            <version>${okio-version}</version>
+        </dependency>
+        <!-- Bean Validation API support -->
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>2.0.1.Final</version>
+            <scope>provided</scope>
+        </dependency>
+        <!-- Bean Validation Impl. used to perform BeanValidation -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.0.19.Final</version>
+        </dependency>
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit-version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <swagger-annotations-version>1.5.21</swagger-annotations-version>
+        <rest-assured.version>4.3.0</rest-assured.version>
+        <gson-version>2.8.6</gson-version>
+        <gson-fire-version>1.8.4</gson-fire-version>
+        <jackson-version>2.10.3</jackson-version>
+        <jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
+        <okio-version>1.17.5</okio-version>
+        <junit-version>4.13</junit-version>
+    </properties>
+</project>
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 00000000000..646eb0c11ed
--- /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 00000000000..54fbcb3da1e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+<manifest package="org.openapitools.client" xmlns:android="http://schemas.android.com/apk/res/android">
+    <application />
+</manifest>
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 00000000000..2af3090b72d
--- /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<RequestSpecBuilder> 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<RequestSpecBuilder> 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 00000000000..28b41ac559e
--- /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<ConstraintViolation<Object>> violations;
+
+    public BeanValidationException(Set<ConstraintViolation<Object>> violations) {
+        this.violations = violations;
+    }
+
+    public Set<ConstraintViolation<Object>> getViolations() {
+        return violations;
+    }
+
+    public void setViolations(Set<ConstraintViolation<Object>> 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 00000000000..f6ea587ad2e
--- /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 00000000000..9509fd08981
--- /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 00000000000..412baa1bfaa
--- /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<Response, Response> validatedWith(ResponseSpecification respSpec) {
+        return response -> response.then().spec(respSpec).extract().response();
+    }
+
+    public static Function<Response, Response> 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 00000000000..a1107a8690e
--- /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<String, ServerVariable> 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<String, ServerVariable> 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<String, String> variables) {
+        String url = this.URL;
+
+        // go through variables and replace placeholders
+        for (Map.Entry<String, ServerVariable> 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 00000000000..c2f13e21666
--- /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<String> 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<String> 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 00000000000..90773790231
--- /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<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private AnotherFakeApi(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static AnotherFakeApi anotherFake(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new AnotherFakeApi(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> 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<RequestSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<Client> type = new TypeRef<Client>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public Call123testSpecialTagsOper respSpec(Consumer<ResponseSpecBuilder> 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 00000000000..2eaac5a4f4e
--- /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<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private FakeApi(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static FakeApi fake(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new FakeApi(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> 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<RequestSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public CreateXmlItemOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<Boolean> type = new TypeRef<Boolean>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FakeOuterBooleanSerializeOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<OuterComposite> type = new TypeRef<OuterComposite>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FakeOuterCompositeSerializeOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<BigDecimal> type = new TypeRef<BigDecimal>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FakeOuterNumberSerializeOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<String> type = new TypeRef<String>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FakeOuterStringSerializeOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * 
+     * For this test, the body for this request much reference a schema named &#x60;File&#x60;.
+     *
+     * @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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestBodyWithFileSchemaOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestBodyWithQueryParamsOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * To test \&quot;client\&quot; model
+     * To test \&quot;client\&quot; 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<Client> type = new TypeRef<Client>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestClientModelOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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 &lt;content-type&gt; is &lt;application/octet-stream&gt;
+         * @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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestEndpointParametersOper respSpec(Consumer<ResponseSpecBuilder> 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&lt;&gt;())
+     * @see #enumHeaderStringHeader Header parameter enum test (string) (optional, default to -efg)
+     * @see #enumQueryStringArrayQuery Query parameter enum test (string array) (optional, default to new ArrayList&lt;&gt;())
+     * @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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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&lt;String&gt;) Header parameter enum test (string array) (optional, default to new ArrayList&lt;&gt;())
+         * @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&lt;String&gt;) Query parameter enum test (string array) (optional, default to new ArrayList&lt;&gt;())
+         * @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&lt;String&gt;) 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestEnumParametersOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestGroupParametersOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param param (Map&lt;String, String&gt;) request body (required)
+         * @return operation
+         */
+        public TestInlineAdditionalPropertiesOper body(Map<String, String> param) {
+            reqSpec.setBody(param);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public TestInlineAdditionalPropertiesOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestInlineAdditionalPropertiesOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestJsonFormDataOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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&lt;String&gt;)  (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&lt;String&gt;)  (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&lt;String&gt;)  (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&lt;String&gt;)  (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&lt;String&gt;)  (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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestQueryParameterCollectionFormatOper respSpec(Consumer<ResponseSpecBuilder> 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 00000000000..34cb3f7ab59
--- /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<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private FakeClassnameTags123Api(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static FakeClassnameTags123Api fakeClassnameTags123(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new FakeClassnameTags123Api(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> 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<RequestSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<Client> type = new TypeRef<Client>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public TestClassnameOper respSpec(Consumer<ResponseSpecBuilder> 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 00000000000..d9a11e71466
--- /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> T execute(Function<Response, T> 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 00000000000..b6508c0b98e
--- /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<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private PetApi(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static PetApi pet(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new PetApi(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> 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<RequestSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public AddPetOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public DeletePetOper respSpec(Consumer<ResponseSpecBuilder> 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&lt;Pet&gt;
+     */
+    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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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&lt;Pet&gt;
+         */
+        public List<Pet> executeAs(Function<Response, Response> handler) {
+            TypeRef<List<Pet>> type = new TypeRef<List<Pet>>(){};
+            return execute(handler).as(type);
+        }
+
+        public static final String STATUS_QUERY = "status";
+
+        /**
+         * @param status (List&lt;String&gt;) 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FindPetsByStatusOper respSpec(Consumer<ResponseSpecBuilder> 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&lt;Pet&gt;
+     * @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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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&lt;Pet&gt;
+         */
+        public List<Pet> executeAs(Function<Response, Response> handler) {
+            TypeRef<List<Pet>> type = new TypeRef<List<Pet>>(){};
+            return execute(handler).as(type);
+        }
+
+        public static final String TAGS_QUERY = "tags";
+
+        /**
+         * @param tags (List&lt;String&gt;) 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public FindPetsByTagsOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<Pet> type = new TypeRef<Pet>(){};
+            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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public GetPetByIdOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public UpdatePetOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public UpdatePetWithFormOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<ModelApiResponse> type = new TypeRef<ModelApiResponse>(){};
+            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 &lt;content-type&gt; is &lt;application/octet-stream&gt;
+         * @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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public UploadFileOper respSpec(Consumer<ResponseSpecBuilder> 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<Response, Response> handler) {
+            TypeRef<ModelApiResponse> type = new TypeRef<ModelApiResponse>(){};
+            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 &lt;content-type&gt; is &lt;application/octet-stream&gt;
+         * @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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public UploadFileWithRequiredFileOper respSpec(Consumer<ResponseSpecBuilder> 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 00000000000..9a2875c303f
--- /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<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private StoreApi(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static StoreApi store(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new StoreApi(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> 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<RequestSpecBuilder> reqSpecCustomizer) {
+        this.reqSpecCustomizer = reqSpecCustomizer;
+        return this;
+    }
+
+    /**
+     * Delete purchase order by ID
+     * For valid response try integer IDs with value &lt; 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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public DeleteOrderOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Returns pet inventories by status
+     * Returns a map of status codes to quantities
+     *
+     * return Map&lt;String, Integer&gt;
+     */
+    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 <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> 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&lt;String, Integer&gt;
+         */
+        public Map<String, Integer> executeAs(Function<Response, Response> handler) {
+            TypeRef<Map<String, Integer>> type = new TypeRef<Map<String, Integer>>(){};
+            return execute(handler).as(type);
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public GetInventoryOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public GetInventoryOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Find purchase order by ID
+     * For valid response try integer IDs with value &lt;&#x3D; 5 or &gt; 10. Other values will generated exceptions
+     *
+     * @see #orderIdPath ID of pet that needs to be fetched (required)
+     * return Order
+     */
+    public static class GetOrderByIdOper implements Oper {
+
+        public static final Method REQ_METHOD = GET;
+        public static final String REQ_URI = "/store/order/{order_id}";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public GetOrderByIdOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * GET /store/order/{order_id}
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        /**
+         * GET /store/order/{order_id}
+         * @param handler handler
+         * @return Order
+         */
+        public Order executeAs(Function<Response, Response> handler) {
+            TypeRef<Order> type = new TypeRef<Order>(){};
+            return execute(handler).as(type);
+        }
+
+        public static final String ORDER_ID_PATH = "order_id";
+
+        /**
+         * @param orderId (Long) ID of pet that needs to be fetched (required)
+         * @return operation
+         */
+        public GetOrderByIdOper orderIdPath(Object orderId) {
+            reqSpec.addPathParam(ORDER_ID_PATH, orderId);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public GetOrderByIdOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public GetOrderByIdOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Place an order for a pet
+     * 
+     *
+     * @see #body order placed for purchasing the pet (required)
+     * return Order
+     */
+    public static class PlaceOrderOper implements Oper {
+
+        public static final Method REQ_METHOD = POST;
+        public static final String REQ_URI = "/store/order";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public PlaceOrderOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("*/*");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * POST /store/order
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        /**
+         * POST /store/order
+         * @param handler handler
+         * @return Order
+         */
+        public Order executeAs(Function<Response, Response> handler) {
+            TypeRef<Order> type = new TypeRef<Order>(){};
+            return execute(handler).as(type);
+        }
+
+         /**
+         * @param body (Order) order placed for purchasing the pet (required)
+         * @return operation
+         */
+        public PlaceOrderOper body(Order body) {
+            reqSpec.setBody(body);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public PlaceOrderOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public PlaceOrderOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/UserApi.java
new file mode 100644
index 00000000000..4caf52a8d5f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/api/UserApi.java
@@ -0,0 +1,693 @@
+/*
+ * 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.User;
+
+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 = "User")
+public class UserApi {
+
+    private Supplier<RequestSpecBuilder> reqSpecSupplier;
+    private Consumer<RequestSpecBuilder> reqSpecCustomizer;
+
+    private UserApi(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        this.reqSpecSupplier = reqSpecSupplier;
+    }
+
+    public static UserApi user(Supplier<RequestSpecBuilder> reqSpecSupplier) {
+        return new UserApi(reqSpecSupplier);
+    }
+
+    private RequestSpecBuilder createReqSpec() {
+        RequestSpecBuilder reqSpec = reqSpecSupplier.get();
+        if(reqSpecCustomizer != null) {
+            reqSpecCustomizer.accept(reqSpec);
+        }
+        return reqSpec;
+    }
+
+    public List<Oper> getAllOperations() {
+        return Arrays.asList(
+                createUser(),
+                createUsersWithArrayInput(),
+                createUsersWithListInput(),
+                deleteUser(),
+                getUserByName(),
+                loginUser(),
+                logoutUser(),
+                updateUser()
+        );
+    }
+
+    @ApiOperation(value = "Create user",
+            notes = "This can only be done by the logged in user.",
+            nickname = "createUser",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 0, message = "successful operation")  })
+    public CreateUserOper createUser() {
+        return new CreateUserOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Creates list of users with given input array",
+            notes = "",
+            nickname = "createUsersWithArrayInput",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 0, message = "successful operation")  })
+    public CreateUsersWithArrayInputOper createUsersWithArrayInput() {
+        return new CreateUsersWithArrayInputOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Creates list of users with given input array",
+            notes = "",
+            nickname = "createUsersWithListInput",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 0, message = "successful operation")  })
+    public CreateUsersWithListInputOper createUsersWithListInput() {
+        return new CreateUsersWithListInputOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Delete user",
+            notes = "This can only be done by the logged in user.",
+            nickname = "deleteUser",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 400, message = "Invalid username supplied") ,
+            @ApiResponse(code = 404, message = "User not found")  })
+    public DeleteUserOper deleteUser() {
+        return new DeleteUserOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Get user by user name",
+            notes = "",
+            nickname = "getUserByName",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 200, message = "successful operation") ,
+            @ApiResponse(code = 400, message = "Invalid username supplied") ,
+            @ApiResponse(code = 404, message = "User not found")  })
+    public GetUserByNameOper getUserByName() {
+        return new GetUserByNameOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Logs user into the system",
+            notes = "",
+            nickname = "loginUser",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 200, message = "successful operation") ,
+            @ApiResponse(code = 400, message = "Invalid username/password supplied")  })
+    public LoginUserOper loginUser() {
+        return new LoginUserOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Logs out current logged in user session",
+            notes = "",
+            nickname = "logoutUser",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 0, message = "successful operation")  })
+    public LogoutUserOper logoutUser() {
+        return new LogoutUserOper(createReqSpec());
+    }
+
+    @ApiOperation(value = "Updated user",
+            notes = "This can only be done by the logged in user.",
+            nickname = "updateUser",
+            tags = { "user" })
+    @ApiResponses(value = { 
+            @ApiResponse(code = 400, message = "Invalid user supplied") ,
+            @ApiResponse(code = 404, message = "User not found")  })
+    public UpdateUserOper updateUser() {
+        return new UpdateUserOper(createReqSpec());
+    }
+
+    /**
+     * Customize request specification
+     * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+     * @return api
+     */
+    public UserApi reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+        this.reqSpecCustomizer = reqSpecCustomizer;
+        return this;
+    }
+
+    /**
+     * Create user
+     * This can only be done by the logged in user.
+     *
+     * @see #body Created user object (required)
+     */
+    public static class CreateUserOper implements Oper {
+
+        public static final Method REQ_METHOD = POST;
+        public static final String REQ_URI = "/user";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public CreateUserOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("*/*");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * POST /user
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param body (User) Created user object (required)
+         * @return operation
+         */
+        public CreateUserOper body(User body) {
+            reqSpec.setBody(body);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public CreateUserOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public CreateUserOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Creates list of users with given input array
+     * 
+     *
+     * @see #body List of user object (required)
+     */
+    public static class CreateUsersWithArrayInputOper implements Oper {
+
+        public static final Method REQ_METHOD = POST;
+        public static final String REQ_URI = "/user/createWithArray";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public CreateUsersWithArrayInputOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("*/*");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * POST /user/createWithArray
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param body (List&lt;User&gt;) List of user object (required)
+         * @return operation
+         */
+        public CreateUsersWithArrayInputOper body(List<User> body) {
+            reqSpec.setBody(body);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public CreateUsersWithArrayInputOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public CreateUsersWithArrayInputOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Creates list of users with given input array
+     * 
+     *
+     * @see #body List of user object (required)
+     */
+    public static class CreateUsersWithListInputOper implements Oper {
+
+        public static final Method REQ_METHOD = POST;
+        public static final String REQ_URI = "/user/createWithList";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public CreateUsersWithListInputOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("*/*");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * POST /user/createWithList
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param body (List&lt;User&gt;) List of user object (required)
+         * @return operation
+         */
+        public CreateUsersWithListInputOper body(List<User> body) {
+            reqSpec.setBody(body);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public CreateUsersWithListInputOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public CreateUsersWithListInputOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Delete user
+     * This can only be done by the logged in user.
+     *
+     * @see #usernamePath The name that needs to be deleted (required)
+     */
+    public static class DeleteUserOper implements Oper {
+
+        public static final Method REQ_METHOD = DELETE;
+        public static final String REQ_URI = "/user/{username}";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public DeleteUserOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * DELETE /user/{username}
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        public static final String USERNAME_PATH = "username";
+
+        /**
+         * @param username (String) The name that needs to be deleted (required)
+         * @return operation
+         */
+        public DeleteUserOper usernamePath(Object username) {
+            reqSpec.addPathParam(USERNAME_PATH, username);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public DeleteUserOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public DeleteUserOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Get user by user name
+     * 
+     *
+     * @see #usernamePath The name that needs to be fetched. Use user1 for testing. (required)
+     * return User
+     */
+    public static class GetUserByNameOper implements Oper {
+
+        public static final Method REQ_METHOD = GET;
+        public static final String REQ_URI = "/user/{username}";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public GetUserByNameOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * GET /user/{username}
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        /**
+         * GET /user/{username}
+         * @param handler handler
+         * @return User
+         */
+        public User executeAs(Function<Response, Response> handler) {
+            TypeRef<User> type = new TypeRef<User>(){};
+            return execute(handler).as(type);
+        }
+
+        public static final String USERNAME_PATH = "username";
+
+        /**
+         * @param username (String) The name that needs to be fetched. Use user1 for testing. (required)
+         * @return operation
+         */
+        public GetUserByNameOper usernamePath(Object username) {
+            reqSpec.addPathParam(USERNAME_PATH, username);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public GetUserByNameOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public GetUserByNameOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Logs user into the system
+     * 
+     *
+     * @see #usernameQuery The user name for login (required)
+     * @see #passwordQuery The password for login in clear text (required)
+     * return String
+     */
+    public static class LoginUserOper implements Oper {
+
+        public static final Method REQ_METHOD = GET;
+        public static final String REQ_URI = "/user/login";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public LoginUserOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * GET /user/login
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        /**
+         * GET /user/login
+         * @param handler handler
+         * @return String
+         */
+        public String executeAs(Function<Response, Response> handler) {
+            TypeRef<String> type = new TypeRef<String>(){};
+            return execute(handler).as(type);
+        }
+
+        public static final String USERNAME_QUERY = "username";
+
+        /**
+         * @param username (String) The user name for login (required)
+         * @return operation
+         */
+        public LoginUserOper usernameQuery(Object... username) {
+            reqSpec.addQueryParam(USERNAME_QUERY, username);
+            return this;
+        }
+
+        public static final String PASSWORD_QUERY = "password";
+
+        /**
+         * @param password (String) The password for login in clear text (required)
+         * @return operation
+         */
+        public LoginUserOper passwordQuery(Object... password) {
+            reqSpec.addQueryParam(PASSWORD_QUERY, password);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public LoginUserOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public LoginUserOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Logs out current logged in user session
+     * 
+     *
+     */
+    public static class LogoutUserOper implements Oper {
+
+        public static final Method REQ_METHOD = GET;
+        public static final String REQ_URI = "/user/logout";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public LogoutUserOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * GET /user/logout
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public LogoutUserOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public LogoutUserOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+    /**
+     * Updated user
+     * This can only be done by the logged in user.
+     *
+     * @see #usernamePath name that need to be deleted (required)
+     * @see #body Updated user object (required)
+     */
+    public static class UpdateUserOper implements Oper {
+
+        public static final Method REQ_METHOD = PUT;
+        public static final String REQ_URI = "/user/{username}";
+
+        private RequestSpecBuilder reqSpec;
+        private ResponseSpecBuilder respSpec;
+
+        public UpdateUserOper(RequestSpecBuilder reqSpec) {
+            this.reqSpec = reqSpec;
+            reqSpec.setContentType("*/*");
+            reqSpec.setAccept("application/json");
+            this.respSpec = new ResponseSpecBuilder();
+        }
+
+        /**
+         * PUT /user/{username}
+         * @param handler handler
+         * @param <T> type
+         * @return type
+         */
+        @Override
+        public <T> T execute(Function<Response, T> handler) {
+            return handler.apply(RestAssured.given().spec(reqSpec.build()).expect().spec(respSpec.build()).when().request(REQ_METHOD, REQ_URI));
+        }
+
+         /**
+         * @param body (User) Updated user object (required)
+         * @return operation
+         */
+        public UpdateUserOper body(User body) {
+            reqSpec.setBody(body);
+            return this;
+        }
+
+        public static final String USERNAME_PATH = "username";
+
+        /**
+         * @param username (String) name that need to be deleted (required)
+         * @return operation
+         */
+        public UpdateUserOper usernamePath(Object username) {
+            reqSpec.addPathParam(USERNAME_PATH, username);
+            return this;
+        }
+
+        /**
+         * Customize request specification
+         * @param reqSpecCustomizer consumer to modify the RequestSpecBuilder
+         * @return operation
+         */
+        public UpdateUserOper reqSpec(Consumer<RequestSpecBuilder> reqSpecCustomizer) {
+            reqSpecCustomizer.accept(reqSpec);
+            return this;
+        }
+
+        /**
+         * Customize response specification
+         * @param respSpecCustomizer consumer to modify the ResponseSpecBuilder
+         * @return operation
+         */
+        public UpdateUserOper respSpec(Consumer<ResponseSpecBuilder> respSpecCustomizer) {
+            respSpecCustomizer.accept(respSpec);
+            return this;
+        }
+    }
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
new file mode 100644
index 00000000000..b91c7f4883b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesAnyType
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesAnyType.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesAnyType name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesAnyType additionalPropertiesAnyType = (AdditionalPropertiesAnyType) o;
+    return Objects.equals(this.name, additionalPropertiesAnyType.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesAnyType {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
new file mode 100644
index 00000000000..ad5c7d888d6
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
@@ -0,0 +1,110 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesArray
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesArray.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesArray extends HashMap<String, List> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesArray name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesArray additionalPropertiesArray = (AdditionalPropertiesArray) o;
+    return Objects.equals(this.name, additionalPropertiesArray.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesArray {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
new file mode 100644
index 00000000000..9c451e212ef
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesBoolean
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesBoolean.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesBoolean name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesBoolean additionalPropertiesBoolean = (AdditionalPropertiesBoolean) o;
+    return Objects.equals(this.name, additionalPropertiesBoolean.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesBoolean {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
new file mode 100644
index 00000000000..3129d81e520
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -0,0 +1,491 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesClass
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_STRING,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_NUMBER,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_INTEGER,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_BOOLEAN,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_ARRAY_INTEGER,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_ARRAY_ANYTYPE,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_MAP_STRING,
+  AdditionalPropertiesClass.JSON_PROPERTY_MAP_MAP_ANYTYPE,
+  AdditionalPropertiesClass.JSON_PROPERTY_ANYTYPE1,
+  AdditionalPropertiesClass.JSON_PROPERTY_ANYTYPE2,
+  AdditionalPropertiesClass.JSON_PROPERTY_ANYTYPE3
+})
+
+public class AdditionalPropertiesClass {
+  public static final String JSON_PROPERTY_MAP_STRING = "map_string";
+  private Map<String, String> mapString = null;
+
+  public static final String JSON_PROPERTY_MAP_NUMBER = "map_number";
+  private Map<String, BigDecimal> mapNumber = null;
+
+  public static final String JSON_PROPERTY_MAP_INTEGER = "map_integer";
+  private Map<String, Integer> mapInteger = null;
+
+  public static final String JSON_PROPERTY_MAP_BOOLEAN = "map_boolean";
+  private Map<String, Boolean> mapBoolean = null;
+
+  public static final String JSON_PROPERTY_MAP_ARRAY_INTEGER = "map_array_integer";
+  private Map<String, List<Integer>> mapArrayInteger = null;
+
+  public static final String JSON_PROPERTY_MAP_ARRAY_ANYTYPE = "map_array_anytype";
+  private Map<String, List<Object>> mapArrayAnytype = null;
+
+  public static final String JSON_PROPERTY_MAP_MAP_STRING = "map_map_string";
+  private Map<String, Map<String, String>> mapMapString = null;
+
+  public static final String JSON_PROPERTY_MAP_MAP_ANYTYPE = "map_map_anytype";
+  private Map<String, Map<String, Object>> mapMapAnytype = null;
+
+  public static final String JSON_PROPERTY_ANYTYPE1 = "anytype_1";
+  private Object anytype1;
+
+  public static final String JSON_PROPERTY_ANYTYPE2 = "anytype_2";
+  private Object anytype2;
+
+  public static final String JSON_PROPERTY_ANYTYPE3 = "anytype_3";
+  private Object anytype3;
+
+
+  public AdditionalPropertiesClass mapString(Map<String, String> mapString) {
+    
+    this.mapString = mapString;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapStringItem(String key, String mapStringItem) {
+    if (this.mapString == null) {
+      this.mapString = new HashMap<>();
+    }
+    this.mapString.put(key, mapStringItem);
+    return this;
+  }
+
+   /**
+   * Get mapString
+   * @return mapString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, String> getMapString() {
+    return mapString;
+  }
+
+
+  public void setMapString(Map<String, String> mapString) {
+    this.mapString = mapString;
+  }
+
+
+  public AdditionalPropertiesClass mapNumber(Map<String, BigDecimal> mapNumber) {
+    
+    this.mapNumber = mapNumber;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapNumberItem(String key, BigDecimal mapNumberItem) {
+    if (this.mapNumber == null) {
+      this.mapNumber = new HashMap<>();
+    }
+    this.mapNumber.put(key, mapNumberItem);
+    return this;
+  }
+
+   /**
+   * Get mapNumber
+   * @return mapNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, BigDecimal> getMapNumber() {
+    return mapNumber;
+  }
+
+
+  public void setMapNumber(Map<String, BigDecimal> mapNumber) {
+    this.mapNumber = mapNumber;
+  }
+
+
+  public AdditionalPropertiesClass mapInteger(Map<String, Integer> mapInteger) {
+    
+    this.mapInteger = mapInteger;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapIntegerItem(String key, Integer mapIntegerItem) {
+    if (this.mapInteger == null) {
+      this.mapInteger = new HashMap<>();
+    }
+    this.mapInteger.put(key, mapIntegerItem);
+    return this;
+  }
+
+   /**
+   * Get mapInteger
+   * @return mapInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Integer> getMapInteger() {
+    return mapInteger;
+  }
+
+
+  public void setMapInteger(Map<String, Integer> mapInteger) {
+    this.mapInteger = mapInteger;
+  }
+
+
+  public AdditionalPropertiesClass mapBoolean(Map<String, Boolean> mapBoolean) {
+    
+    this.mapBoolean = mapBoolean;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapBooleanItem(String key, Boolean mapBooleanItem) {
+    if (this.mapBoolean == null) {
+      this.mapBoolean = new HashMap<>();
+    }
+    this.mapBoolean.put(key, mapBooleanItem);
+    return this;
+  }
+
+   /**
+   * Get mapBoolean
+   * @return mapBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Boolean> getMapBoolean() {
+    return mapBoolean;
+  }
+
+
+  public void setMapBoolean(Map<String, Boolean> mapBoolean) {
+    this.mapBoolean = mapBoolean;
+  }
+
+
+  public AdditionalPropertiesClass mapArrayInteger(Map<String, List<Integer>> mapArrayInteger) {
+    
+    this.mapArrayInteger = mapArrayInteger;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapArrayIntegerItem(String key, List<Integer> mapArrayIntegerItem) {
+    if (this.mapArrayInteger == null) {
+      this.mapArrayInteger = new HashMap<>();
+    }
+    this.mapArrayInteger.put(key, mapArrayIntegerItem);
+    return this;
+  }
+
+   /**
+   * Get mapArrayInteger
+   * @return mapArrayInteger
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_ARRAY_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, List<Integer>> getMapArrayInteger() {
+    return mapArrayInteger;
+  }
+
+
+  public void setMapArrayInteger(Map<String, List<Integer>> mapArrayInteger) {
+    this.mapArrayInteger = mapArrayInteger;
+  }
+
+
+  public AdditionalPropertiesClass mapArrayAnytype(Map<String, List<Object>> mapArrayAnytype) {
+    
+    this.mapArrayAnytype = mapArrayAnytype;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapArrayAnytypeItem(String key, List<Object> mapArrayAnytypeItem) {
+    if (this.mapArrayAnytype == null) {
+      this.mapArrayAnytype = new HashMap<>();
+    }
+    this.mapArrayAnytype.put(key, mapArrayAnytypeItem);
+    return this;
+  }
+
+   /**
+   * Get mapArrayAnytype
+   * @return mapArrayAnytype
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_ARRAY_ANYTYPE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, List<Object>> getMapArrayAnytype() {
+    return mapArrayAnytype;
+  }
+
+
+  public void setMapArrayAnytype(Map<String, List<Object>> mapArrayAnytype) {
+    this.mapArrayAnytype = mapArrayAnytype;
+  }
+
+
+  public AdditionalPropertiesClass mapMapString(Map<String, Map<String, String>> mapMapString) {
+    
+    this.mapMapString = mapMapString;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapMapStringItem(String key, Map<String, String> mapMapStringItem) {
+    if (this.mapMapString == null) {
+      this.mapMapString = new HashMap<>();
+    }
+    this.mapMapString.put(key, mapMapStringItem);
+    return this;
+  }
+
+   /**
+   * Get mapMapString
+   * @return mapMapString
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_MAP_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Map<String, String>> getMapMapString() {
+    return mapMapString;
+  }
+
+
+  public void setMapMapString(Map<String, Map<String, String>> mapMapString) {
+    this.mapMapString = mapMapString;
+  }
+
+
+  public AdditionalPropertiesClass mapMapAnytype(Map<String, Map<String, Object>> mapMapAnytype) {
+    
+    this.mapMapAnytype = mapMapAnytype;
+    return this;
+  }
+
+  public AdditionalPropertiesClass putMapMapAnytypeItem(String key, Map<String, Object> mapMapAnytypeItem) {
+    if (this.mapMapAnytype == null) {
+      this.mapMapAnytype = new HashMap<>();
+    }
+    this.mapMapAnytype.put(key, mapMapAnytypeItem);
+    return this;
+  }
+
+   /**
+   * Get mapMapAnytype
+   * @return mapMapAnytype
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_MAP_ANYTYPE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Map<String, Object>> getMapMapAnytype() {
+    return mapMapAnytype;
+  }
+
+
+  public void setMapMapAnytype(Map<String, Map<String, Object>> mapMapAnytype) {
+    this.mapMapAnytype = mapMapAnytype;
+  }
+
+
+  public AdditionalPropertiesClass anytype1(Object anytype1) {
+    
+    this.anytype1 = anytype1;
+    return this;
+  }
+
+   /**
+   * Get anytype1
+   * @return anytype1
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ANYTYPE1)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Object getAnytype1() {
+    return anytype1;
+  }
+
+
+  public void setAnytype1(Object anytype1) {
+    this.anytype1 = anytype1;
+  }
+
+
+  public AdditionalPropertiesClass anytype2(Object anytype2) {
+    
+    this.anytype2 = anytype2;
+    return this;
+  }
+
+   /**
+   * Get anytype2
+   * @return anytype2
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ANYTYPE2)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Object getAnytype2() {
+    return anytype2;
+  }
+
+
+  public void setAnytype2(Object anytype2) {
+    this.anytype2 = anytype2;
+  }
+
+
+  public AdditionalPropertiesClass anytype3(Object anytype3) {
+    
+    this.anytype3 = anytype3;
+    return this;
+  }
+
+   /**
+   * Get anytype3
+   * @return anytype3
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ANYTYPE3)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Object getAnytype3() {
+    return anytype3;
+  }
+
+
+  public void setAnytype3(Object anytype3) {
+    this.anytype3 = anytype3;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesClass additionalPropertiesClass = (AdditionalPropertiesClass) o;
+    return Objects.equals(this.mapString, additionalPropertiesClass.mapString) &&
+        Objects.equals(this.mapNumber, additionalPropertiesClass.mapNumber) &&
+        Objects.equals(this.mapInteger, additionalPropertiesClass.mapInteger) &&
+        Objects.equals(this.mapBoolean, additionalPropertiesClass.mapBoolean) &&
+        Objects.equals(this.mapArrayInteger, additionalPropertiesClass.mapArrayInteger) &&
+        Objects.equals(this.mapArrayAnytype, additionalPropertiesClass.mapArrayAnytype) &&
+        Objects.equals(this.mapMapString, additionalPropertiesClass.mapMapString) &&
+        Objects.equals(this.mapMapAnytype, additionalPropertiesClass.mapMapAnytype) &&
+        Objects.equals(this.anytype1, additionalPropertiesClass.anytype1) &&
+        Objects.equals(this.anytype2, additionalPropertiesClass.anytype2) &&
+        Objects.equals(this.anytype3, additionalPropertiesClass.anytype3);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(mapString, mapNumber, mapInteger, mapBoolean, mapArrayInteger, mapArrayAnytype, mapMapString, mapMapAnytype, anytype1, anytype2, anytype3);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesClass {\n");
+    sb.append("    mapString: ").append(toIndentedString(mapString)).append("\n");
+    sb.append("    mapNumber: ").append(toIndentedString(mapNumber)).append("\n");
+    sb.append("    mapInteger: ").append(toIndentedString(mapInteger)).append("\n");
+    sb.append("    mapBoolean: ").append(toIndentedString(mapBoolean)).append("\n");
+    sb.append("    mapArrayInteger: ").append(toIndentedString(mapArrayInteger)).append("\n");
+    sb.append("    mapArrayAnytype: ").append(toIndentedString(mapArrayAnytype)).append("\n");
+    sb.append("    mapMapString: ").append(toIndentedString(mapMapString)).append("\n");
+    sb.append("    mapMapAnytype: ").append(toIndentedString(mapMapAnytype)).append("\n");
+    sb.append("    anytype1: ").append(toIndentedString(anytype1)).append("\n");
+    sb.append("    anytype2: ").append(toIndentedString(anytype2)).append("\n");
+    sb.append("    anytype3: ").append(toIndentedString(anytype3)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java
new file mode 100644
index 00000000000..5eb0c6ca44e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesInteger
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesInteger.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesInteger name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesInteger additionalPropertiesInteger = (AdditionalPropertiesInteger) o;
+    return Objects.equals(this.name, additionalPropertiesInteger.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesInteger {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java
new file mode 100644
index 00000000000..7718b35dd3c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java
@@ -0,0 +1,110 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesNumber
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesNumber.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesNumber name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesNumber additionalPropertiesNumber = (AdditionalPropertiesNumber) o;
+    return Objects.equals(this.name, additionalPropertiesNumber.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesNumber {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java
new file mode 100644
index 00000000000..1e084af4679
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesObject
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesObject.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesObject extends HashMap<String, Map> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesObject name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesObject additionalPropertiesObject = (AdditionalPropertiesObject) o;
+    return Objects.equals(this.name, additionalPropertiesObject.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesObject {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java
new file mode 100644
index 00000000000..0b6ba05845b
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * AdditionalPropertiesString
+ */
+@JsonPropertyOrder({
+  AdditionalPropertiesString.JSON_PROPERTY_NAME
+})
+
+public class AdditionalPropertiesString extends HashMap<String, String> {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public AdditionalPropertiesString name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    AdditionalPropertiesString additionalPropertiesString = (AdditionalPropertiesString) o;
+    return Objects.equals(this.name, additionalPropertiesString.name) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class AdditionalPropertiesString {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Animal.java
new file mode 100644
index 00000000000..57dad620ef0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Animal.java
@@ -0,0 +1,145 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Animal
+ */
+@JsonPropertyOrder({
+  Animal.JSON_PROPERTY_CLASS_NAME,
+  Animal.JSON_PROPERTY_COLOR
+})
+
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "className", visible = true)
+@JsonSubTypes({
+  @JsonSubTypes.Type(value = Dog.class, name = "Dog"),
+  @JsonSubTypes.Type(value = Cat.class, name = "Cat"),
+  @JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
+})
+
+public class Animal {
+  public static final String JSON_PROPERTY_CLASS_NAME = "className";
+  private String className;
+
+  public static final String JSON_PROPERTY_COLOR = "color";
+  private String color = "red";
+
+
+  public Animal className(String className) {
+    
+    this.className = className;
+    return this;
+  }
+
+   /**
+   * Get className
+   * @return className
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_CLASS_NAME)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getClassName() {
+    return className;
+  }
+
+
+  public void setClassName(String className) {
+    this.className = className;
+  }
+
+
+  public Animal color(String color) {
+    
+    this.color = color;
+    return this;
+  }
+
+   /**
+   * Get color
+   * @return color
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_COLOR)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getColor() {
+    return color;
+  }
+
+
+  public void setColor(String color) {
+    this.color = color;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Animal animal = (Animal) o;
+    return Objects.equals(this.className, animal.className) &&
+        Objects.equals(this.color, animal.color);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(className, color);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Animal {\n");
+    sb.append("    className: ").append(toIndentedString(className)).append("\n");
+    sb.append("    color: ").append(toIndentedString(color)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java
new file mode 100644
index 00000000000..96271e5a2fc
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java
@@ -0,0 +1,117 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * ArrayOfArrayOfNumberOnly
+ */
+@JsonPropertyOrder({
+  ArrayOfArrayOfNumberOnly.JSON_PROPERTY_ARRAY_ARRAY_NUMBER
+})
+
+public class ArrayOfArrayOfNumberOnly {
+  public static final String JSON_PROPERTY_ARRAY_ARRAY_NUMBER = "ArrayArrayNumber";
+  private List<List<BigDecimal>> arrayArrayNumber = null;
+
+
+  public ArrayOfArrayOfNumberOnly arrayArrayNumber(List<List<BigDecimal>> arrayArrayNumber) {
+    
+    this.arrayArrayNumber = arrayArrayNumber;
+    return this;
+  }
+
+  public ArrayOfArrayOfNumberOnly addArrayArrayNumberItem(List<BigDecimal> arrayArrayNumberItem) {
+    if (this.arrayArrayNumber == null) {
+      this.arrayArrayNumber = new ArrayList<>();
+    }
+    this.arrayArrayNumber.add(arrayArrayNumberItem);
+    return this;
+  }
+
+   /**
+   * Get arrayArrayNumber
+   * @return arrayArrayNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ARRAY_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<List<BigDecimal>> getArrayArrayNumber() {
+    return arrayArrayNumber;
+  }
+
+
+  public void setArrayArrayNumber(List<List<BigDecimal>> arrayArrayNumber) {
+    this.arrayArrayNumber = arrayArrayNumber;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ArrayOfArrayOfNumberOnly arrayOfArrayOfNumberOnly = (ArrayOfArrayOfNumberOnly) o;
+    return Objects.equals(this.arrayArrayNumber, arrayOfArrayOfNumberOnly.arrayArrayNumber);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(arrayArrayNumber);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ArrayOfArrayOfNumberOnly {\n");
+    sb.append("    arrayArrayNumber: ").append(toIndentedString(arrayArrayNumber)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java
new file mode 100644
index 00000000000..3a2e55170ee
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java
@@ -0,0 +1,117 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * ArrayOfNumberOnly
+ */
+@JsonPropertyOrder({
+  ArrayOfNumberOnly.JSON_PROPERTY_ARRAY_NUMBER
+})
+
+public class ArrayOfNumberOnly {
+  public static final String JSON_PROPERTY_ARRAY_NUMBER = "ArrayNumber";
+  private List<BigDecimal> arrayNumber = null;
+
+
+  public ArrayOfNumberOnly arrayNumber(List<BigDecimal> arrayNumber) {
+    
+    this.arrayNumber = arrayNumber;
+    return this;
+  }
+
+  public ArrayOfNumberOnly addArrayNumberItem(BigDecimal arrayNumberItem) {
+    if (this.arrayNumber == null) {
+      this.arrayNumber = new ArrayList<>();
+    }
+    this.arrayNumber.add(arrayNumberItem);
+    return this;
+  }
+
+   /**
+   * Get arrayNumber
+   * @return arrayNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<BigDecimal> getArrayNumber() {
+    return arrayNumber;
+  }
+
+
+  public void setArrayNumber(List<BigDecimal> arrayNumber) {
+    this.arrayNumber = arrayNumber;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ArrayOfNumberOnly arrayOfNumberOnly = (ArrayOfNumberOnly) o;
+    return Objects.equals(this.arrayNumber, arrayOfNumberOnly.arrayNumber);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(arrayNumber);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ArrayOfNumberOnly {\n");
+    sb.append("    arrayNumber: ").append(toIndentedString(arrayNumber)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayTest.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayTest.java
new file mode 100644
index 00000000000..efe1b01d6b1
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ArrayTest.java
@@ -0,0 +1,196 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.client.model.ReadOnlyFirst;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * ArrayTest
+ */
+@JsonPropertyOrder({
+  ArrayTest.JSON_PROPERTY_ARRAY_OF_STRING,
+  ArrayTest.JSON_PROPERTY_ARRAY_ARRAY_OF_INTEGER,
+  ArrayTest.JSON_PROPERTY_ARRAY_ARRAY_OF_MODEL
+})
+
+public class ArrayTest {
+  public static final String JSON_PROPERTY_ARRAY_OF_STRING = "array_of_string";
+  private List<String> arrayOfString = null;
+
+  public static final String JSON_PROPERTY_ARRAY_ARRAY_OF_INTEGER = "array_array_of_integer";
+  private List<List<Long>> arrayArrayOfInteger = null;
+
+  public static final String JSON_PROPERTY_ARRAY_ARRAY_OF_MODEL = "array_array_of_model";
+  private List<List<ReadOnlyFirst>> arrayArrayOfModel = null;
+
+
+  public ArrayTest arrayOfString(List<String> arrayOfString) {
+    
+    this.arrayOfString = arrayOfString;
+    return this;
+  }
+
+  public ArrayTest addArrayOfStringItem(String arrayOfStringItem) {
+    if (this.arrayOfString == null) {
+      this.arrayOfString = new ArrayList<>();
+    }
+    this.arrayOfString.add(arrayOfStringItem);
+    return this;
+  }
+
+   /**
+   * Get arrayOfString
+   * @return arrayOfString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_OF_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<String> getArrayOfString() {
+    return arrayOfString;
+  }
+
+
+  public void setArrayOfString(List<String> arrayOfString) {
+    this.arrayOfString = arrayOfString;
+  }
+
+
+  public ArrayTest arrayArrayOfInteger(List<List<Long>> arrayArrayOfInteger) {
+    
+    this.arrayArrayOfInteger = arrayArrayOfInteger;
+    return this;
+  }
+
+  public ArrayTest addArrayArrayOfIntegerItem(List<Long> arrayArrayOfIntegerItem) {
+    if (this.arrayArrayOfInteger == null) {
+      this.arrayArrayOfInteger = new ArrayList<>();
+    }
+    this.arrayArrayOfInteger.add(arrayArrayOfIntegerItem);
+    return this;
+  }
+
+   /**
+   * Get arrayArrayOfInteger
+   * @return arrayArrayOfInteger
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ARRAY_OF_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<List<Long>> getArrayArrayOfInteger() {
+    return arrayArrayOfInteger;
+  }
+
+
+  public void setArrayArrayOfInteger(List<List<Long>> arrayArrayOfInteger) {
+    this.arrayArrayOfInteger = arrayArrayOfInteger;
+  }
+
+
+  public ArrayTest arrayArrayOfModel(List<List<ReadOnlyFirst>> arrayArrayOfModel) {
+    
+    this.arrayArrayOfModel = arrayArrayOfModel;
+    return this;
+  }
+
+  public ArrayTest addArrayArrayOfModelItem(List<ReadOnlyFirst> arrayArrayOfModelItem) {
+    if (this.arrayArrayOfModel == null) {
+      this.arrayArrayOfModel = new ArrayList<>();
+    }
+    this.arrayArrayOfModel.add(arrayArrayOfModelItem);
+    return this;
+  }
+
+   /**
+   * Get arrayArrayOfModel
+   * @return arrayArrayOfModel
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ARRAY_OF_MODEL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
+    return arrayArrayOfModel;
+  }
+
+
+  public void setArrayArrayOfModel(List<List<ReadOnlyFirst>> arrayArrayOfModel) {
+    this.arrayArrayOfModel = arrayArrayOfModel;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ArrayTest arrayTest = (ArrayTest) o;
+    return Objects.equals(this.arrayOfString, arrayTest.arrayOfString) &&
+        Objects.equals(this.arrayArrayOfInteger, arrayTest.arrayArrayOfInteger) &&
+        Objects.equals(this.arrayArrayOfModel, arrayTest.arrayArrayOfModel);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(arrayOfString, arrayArrayOfInteger, arrayArrayOfModel);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ArrayTest {\n");
+    sb.append("    arrayOfString: ").append(toIndentedString(arrayOfString)).append("\n");
+    sb.append("    arrayArrayOfInteger: ").append(toIndentedString(arrayArrayOfInteger)).append("\n");
+    sb.append("    arrayArrayOfModel: ").append(toIndentedString(arrayArrayOfModel)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCat.java
new file mode 100644
index 00000000000..9cce67d5e05
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCat.java
@@ -0,0 +1,148 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
+import org.openapitools.client.model.Cat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * BigCat
+ */
+@JsonPropertyOrder({
+  BigCat.JSON_PROPERTY_KIND
+})
+
+public class BigCat extends Cat {
+  /**
+   * Gets or Sets kind
+   */
+  public enum KindEnum {
+    LIONS("lions"),
+    
+    TIGERS("tigers"),
+    
+    LEOPARDS("leopards"),
+    
+    JAGUARS("jaguars");
+
+    private String value;
+
+    KindEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static KindEnum fromValue(String value) {
+      for (KindEnum b : KindEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_KIND = "kind";
+  private KindEnum kind;
+
+
+  public BigCat kind(KindEnum kind) {
+    
+    this.kind = kind;
+    return this;
+  }
+
+   /**
+   * Get kind
+   * @return kind
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_KIND)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public KindEnum getKind() {
+    return kind;
+  }
+
+
+  public void setKind(KindEnum kind) {
+    this.kind = kind;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    BigCat bigCat = (BigCat) o;
+    return Objects.equals(this.kind, bigCat.kind) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(kind, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class BigCat {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    kind: ").append(toIndentedString(kind)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCatAllOf.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCatAllOf.java
new file mode 100644
index 00000000000..d9cac42b3c7
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/BigCatAllOf.java
@@ -0,0 +1,144 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * BigCatAllOf
+ */
+@JsonPropertyOrder({
+  BigCatAllOf.JSON_PROPERTY_KIND
+})
+
+public class BigCatAllOf {
+  /**
+   * Gets or Sets kind
+   */
+  public enum KindEnum {
+    LIONS("lions"),
+    
+    TIGERS("tigers"),
+    
+    LEOPARDS("leopards"),
+    
+    JAGUARS("jaguars");
+
+    private String value;
+
+    KindEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static KindEnum fromValue(String value) {
+      for (KindEnum b : KindEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_KIND = "kind";
+  private KindEnum kind;
+
+
+  public BigCatAllOf kind(KindEnum kind) {
+    
+    this.kind = kind;
+    return this;
+  }
+
+   /**
+   * Get kind
+   * @return kind
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_KIND)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public KindEnum getKind() {
+    return kind;
+  }
+
+
+  public void setKind(KindEnum kind) {
+    this.kind = kind;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    BigCatAllOf bigCatAllOf = (BigCatAllOf) o;
+    return Objects.equals(this.kind, bigCatAllOf.kind);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(kind);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class BigCatAllOf {\n");
+    sb.append("    kind: ").append(toIndentedString(kind)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Capitalization.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Capitalization.java
new file mode 100644
index 00000000000..0ecd3a8f024
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Capitalization.java
@@ -0,0 +1,260 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Capitalization
+ */
+@JsonPropertyOrder({
+  Capitalization.JSON_PROPERTY_SMALL_CAMEL,
+  Capitalization.JSON_PROPERTY_CAPITAL_CAMEL,
+  Capitalization.JSON_PROPERTY_SMALL_SNAKE,
+  Capitalization.JSON_PROPERTY_CAPITAL_SNAKE,
+  Capitalization.JSON_PROPERTY_SC_A_E_T_H_FLOW_POINTS,
+  Capitalization.JSON_PROPERTY_A_T_T_N_A_M_E
+})
+
+public class Capitalization {
+  public static final String JSON_PROPERTY_SMALL_CAMEL = "smallCamel";
+  private String smallCamel;
+
+  public static final String JSON_PROPERTY_CAPITAL_CAMEL = "CapitalCamel";
+  private String capitalCamel;
+
+  public static final String JSON_PROPERTY_SMALL_SNAKE = "small_Snake";
+  private String smallSnake;
+
+  public static final String JSON_PROPERTY_CAPITAL_SNAKE = "Capital_Snake";
+  private String capitalSnake;
+
+  public static final String JSON_PROPERTY_SC_A_E_T_H_FLOW_POINTS = "SCA_ETH_Flow_Points";
+  private String scAETHFlowPoints;
+
+  public static final String JSON_PROPERTY_A_T_T_N_A_M_E = "ATT_NAME";
+  private String ATT_NAME;
+
+
+  public Capitalization smallCamel(String smallCamel) {
+    
+    this.smallCamel = smallCamel;
+    return this;
+  }
+
+   /**
+   * Get smallCamel
+   * @return smallCamel
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_SMALL_CAMEL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getSmallCamel() {
+    return smallCamel;
+  }
+
+
+  public void setSmallCamel(String smallCamel) {
+    this.smallCamel = smallCamel;
+  }
+
+
+  public Capitalization capitalCamel(String capitalCamel) {
+    
+    this.capitalCamel = capitalCamel;
+    return this;
+  }
+
+   /**
+   * Get capitalCamel
+   * @return capitalCamel
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_CAPITAL_CAMEL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getCapitalCamel() {
+    return capitalCamel;
+  }
+
+
+  public void setCapitalCamel(String capitalCamel) {
+    this.capitalCamel = capitalCamel;
+  }
+
+
+  public Capitalization smallSnake(String smallSnake) {
+    
+    this.smallSnake = smallSnake;
+    return this;
+  }
+
+   /**
+   * Get smallSnake
+   * @return smallSnake
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_SMALL_SNAKE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getSmallSnake() {
+    return smallSnake;
+  }
+
+
+  public void setSmallSnake(String smallSnake) {
+    this.smallSnake = smallSnake;
+  }
+
+
+  public Capitalization capitalSnake(String capitalSnake) {
+    
+    this.capitalSnake = capitalSnake;
+    return this;
+  }
+
+   /**
+   * Get capitalSnake
+   * @return capitalSnake
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_CAPITAL_SNAKE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getCapitalSnake() {
+    return capitalSnake;
+  }
+
+
+  public void setCapitalSnake(String capitalSnake) {
+    this.capitalSnake = capitalSnake;
+  }
+
+
+  public Capitalization scAETHFlowPoints(String scAETHFlowPoints) {
+    
+    this.scAETHFlowPoints = scAETHFlowPoints;
+    return this;
+  }
+
+   /**
+   * Get scAETHFlowPoints
+   * @return scAETHFlowPoints
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_SC_A_E_T_H_FLOW_POINTS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getScAETHFlowPoints() {
+    return scAETHFlowPoints;
+  }
+
+
+  public void setScAETHFlowPoints(String scAETHFlowPoints) {
+    this.scAETHFlowPoints = scAETHFlowPoints;
+  }
+
+
+  public Capitalization ATT_NAME(String ATT_NAME) {
+    
+    this.ATT_NAME = ATT_NAME;
+    return this;
+  }
+
+   /**
+   * Name of the pet 
+   * @return ATT_NAME
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "Name of the pet ")
+  @JsonProperty(JSON_PROPERTY_A_T_T_N_A_M_E)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getATTNAME() {
+    return ATT_NAME;
+  }
+
+
+  public void setATTNAME(String ATT_NAME) {
+    this.ATT_NAME = ATT_NAME;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Capitalization capitalization = (Capitalization) o;
+    return Objects.equals(this.smallCamel, capitalization.smallCamel) &&
+        Objects.equals(this.capitalCamel, capitalization.capitalCamel) &&
+        Objects.equals(this.smallSnake, capitalization.smallSnake) &&
+        Objects.equals(this.capitalSnake, capitalization.capitalSnake) &&
+        Objects.equals(this.scAETHFlowPoints, capitalization.scAETHFlowPoints) &&
+        Objects.equals(this.ATT_NAME, capitalization.ATT_NAME);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(smallCamel, capitalCamel, smallSnake, capitalSnake, scAETHFlowPoints, ATT_NAME);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Capitalization {\n");
+    sb.append("    smallCamel: ").append(toIndentedString(smallCamel)).append("\n");
+    sb.append("    capitalCamel: ").append(toIndentedString(capitalCamel)).append("\n");
+    sb.append("    smallSnake: ").append(toIndentedString(smallSnake)).append("\n");
+    sb.append("    capitalSnake: ").append(toIndentedString(capitalSnake)).append("\n");
+    sb.append("    scAETHFlowPoints: ").append(toIndentedString(scAETHFlowPoints)).append("\n");
+    sb.append("    ATT_NAME: ").append(toIndentedString(ATT_NAME)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Cat.java
new file mode 100644
index 00000000000..4e42f62237d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Cat.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.CatAllOf;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Cat
+ */
+@JsonPropertyOrder({
+  Cat.JSON_PROPERTY_DECLAWED
+})
+
+public class Cat extends Animal {
+  public static final String JSON_PROPERTY_DECLAWED = "declawed";
+  private Boolean declawed;
+
+
+  public Cat declawed(Boolean declawed) {
+    
+    this.declawed = declawed;
+    return this;
+  }
+
+   /**
+   * Get declawed
+   * @return declawed
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DECLAWED)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isDeclawed() {
+    return declawed;
+  }
+
+
+  public void setDeclawed(Boolean declawed) {
+    this.declawed = declawed;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Cat cat = (Cat) o;
+    return Objects.equals(this.declawed, cat.declawed) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(declawed, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Cat {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    declawed: ").append(toIndentedString(declawed)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/CatAllOf.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/CatAllOf.java
new file mode 100644
index 00000000000..da2d6fdf359
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/CatAllOf.java
@@ -0,0 +1,105 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * CatAllOf
+ */
+@JsonPropertyOrder({
+  CatAllOf.JSON_PROPERTY_DECLAWED
+})
+
+public class CatAllOf {
+  public static final String JSON_PROPERTY_DECLAWED = "declawed";
+  private Boolean declawed;
+
+
+  public CatAllOf declawed(Boolean declawed) {
+    
+    this.declawed = declawed;
+    return this;
+  }
+
+   /**
+   * Get declawed
+   * @return declawed
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DECLAWED)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isDeclawed() {
+    return declawed;
+  }
+
+
+  public void setDeclawed(Boolean declawed) {
+    this.declawed = declawed;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    CatAllOf catAllOf = (CatAllOf) o;
+    return Objects.equals(this.declawed, catAllOf.declawed);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(declawed);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class CatAllOf {\n");
+    sb.append("    declawed: ").append(toIndentedString(declawed)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Category.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Category.java
new file mode 100644
index 00000000000..9b6db321395
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Category.java
@@ -0,0 +1,136 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Category
+ */
+@JsonPropertyOrder({
+  Category.JSON_PROPERTY_ID,
+  Category.JSON_PROPERTY_NAME
+})
+
+public class Category {
+  public static final String JSON_PROPERTY_ID = "id";
+  private Long id;
+
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name = "default-name";
+
+
+  public Category id(Long id) {
+    
+    this.id = id;
+    return this;
+  }
+
+   /**
+   * Get id
+   * @return id
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getId() {
+    return id;
+  }
+
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+
+  public Category name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Category category = (Category) o;
+    return Objects.equals(this.id, category.id) &&
+        Objects.equals(this.name, category.name);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id, name);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Category {\n");
+    sb.append("    id: ").append(toIndentedString(id)).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ClassModel.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ClassModel.java
new file mode 100644
index 00000000000..e7765bbe8de
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ClassModel.java
@@ -0,0 +1,106 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Model for testing model with \&quot;_class\&quot; property
+ */
+@ApiModel(description = "Model for testing model with \"_class\" property")
+@JsonPropertyOrder({
+  ClassModel.JSON_PROPERTY_PROPERTY_CLASS
+})
+
+public class ClassModel {
+  public static final String JSON_PROPERTY_PROPERTY_CLASS = "_class";
+  private String propertyClass;
+
+
+  public ClassModel propertyClass(String propertyClass) {
+    
+    this.propertyClass = propertyClass;
+    return this;
+  }
+
+   /**
+   * Get propertyClass
+   * @return propertyClass
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PROPERTY_CLASS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPropertyClass() {
+    return propertyClass;
+  }
+
+
+  public void setPropertyClass(String propertyClass) {
+    this.propertyClass = propertyClass;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ClassModel classModel = (ClassModel) o;
+    return Objects.equals(this.propertyClass, classModel.propertyClass);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(propertyClass);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ClassModel {\n");
+    sb.append("    propertyClass: ").append(toIndentedString(propertyClass)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Client.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Client.java
new file mode 100644
index 00000000000..d730df42e2c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Client.java
@@ -0,0 +1,105 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Client
+ */
+@JsonPropertyOrder({
+  Client.JSON_PROPERTY_CLIENT
+})
+
+public class Client {
+  public static final String JSON_PROPERTY_CLIENT = "client";
+  private String client;
+
+
+  public Client client(String client) {
+    
+    this.client = client;
+    return this;
+  }
+
+   /**
+   * Get client
+   * @return client
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_CLIENT)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getClient() {
+    return client;
+  }
+
+
+  public void setClient(String client) {
+    this.client = client;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Client client = (Client) o;
+    return Objects.equals(this.client, client.client);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(client);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Client {\n");
+    sb.append("    client: ").append(toIndentedString(client)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Dog.java
new file mode 100644
index 00000000000..3fba33d179a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Dog.java
@@ -0,0 +1,109 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Dog
+ */
+@JsonPropertyOrder({
+  Dog.JSON_PROPERTY_BREED
+})
+
+public class Dog extends Animal {
+  public static final String JSON_PROPERTY_BREED = "breed";
+  private String breed;
+
+
+  public Dog breed(String breed) {
+    
+    this.breed = breed;
+    return this;
+  }
+
+   /**
+   * Get breed
+   * @return breed
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BREED)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getBreed() {
+    return breed;
+  }
+
+
+  public void setBreed(String breed) {
+    this.breed = breed;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Dog dog = (Dog) o;
+    return Objects.equals(this.breed, dog.breed) &&
+        super.equals(o);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(breed, super.hashCode());
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Dog {\n");
+    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
+    sb.append("    breed: ").append(toIndentedString(breed)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/DogAllOf.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/DogAllOf.java
new file mode 100644
index 00000000000..e916e73f4a7
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/DogAllOf.java
@@ -0,0 +1,105 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * DogAllOf
+ */
+@JsonPropertyOrder({
+  DogAllOf.JSON_PROPERTY_BREED
+})
+
+public class DogAllOf {
+  public static final String JSON_PROPERTY_BREED = "breed";
+  private String breed;
+
+
+  public DogAllOf breed(String breed) {
+    
+    this.breed = breed;
+    return this;
+  }
+
+   /**
+   * Get breed
+   * @return breed
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BREED)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getBreed() {
+    return breed;
+  }
+
+
+  public void setBreed(String breed) {
+    this.breed = breed;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    DogAllOf dogAllOf = (DogAllOf) o;
+    return Objects.equals(this.breed, dogAllOf.breed);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(breed);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class DogAllOf {\n");
+    sb.append("    breed: ").append(toIndentedString(breed)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumArrays.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumArrays.java
new file mode 100644
index 00000000000..a3e3abfd2cb
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumArrays.java
@@ -0,0 +1,216 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * EnumArrays
+ */
+@JsonPropertyOrder({
+  EnumArrays.JSON_PROPERTY_JUST_SYMBOL,
+  EnumArrays.JSON_PROPERTY_ARRAY_ENUM
+})
+
+public class EnumArrays {
+  /**
+   * Gets or Sets justSymbol
+   */
+  public enum JustSymbolEnum {
+    GREATER_THAN_OR_EQUAL_TO(">="),
+    
+    DOLLAR("$");
+
+    private String value;
+
+    JustSymbolEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static JustSymbolEnum fromValue(String value) {
+      for (JustSymbolEnum b : JustSymbolEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_JUST_SYMBOL = "just_symbol";
+  private JustSymbolEnum justSymbol;
+
+  /**
+   * Gets or Sets arrayEnum
+   */
+  public enum ArrayEnumEnum {
+    FISH("fish"),
+    
+    CRAB("crab");
+
+    private String value;
+
+    ArrayEnumEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static ArrayEnumEnum fromValue(String value) {
+      for (ArrayEnumEnum b : ArrayEnumEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_ARRAY_ENUM = "array_enum";
+  private List<ArrayEnumEnum> arrayEnum = null;
+
+
+  public EnumArrays justSymbol(JustSymbolEnum justSymbol) {
+    
+    this.justSymbol = justSymbol;
+    return this;
+  }
+
+   /**
+   * Get justSymbol
+   * @return justSymbol
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_JUST_SYMBOL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public JustSymbolEnum getJustSymbol() {
+    return justSymbol;
+  }
+
+
+  public void setJustSymbol(JustSymbolEnum justSymbol) {
+    this.justSymbol = justSymbol;
+  }
+
+
+  public EnumArrays arrayEnum(List<ArrayEnumEnum> arrayEnum) {
+    
+    this.arrayEnum = arrayEnum;
+    return this;
+  }
+
+  public EnumArrays addArrayEnumItem(ArrayEnumEnum arrayEnumItem) {
+    if (this.arrayEnum == null) {
+      this.arrayEnum = new ArrayList<>();
+    }
+    this.arrayEnum.add(arrayEnumItem);
+    return this;
+  }
+
+   /**
+   * Get arrayEnum
+   * @return arrayEnum
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ENUM)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<ArrayEnumEnum> getArrayEnum() {
+    return arrayEnum;
+  }
+
+
+  public void setArrayEnum(List<ArrayEnumEnum> arrayEnum) {
+    this.arrayEnum = arrayEnum;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    EnumArrays enumArrays = (EnumArrays) o;
+    return Objects.equals(this.justSymbol, enumArrays.justSymbol) &&
+        Objects.equals(this.arrayEnum, enumArrays.arrayEnum);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(justSymbol, arrayEnum);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class EnumArrays {\n");
+    sb.append("    justSymbol: ").append(toIndentedString(justSymbol)).append("\n");
+    sb.append("    arrayEnum: ").append(toIndentedString(arrayEnum)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumClass.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumClass.java
new file mode 100644
index 00000000000..d015b74e06a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumClass.java
@@ -0,0 +1,63 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets EnumClass
+ */
+public enum EnumClass {
+  
+  _ABC("_abc"),
+  
+  _EFG("-efg"),
+  
+  _XYZ_("(xyz)");
+
+  private String value;
+
+  EnumClass(String value) {
+    this.value = value;
+  }
+
+  @JsonValue
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public String toString() {
+    return String.valueOf(value);
+  }
+
+  @JsonCreator
+  public static EnumClass fromValue(String value) {
+    for (EnumClass b : EnumClass.values()) {
+      if (b.value.equals(value)) {
+        return b;
+      }
+    }
+    throw new IllegalArgumentException("Unexpected value '" + value + "'");
+  }
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumTest.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumTest.java
new file mode 100644
index 00000000000..6294398ba8c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/EnumTest.java
@@ -0,0 +1,375 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.OuterEnum;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * EnumTest
+ */
+@JsonPropertyOrder({
+  EnumTest.JSON_PROPERTY_ENUM_STRING,
+  EnumTest.JSON_PROPERTY_ENUM_STRING_REQUIRED,
+  EnumTest.JSON_PROPERTY_ENUM_INTEGER,
+  EnumTest.JSON_PROPERTY_ENUM_NUMBER,
+  EnumTest.JSON_PROPERTY_OUTER_ENUM
+})
+
+public class EnumTest {
+  /**
+   * Gets or Sets enumString
+   */
+  public enum EnumStringEnum {
+    UPPER("UPPER"),
+    
+    LOWER("lower"),
+    
+    EMPTY("");
+
+    private String value;
+
+    EnumStringEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static EnumStringEnum fromValue(String value) {
+      for (EnumStringEnum b : EnumStringEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_ENUM_STRING = "enum_string";
+  private EnumStringEnum enumString;
+
+  /**
+   * Gets or Sets enumStringRequired
+   */
+  public enum EnumStringRequiredEnum {
+    UPPER("UPPER"),
+    
+    LOWER("lower"),
+    
+    EMPTY("");
+
+    private String value;
+
+    EnumStringRequiredEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static EnumStringRequiredEnum fromValue(String value) {
+      for (EnumStringRequiredEnum b : EnumStringRequiredEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_ENUM_STRING_REQUIRED = "enum_string_required";
+  private EnumStringRequiredEnum enumStringRequired;
+
+  /**
+   * Gets or Sets enumInteger
+   */
+  public enum EnumIntegerEnum {
+    NUMBER_1(1),
+    
+    NUMBER_MINUS_1(-1);
+
+    private Integer value;
+
+    EnumIntegerEnum(Integer value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public Integer getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static EnumIntegerEnum fromValue(Integer value) {
+      for (EnumIntegerEnum b : EnumIntegerEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_ENUM_INTEGER = "enum_integer";
+  private EnumIntegerEnum enumInteger;
+
+  /**
+   * Gets or Sets enumNumber
+   */
+  public enum EnumNumberEnum {
+    NUMBER_1_DOT_1(1.1),
+    
+    NUMBER_MINUS_1_DOT_2(-1.2);
+
+    private Double value;
+
+    EnumNumberEnum(Double value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public Double getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static EnumNumberEnum fromValue(Double value) {
+      for (EnumNumberEnum b : EnumNumberEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_ENUM_NUMBER = "enum_number";
+  private EnumNumberEnum enumNumber;
+
+  public static final String JSON_PROPERTY_OUTER_ENUM = "outerEnum";
+  private OuterEnum outerEnum;
+
+
+  public EnumTest enumString(EnumStringEnum enumString) {
+    
+    this.enumString = enumString;
+    return this;
+  }
+
+   /**
+   * Get enumString
+   * @return enumString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ENUM_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public EnumStringEnum getEnumString() {
+    return enumString;
+  }
+
+
+  public void setEnumString(EnumStringEnum enumString) {
+    this.enumString = enumString;
+  }
+
+
+  public EnumTest enumStringRequired(EnumStringRequiredEnum enumStringRequired) {
+    
+    this.enumStringRequired = enumStringRequired;
+    return this;
+  }
+
+   /**
+   * Get enumStringRequired
+   * @return enumStringRequired
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_ENUM_STRING_REQUIRED)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public EnumStringRequiredEnum getEnumStringRequired() {
+    return enumStringRequired;
+  }
+
+
+  public void setEnumStringRequired(EnumStringRequiredEnum enumStringRequired) {
+    this.enumStringRequired = enumStringRequired;
+  }
+
+
+  public EnumTest enumInteger(EnumIntegerEnum enumInteger) {
+    
+    this.enumInteger = enumInteger;
+    return this;
+  }
+
+   /**
+   * Get enumInteger
+   * @return enumInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ENUM_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public EnumIntegerEnum getEnumInteger() {
+    return enumInteger;
+  }
+
+
+  public void setEnumInteger(EnumIntegerEnum enumInteger) {
+    this.enumInteger = enumInteger;
+  }
+
+
+  public EnumTest enumNumber(EnumNumberEnum enumNumber) {
+    
+    this.enumNumber = enumNumber;
+    return this;
+  }
+
+   /**
+   * Get enumNumber
+   * @return enumNumber
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ENUM_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public EnumNumberEnum getEnumNumber() {
+    return enumNumber;
+  }
+
+
+  public void setEnumNumber(EnumNumberEnum enumNumber) {
+    this.enumNumber = enumNumber;
+  }
+
+
+  public EnumTest outerEnum(OuterEnum outerEnum) {
+    
+    this.outerEnum = outerEnum;
+    return this;
+  }
+
+   /**
+   * Get outerEnum
+   * @return outerEnum
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_OUTER_ENUM)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public OuterEnum getOuterEnum() {
+    return outerEnum;
+  }
+
+
+  public void setOuterEnum(OuterEnum outerEnum) {
+    this.outerEnum = outerEnum;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    EnumTest enumTest = (EnumTest) o;
+    return Objects.equals(this.enumString, enumTest.enumString) &&
+        Objects.equals(this.enumStringRequired, enumTest.enumStringRequired) &&
+        Objects.equals(this.enumInteger, enumTest.enumInteger) &&
+        Objects.equals(this.enumNumber, enumTest.enumNumber) &&
+        Objects.equals(this.outerEnum, enumTest.outerEnum);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(enumString, enumStringRequired, enumInteger, enumNumber, outerEnum);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class EnumTest {\n");
+    sb.append("    enumString: ").append(toIndentedString(enumString)).append("\n");
+    sb.append("    enumStringRequired: ").append(toIndentedString(enumStringRequired)).append("\n");
+    sb.append("    enumInteger: ").append(toIndentedString(enumInteger)).append("\n");
+    sb.append("    enumNumber: ").append(toIndentedString(enumNumber)).append("\n");
+    sb.append("    outerEnum: ").append(toIndentedString(outerEnum)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java
new file mode 100644
index 00000000000..7a00e4c6f72
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java
@@ -0,0 +1,148 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * FileSchemaTestClass
+ */
+@JsonPropertyOrder({
+  FileSchemaTestClass.JSON_PROPERTY_FILE,
+  FileSchemaTestClass.JSON_PROPERTY_FILES
+})
+
+public class FileSchemaTestClass {
+  public static final String JSON_PROPERTY_FILE = "file";
+  private java.io.File file;
+
+  public static final String JSON_PROPERTY_FILES = "files";
+  private List<java.io.File> files = null;
+
+
+  public FileSchemaTestClass file(java.io.File file) {
+    
+    this.file = file;
+    return this;
+  }
+
+   /**
+   * Get file
+   * @return file
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_FILE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public java.io.File getFile() {
+    return file;
+  }
+
+
+  public void setFile(java.io.File file) {
+    this.file = file;
+  }
+
+
+  public FileSchemaTestClass files(List<java.io.File> files) {
+    
+    this.files = files;
+    return this;
+  }
+
+  public FileSchemaTestClass addFilesItem(java.io.File filesItem) {
+    if (this.files == null) {
+      this.files = new ArrayList<>();
+    }
+    this.files.add(filesItem);
+    return this;
+  }
+
+   /**
+   * Get files
+   * @return files
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_FILES)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<java.io.File> getFiles() {
+    return files;
+  }
+
+
+  public void setFiles(List<java.io.File> files) {
+    this.files = files;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    FileSchemaTestClass fileSchemaTestClass = (FileSchemaTestClass) o;
+    return Objects.equals(this.file, fileSchemaTestClass.file) &&
+        Objects.equals(this.files, fileSchemaTestClass.files);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(file, files);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class FileSchemaTestClass {\n");
+    sb.append("    file: ").append(toIndentedString(file)).append("\n");
+    sb.append("    files: ").append(toIndentedString(files)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FormatTest.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FormatTest.java
new file mode 100644
index 00000000000..ea151142c16
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/FormatTest.java
@@ -0,0 +1,529 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.File;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.UUID;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * FormatTest
+ */
+@JsonPropertyOrder({
+  FormatTest.JSON_PROPERTY_INTEGER,
+  FormatTest.JSON_PROPERTY_INT32,
+  FormatTest.JSON_PROPERTY_INT64,
+  FormatTest.JSON_PROPERTY_NUMBER,
+  FormatTest.JSON_PROPERTY_FLOAT,
+  FormatTest.JSON_PROPERTY_DOUBLE,
+  FormatTest.JSON_PROPERTY_STRING,
+  FormatTest.JSON_PROPERTY_BYTE,
+  FormatTest.JSON_PROPERTY_BINARY,
+  FormatTest.JSON_PROPERTY_DATE,
+  FormatTest.JSON_PROPERTY_DATE_TIME,
+  FormatTest.JSON_PROPERTY_UUID,
+  FormatTest.JSON_PROPERTY_PASSWORD,
+  FormatTest.JSON_PROPERTY_BIG_DECIMAL
+})
+
+public class FormatTest {
+  public static final String JSON_PROPERTY_INTEGER = "integer";
+  private Integer integer;
+
+  public static final String JSON_PROPERTY_INT32 = "int32";
+  private Integer int32;
+
+  public static final String JSON_PROPERTY_INT64 = "int64";
+  private Long int64;
+
+  public static final String JSON_PROPERTY_NUMBER = "number";
+  private BigDecimal number;
+
+  public static final String JSON_PROPERTY_FLOAT = "float";
+  private Float _float;
+
+  public static final String JSON_PROPERTY_DOUBLE = "double";
+  private Double _double;
+
+  public static final String JSON_PROPERTY_STRING = "string";
+  private String string;
+
+  public static final String JSON_PROPERTY_BYTE = "byte";
+  private byte[] _byte;
+
+  public static final String JSON_PROPERTY_BINARY = "binary";
+  private File binary;
+
+  public static final String JSON_PROPERTY_DATE = "date";
+  private LocalDate date;
+
+  public static final String JSON_PROPERTY_DATE_TIME = "dateTime";
+  private OffsetDateTime dateTime;
+
+  public static final String JSON_PROPERTY_UUID = "uuid";
+  private UUID uuid;
+
+  public static final String JSON_PROPERTY_PASSWORD = "password";
+  private String password;
+
+  public static final String JSON_PROPERTY_BIG_DECIMAL = "BigDecimal";
+  private BigDecimal bigDecimal;
+
+
+  public FormatTest integer(Integer integer) {
+    
+    this.integer = integer;
+    return this;
+  }
+
+   /**
+   * Get integer
+   * minimum: 10
+   * maximum: 100
+   * @return integer
+  **/
+  @javax.annotation.Nullable
+ @Min(10) @Max(100)  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getInteger() {
+    return integer;
+  }
+
+
+  public void setInteger(Integer integer) {
+    this.integer = integer;
+  }
+
+
+  public FormatTest int32(Integer int32) {
+    
+    this.int32 = int32;
+    return this;
+  }
+
+   /**
+   * Get int32
+   * minimum: 20
+   * maximum: 200
+   * @return int32
+  **/
+  @javax.annotation.Nullable
+ @Min(20) @Max(200)  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_INT32)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getInt32() {
+    return int32;
+  }
+
+
+  public void setInt32(Integer int32) {
+    this.int32 = int32;
+  }
+
+
+  public FormatTest int64(Long int64) {
+    
+    this.int64 = int64;
+    return this;
+  }
+
+   /**
+   * Get int64
+   * @return int64
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_INT64)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getInt64() {
+    return int64;
+  }
+
+
+  public void setInt64(Long int64) {
+    this.int64 = int64;
+  }
+
+
+  public FormatTest number(BigDecimal number) {
+    
+    this.number = number;
+    return this;
+  }
+
+   /**
+   * Get number
+   * minimum: 32.1
+   * maximum: 543.2
+   * @return number
+  **/
+  @NotNull
+  @Valid
+ @DecimalMin("32.1") @DecimalMax("543.2")  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public BigDecimal getNumber() {
+    return number;
+  }
+
+
+  public void setNumber(BigDecimal number) {
+    this.number = number;
+  }
+
+
+  public FormatTest _float(Float _float) {
+    
+    this._float = _float;
+    return this;
+  }
+
+   /**
+   * Get _float
+   * minimum: 54.3
+   * maximum: 987.6
+   * @return _float
+  **/
+  @javax.annotation.Nullable
+ @DecimalMin("54.3") @DecimalMax("987.6")  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_FLOAT)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Float getFloat() {
+    return _float;
+  }
+
+
+  public void setFloat(Float _float) {
+    this._float = _float;
+  }
+
+
+  public FormatTest _double(Double _double) {
+    
+    this._double = _double;
+    return this;
+  }
+
+   /**
+   * Get _double
+   * minimum: 67.8
+   * maximum: 123.4
+   * @return _double
+  **/
+  @javax.annotation.Nullable
+ @DecimalMin("67.8") @DecimalMax("123.4")  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DOUBLE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Double getDouble() {
+    return _double;
+  }
+
+
+  public void setDouble(Double _double) {
+    this._double = _double;
+  }
+
+
+  public FormatTest string(String string) {
+    
+    this.string = string;
+    return this;
+  }
+
+   /**
+   * Get string
+   * @return string
+  **/
+  @javax.annotation.Nullable
+ @Pattern(regexp="/[a-z]/i")  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getString() {
+    return string;
+  }
+
+
+  public void setString(String string) {
+    this.string = string;
+  }
+
+
+  public FormatTest _byte(byte[] _byte) {
+    
+    this._byte = _byte;
+    return this;
+  }
+
+   /**
+   * Get _byte
+   * @return _byte
+  **/
+  @NotNull
+ @Pattern(regexp="^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$")  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_BYTE)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public byte[] getByte() {
+    return _byte;
+  }
+
+
+  public void setByte(byte[] _byte) {
+    this._byte = _byte;
+  }
+
+
+  public FormatTest binary(File binary) {
+    
+    this.binary = binary;
+    return this;
+  }
+
+   /**
+   * Get binary
+   * @return binary
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BINARY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public File getBinary() {
+    return binary;
+  }
+
+
+  public void setBinary(File binary) {
+    this.binary = binary;
+  }
+
+
+  public FormatTest date(LocalDate date) {
+    
+    this.date = date;
+    return this;
+  }
+
+   /**
+   * Get date
+   * @return date
+  **/
+  @NotNull
+  @Valid
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_DATE)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public LocalDate getDate() {
+    return date;
+  }
+
+
+  public void setDate(LocalDate date) {
+    this.date = date;
+  }
+
+
+  public FormatTest dateTime(OffsetDateTime dateTime) {
+    
+    this.dateTime = dateTime;
+    return this;
+  }
+
+   /**
+   * Get dateTime
+   * @return dateTime
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DATE_TIME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public OffsetDateTime getDateTime() {
+    return dateTime;
+  }
+
+
+  public void setDateTime(OffsetDateTime dateTime) {
+    this.dateTime = dateTime;
+  }
+
+
+  public FormatTest uuid(UUID uuid) {
+    
+    this.uuid = uuid;
+    return this;
+  }
+
+   /**
+   * Get uuid
+   * @return uuid
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "72f98069-206d-4f12-9f12-3d1e525a8e84", value = "")
+  @JsonProperty(JSON_PROPERTY_UUID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public UUID getUuid() {
+    return uuid;
+  }
+
+
+  public void setUuid(UUID uuid) {
+    this.uuid = uuid;
+  }
+
+
+  public FormatTest password(String password) {
+    
+    this.password = password;
+    return this;
+  }
+
+   /**
+   * Get password
+   * @return password
+  **/
+  @NotNull
+ @Size(min=10,max=64)  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_PASSWORD)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getPassword() {
+    return password;
+  }
+
+
+  public void setPassword(String password) {
+    this.password = password;
+  }
+
+
+  public FormatTest bigDecimal(BigDecimal bigDecimal) {
+    
+    this.bigDecimal = bigDecimal;
+    return this;
+  }
+
+   /**
+   * Get bigDecimal
+   * @return bigDecimal
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BIG_DECIMAL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getBigDecimal() {
+    return bigDecimal;
+  }
+
+
+  public void setBigDecimal(BigDecimal bigDecimal) {
+    this.bigDecimal = bigDecimal;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    FormatTest formatTest = (FormatTest) o;
+    return Objects.equals(this.integer, formatTest.integer) &&
+        Objects.equals(this.int32, formatTest.int32) &&
+        Objects.equals(this.int64, formatTest.int64) &&
+        Objects.equals(this.number, formatTest.number) &&
+        Objects.equals(this._float, formatTest._float) &&
+        Objects.equals(this._double, formatTest._double) &&
+        Objects.equals(this.string, formatTest.string) &&
+        Arrays.equals(this._byte, formatTest._byte) &&
+        Objects.equals(this.binary, formatTest.binary) &&
+        Objects.equals(this.date, formatTest.date) &&
+        Objects.equals(this.dateTime, formatTest.dateTime) &&
+        Objects.equals(this.uuid, formatTest.uuid) &&
+        Objects.equals(this.password, formatTest.password) &&
+        Objects.equals(this.bigDecimal, formatTest.bigDecimal);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(integer, int32, int64, number, _float, _double, string, Arrays.hashCode(_byte), binary, date, dateTime, uuid, password, bigDecimal);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class FormatTest {\n");
+    sb.append("    integer: ").append(toIndentedString(integer)).append("\n");
+    sb.append("    int32: ").append(toIndentedString(int32)).append("\n");
+    sb.append("    int64: ").append(toIndentedString(int64)).append("\n");
+    sb.append("    number: ").append(toIndentedString(number)).append("\n");
+    sb.append("    _float: ").append(toIndentedString(_float)).append("\n");
+    sb.append("    _double: ").append(toIndentedString(_double)).append("\n");
+    sb.append("    string: ").append(toIndentedString(string)).append("\n");
+    sb.append("    _byte: ").append(toIndentedString(_byte)).append("\n");
+    sb.append("    binary: ").append(toIndentedString(binary)).append("\n");
+    sb.append("    date: ").append(toIndentedString(date)).append("\n");
+    sb.append("    dateTime: ").append(toIndentedString(dateTime)).append("\n");
+    sb.append("    uuid: ").append(toIndentedString(uuid)).append("\n");
+    sb.append("    password: ").append(toIndentedString(password)).append("\n");
+    sb.append("    bigDecimal: ").append(toIndentedString(bigDecimal)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
new file mode 100644
index 00000000000..2dfd4763125
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
@@ -0,0 +1,118 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * HasOnlyReadOnly
+ */
+@JsonPropertyOrder({
+  HasOnlyReadOnly.JSON_PROPERTY_BAR,
+  HasOnlyReadOnly.JSON_PROPERTY_FOO
+})
+
+public class HasOnlyReadOnly {
+  public static final String JSON_PROPERTY_BAR = "bar";
+  private String bar;
+
+  public static final String JSON_PROPERTY_FOO = "foo";
+  private String foo;
+
+
+   /**
+   * Get bar
+   * @return bar
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BAR)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getBar() {
+    return bar;
+  }
+
+
+
+
+   /**
+   * Get foo
+   * @return foo
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_FOO)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getFoo() {
+    return foo;
+  }
+
+
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    HasOnlyReadOnly hasOnlyReadOnly = (HasOnlyReadOnly) o;
+    return Objects.equals(this.bar, hasOnlyReadOnly.bar) &&
+        Objects.equals(this.foo, hasOnlyReadOnly.foo);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(bar, foo);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class HasOnlyReadOnly {\n");
+    sb.append("    bar: ").append(toIndentedString(bar)).append("\n");
+    sb.append("    foo: ").append(toIndentedString(foo)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MapTest.java
new file mode 100644
index 00000000000..91db4d7aec9
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MapTest.java
@@ -0,0 +1,269 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * MapTest
+ */
+@JsonPropertyOrder({
+  MapTest.JSON_PROPERTY_MAP_MAP_OF_STRING,
+  MapTest.JSON_PROPERTY_MAP_OF_ENUM_STRING,
+  MapTest.JSON_PROPERTY_DIRECT_MAP,
+  MapTest.JSON_PROPERTY_INDIRECT_MAP
+})
+
+public class MapTest {
+  public static final String JSON_PROPERTY_MAP_MAP_OF_STRING = "map_map_of_string";
+  private Map<String, Map<String, String>> mapMapOfString = null;
+
+  /**
+   * Gets or Sets inner
+   */
+  public enum InnerEnum {
+    UPPER("UPPER"),
+    
+    LOWER("lower");
+
+    private String value;
+
+    InnerEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static InnerEnum fromValue(String value) {
+      for (InnerEnum b : InnerEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_MAP_OF_ENUM_STRING = "map_of_enum_string";
+  private Map<String, InnerEnum> mapOfEnumString = null;
+
+  public static final String JSON_PROPERTY_DIRECT_MAP = "direct_map";
+  private Map<String, Boolean> directMap = null;
+
+  public static final String JSON_PROPERTY_INDIRECT_MAP = "indirect_map";
+  private Map<String, Boolean> indirectMap = null;
+
+
+  public MapTest mapMapOfString(Map<String, Map<String, String>> mapMapOfString) {
+    
+    this.mapMapOfString = mapMapOfString;
+    return this;
+  }
+
+  public MapTest putMapMapOfStringItem(String key, Map<String, String> mapMapOfStringItem) {
+    if (this.mapMapOfString == null) {
+      this.mapMapOfString = new HashMap<>();
+    }
+    this.mapMapOfString.put(key, mapMapOfStringItem);
+    return this;
+  }
+
+   /**
+   * Get mapMapOfString
+   * @return mapMapOfString
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_MAP_OF_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Map<String, String>> getMapMapOfString() {
+    return mapMapOfString;
+  }
+
+
+  public void setMapMapOfString(Map<String, Map<String, String>> mapMapOfString) {
+    this.mapMapOfString = mapMapOfString;
+  }
+
+
+  public MapTest mapOfEnumString(Map<String, InnerEnum> mapOfEnumString) {
+    
+    this.mapOfEnumString = mapOfEnumString;
+    return this;
+  }
+
+  public MapTest putMapOfEnumStringItem(String key, InnerEnum mapOfEnumStringItem) {
+    if (this.mapOfEnumString == null) {
+      this.mapOfEnumString = new HashMap<>();
+    }
+    this.mapOfEnumString.put(key, mapOfEnumStringItem);
+    return this;
+  }
+
+   /**
+   * Get mapOfEnumString
+   * @return mapOfEnumString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP_OF_ENUM_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, InnerEnum> getMapOfEnumString() {
+    return mapOfEnumString;
+  }
+
+
+  public void setMapOfEnumString(Map<String, InnerEnum> mapOfEnumString) {
+    this.mapOfEnumString = mapOfEnumString;
+  }
+
+
+  public MapTest directMap(Map<String, Boolean> directMap) {
+    
+    this.directMap = directMap;
+    return this;
+  }
+
+  public MapTest putDirectMapItem(String key, Boolean directMapItem) {
+    if (this.directMap == null) {
+      this.directMap = new HashMap<>();
+    }
+    this.directMap.put(key, directMapItem);
+    return this;
+  }
+
+   /**
+   * Get directMap
+   * @return directMap
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DIRECT_MAP)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Boolean> getDirectMap() {
+    return directMap;
+  }
+
+
+  public void setDirectMap(Map<String, Boolean> directMap) {
+    this.directMap = directMap;
+  }
+
+
+  public MapTest indirectMap(Map<String, Boolean> indirectMap) {
+    
+    this.indirectMap = indirectMap;
+    return this;
+  }
+
+  public MapTest putIndirectMapItem(String key, Boolean indirectMapItem) {
+    if (this.indirectMap == null) {
+      this.indirectMap = new HashMap<>();
+    }
+    this.indirectMap.put(key, indirectMapItem);
+    return this;
+  }
+
+   /**
+   * Get indirectMap
+   * @return indirectMap
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_INDIRECT_MAP)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Boolean> getIndirectMap() {
+    return indirectMap;
+  }
+
+
+  public void setIndirectMap(Map<String, Boolean> indirectMap) {
+    this.indirectMap = indirectMap;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    MapTest mapTest = (MapTest) o;
+    return Objects.equals(this.mapMapOfString, mapTest.mapMapOfString) &&
+        Objects.equals(this.mapOfEnumString, mapTest.mapOfEnumString) &&
+        Objects.equals(this.directMap, mapTest.directMap) &&
+        Objects.equals(this.indirectMap, mapTest.indirectMap);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(mapMapOfString, mapOfEnumString, directMap, indirectMap);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class MapTest {\n");
+    sb.append("    mapMapOfString: ").append(toIndentedString(mapMapOfString)).append("\n");
+    sb.append("    mapOfEnumString: ").append(toIndentedString(mapOfEnumString)).append("\n");
+    sb.append("    directMap: ").append(toIndentedString(directMap)).append("\n");
+    sb.append("    indirectMap: ").append(toIndentedString(indirectMap)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
new file mode 100644
index 00000000000..a13f416e352
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -0,0 +1,184 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.OffsetDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.openapitools.client.model.Animal;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * MixedPropertiesAndAdditionalPropertiesClass
+ */
+@JsonPropertyOrder({
+  MixedPropertiesAndAdditionalPropertiesClass.JSON_PROPERTY_UUID,
+  MixedPropertiesAndAdditionalPropertiesClass.JSON_PROPERTY_DATE_TIME,
+  MixedPropertiesAndAdditionalPropertiesClass.JSON_PROPERTY_MAP
+})
+
+public class MixedPropertiesAndAdditionalPropertiesClass {
+  public static final String JSON_PROPERTY_UUID = "uuid";
+  private UUID uuid;
+
+  public static final String JSON_PROPERTY_DATE_TIME = "dateTime";
+  private OffsetDateTime dateTime;
+
+  public static final String JSON_PROPERTY_MAP = "map";
+  private Map<String, Animal> map = null;
+
+
+  public MixedPropertiesAndAdditionalPropertiesClass uuid(UUID uuid) {
+    
+    this.uuid = uuid;
+    return this;
+  }
+
+   /**
+   * Get uuid
+   * @return uuid
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_UUID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public UUID getUuid() {
+    return uuid;
+  }
+
+
+  public void setUuid(UUID uuid) {
+    this.uuid = uuid;
+  }
+
+
+  public MixedPropertiesAndAdditionalPropertiesClass dateTime(OffsetDateTime dateTime) {
+    
+    this.dateTime = dateTime;
+    return this;
+  }
+
+   /**
+   * Get dateTime
+   * @return dateTime
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_DATE_TIME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public OffsetDateTime getDateTime() {
+    return dateTime;
+  }
+
+
+  public void setDateTime(OffsetDateTime dateTime) {
+    this.dateTime = dateTime;
+  }
+
+
+  public MixedPropertiesAndAdditionalPropertiesClass map(Map<String, Animal> map) {
+    
+    this.map = map;
+    return this;
+  }
+
+  public MixedPropertiesAndAdditionalPropertiesClass putMapItem(String key, Animal mapItem) {
+    if (this.map == null) {
+      this.map = new HashMap<>();
+    }
+    this.map.put(key, mapItem);
+    return this;
+  }
+
+   /**
+   * Get map
+   * @return map
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MAP)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Map<String, Animal> getMap() {
+    return map;
+  }
+
+
+  public void setMap(Map<String, Animal> map) {
+    this.map = map;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    MixedPropertiesAndAdditionalPropertiesClass mixedPropertiesAndAdditionalPropertiesClass = (MixedPropertiesAndAdditionalPropertiesClass) o;
+    return Objects.equals(this.uuid, mixedPropertiesAndAdditionalPropertiesClass.uuid) &&
+        Objects.equals(this.dateTime, mixedPropertiesAndAdditionalPropertiesClass.dateTime) &&
+        Objects.equals(this.map, mixedPropertiesAndAdditionalPropertiesClass.map);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(uuid, dateTime, map);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class MixedPropertiesAndAdditionalPropertiesClass {\n");
+    sb.append("    uuid: ").append(toIndentedString(uuid)).append("\n");
+    sb.append("    dateTime: ").append(toIndentedString(dateTime)).append("\n");
+    sb.append("    map: ").append(toIndentedString(map)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Model200Response.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Model200Response.java
new file mode 100644
index 00000000000..e45ce82249c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Model200Response.java
@@ -0,0 +1,137 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Model for testing model name starting with number
+ */
+@ApiModel(description = "Model for testing model name starting with number")
+@JsonPropertyOrder({
+  Model200Response.JSON_PROPERTY_NAME,
+  Model200Response.JSON_PROPERTY_PROPERTY_CLASS
+})
+
+public class Model200Response {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private Integer name;
+
+  public static final String JSON_PROPERTY_PROPERTY_CLASS = "class";
+  private String propertyClass;
+
+
+  public Model200Response name(Integer name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getName() {
+    return name;
+  }
+
+
+  public void setName(Integer name) {
+    this.name = name;
+  }
+
+
+  public Model200Response propertyClass(String propertyClass) {
+    
+    this.propertyClass = propertyClass;
+    return this;
+  }
+
+   /**
+   * Get propertyClass
+   * @return propertyClass
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PROPERTY_CLASS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPropertyClass() {
+    return propertyClass;
+  }
+
+
+  public void setPropertyClass(String propertyClass) {
+    this.propertyClass = propertyClass;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Model200Response _200response = (Model200Response) o;
+    return Objects.equals(this.name, _200response.name) &&
+        Objects.equals(this.propertyClass, _200response.propertyClass);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, propertyClass);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Model200Response {\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("    propertyClass: ").append(toIndentedString(propertyClass)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelApiResponse.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelApiResponse.java
new file mode 100644
index 00000000000..0ef2a65b14f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelApiResponse.java
@@ -0,0 +1,167 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * ModelApiResponse
+ */
+@JsonPropertyOrder({
+  ModelApiResponse.JSON_PROPERTY_CODE,
+  ModelApiResponse.JSON_PROPERTY_TYPE,
+  ModelApiResponse.JSON_PROPERTY_MESSAGE
+})
+
+public class ModelApiResponse {
+  public static final String JSON_PROPERTY_CODE = "code";
+  private Integer code;
+
+  public static final String JSON_PROPERTY_TYPE = "type";
+  private String type;
+
+  public static final String JSON_PROPERTY_MESSAGE = "message";
+  private String message;
+
+
+  public ModelApiResponse code(Integer code) {
+    
+    this.code = code;
+    return this;
+  }
+
+   /**
+   * Get code
+   * @return code
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_CODE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getCode() {
+    return code;
+  }
+
+
+  public void setCode(Integer code) {
+    this.code = code;
+  }
+
+
+  public ModelApiResponse type(String type) {
+    
+    this.type = type;
+    return this;
+  }
+
+   /**
+   * Get type
+   * @return type
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_TYPE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getType() {
+    return type;
+  }
+
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+
+  public ModelApiResponse message(String message) {
+    
+    this.message = message;
+    return this;
+  }
+
+   /**
+   * Get message
+   * @return message
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MESSAGE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getMessage() {
+    return message;
+  }
+
+
+  public void setMessage(String message) {
+    this.message = message;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ModelApiResponse _apiResponse = (ModelApiResponse) o;
+    return Objects.equals(this.code, _apiResponse.code) &&
+        Objects.equals(this.type, _apiResponse.type) &&
+        Objects.equals(this.message, _apiResponse.message);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(code, type, message);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ModelApiResponse {\n");
+    sb.append("    code: ").append(toIndentedString(code)).append("\n");
+    sb.append("    type: ").append(toIndentedString(type)).append("\n");
+    sb.append("    message: ").append(toIndentedString(message)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelReturn.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelReturn.java
new file mode 100644
index 00000000000..f8114f259c8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ModelReturn.java
@@ -0,0 +1,106 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Model for testing reserved words
+ */
+@ApiModel(description = "Model for testing reserved words")
+@JsonPropertyOrder({
+  ModelReturn.JSON_PROPERTY_RETURN
+})
+
+public class ModelReturn {
+  public static final String JSON_PROPERTY_RETURN = "return";
+  private Integer _return;
+
+
+  public ModelReturn _return(Integer _return) {
+    
+    this._return = _return;
+    return this;
+  }
+
+   /**
+   * Get _return
+   * @return _return
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_RETURN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getReturn() {
+    return _return;
+  }
+
+
+  public void setReturn(Integer _return) {
+    this._return = _return;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ModelReturn _return = (ModelReturn) o;
+    return Objects.equals(this._return, _return._return);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(_return);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ModelReturn {\n");
+    sb.append("    _return: ").append(toIndentedString(_return)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Name.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Name.java
new file mode 100644
index 00000000000..bd6824582a0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Name.java
@@ -0,0 +1,181 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Model for testing model name same as property name
+ */
+@ApiModel(description = "Model for testing model name same as property name")
+@JsonPropertyOrder({
+  Name.JSON_PROPERTY_NAME,
+  Name.JSON_PROPERTY_SNAKE_CASE,
+  Name.JSON_PROPERTY_PROPERTY,
+  Name.JSON_PROPERTY_123NUMBER
+})
+
+public class Name {
+  public static final String JSON_PROPERTY_NAME = "name";
+  private Integer name;
+
+  public static final String JSON_PROPERTY_SNAKE_CASE = "snake_case";
+  private Integer snakeCase;
+
+  public static final String JSON_PROPERTY_PROPERTY = "property";
+  private String property;
+
+  public static final String JSON_PROPERTY_123NUMBER = "123Number";
+  private Integer _123number;
+
+
+  public Name name(Integer name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Integer getName() {
+    return name;
+  }
+
+
+  public void setName(Integer name) {
+    this.name = name;
+  }
+
+
+   /**
+   * Get snakeCase
+   * @return snakeCase
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_SNAKE_CASE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getSnakeCase() {
+    return snakeCase;
+  }
+
+
+
+
+  public Name property(String property) {
+    
+    this.property = property;
+    return this;
+  }
+
+   /**
+   * Get property
+   * @return property
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PROPERTY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getProperty() {
+    return property;
+  }
+
+
+  public void setProperty(String property) {
+    this.property = property;
+  }
+
+
+   /**
+   * Get _123number
+   * @return _123number
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_123NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer get123number() {
+    return _123number;
+  }
+
+
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Name name = (Name) o;
+    return Objects.equals(this.name, name.name) &&
+        Objects.equals(this.snakeCase, name.snakeCase) &&
+        Objects.equals(this.property, name.property) &&
+        Objects.equals(this._123number, name._123number);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, snakeCase, property, _123number);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Name {\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("    snakeCase: ").append(toIndentedString(snakeCase)).append("\n");
+    sb.append("    property: ").append(toIndentedString(property)).append("\n");
+    sb.append("    _123number: ").append(toIndentedString(_123number)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/NumberOnly.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/NumberOnly.java
new file mode 100644
index 00000000000..762257cc27f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/NumberOnly.java
@@ -0,0 +1,107 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * NumberOnly
+ */
+@JsonPropertyOrder({
+  NumberOnly.JSON_PROPERTY_JUST_NUMBER
+})
+
+public class NumberOnly {
+  public static final String JSON_PROPERTY_JUST_NUMBER = "JustNumber";
+  private BigDecimal justNumber;
+
+
+  public NumberOnly justNumber(BigDecimal justNumber) {
+    
+    this.justNumber = justNumber;
+    return this;
+  }
+
+   /**
+   * Get justNumber
+   * @return justNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_JUST_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getJustNumber() {
+    return justNumber;
+  }
+
+
+  public void setJustNumber(BigDecimal justNumber) {
+    this.justNumber = justNumber;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    NumberOnly numberOnly = (NumberOnly) o;
+    return Objects.equals(this.justNumber, numberOnly.justNumber);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(justNumber);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class NumberOnly {\n");
+    sb.append("    justNumber: ").append(toIndentedString(justNumber)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Order.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Order.java
new file mode 100644
index 00000000000..ba36ae03345
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Order.java
@@ -0,0 +1,299 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.OffsetDateTime;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Order
+ */
+@JsonPropertyOrder({
+  Order.JSON_PROPERTY_ID,
+  Order.JSON_PROPERTY_PET_ID,
+  Order.JSON_PROPERTY_QUANTITY,
+  Order.JSON_PROPERTY_SHIP_DATE,
+  Order.JSON_PROPERTY_STATUS,
+  Order.JSON_PROPERTY_COMPLETE
+})
+
+public class Order {
+  public static final String JSON_PROPERTY_ID = "id";
+  private Long id;
+
+  public static final String JSON_PROPERTY_PET_ID = "petId";
+  private Long petId;
+
+  public static final String JSON_PROPERTY_QUANTITY = "quantity";
+  private Integer quantity;
+
+  public static final String JSON_PROPERTY_SHIP_DATE = "shipDate";
+  private OffsetDateTime shipDate;
+
+  /**
+   * Order Status
+   */
+  public enum StatusEnum {
+    PLACED("placed"),
+    
+    APPROVED("approved"),
+    
+    DELIVERED("delivered");
+
+    private String value;
+
+    StatusEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static StatusEnum fromValue(String value) {
+      for (StatusEnum b : StatusEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_STATUS = "status";
+  private StatusEnum status;
+
+  public static final String JSON_PROPERTY_COMPLETE = "complete";
+  private Boolean complete = false;
+
+
+  public Order id(Long id) {
+    
+    this.id = id;
+    return this;
+  }
+
+   /**
+   * Get id
+   * @return id
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getId() {
+    return id;
+  }
+
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+
+  public Order petId(Long petId) {
+    
+    this.petId = petId;
+    return this;
+  }
+
+   /**
+   * Get petId
+   * @return petId
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PET_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getPetId() {
+    return petId;
+  }
+
+
+  public void setPetId(Long petId) {
+    this.petId = petId;
+  }
+
+
+  public Order quantity(Integer quantity) {
+    
+    this.quantity = quantity;
+    return this;
+  }
+
+   /**
+   * Get quantity
+   * @return quantity
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_QUANTITY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getQuantity() {
+    return quantity;
+  }
+
+
+  public void setQuantity(Integer quantity) {
+    this.quantity = quantity;
+  }
+
+
+  public Order shipDate(OffsetDateTime shipDate) {
+    
+    this.shipDate = shipDate;
+    return this;
+  }
+
+   /**
+   * Get shipDate
+   * @return shipDate
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_SHIP_DATE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public OffsetDateTime getShipDate() {
+    return shipDate;
+  }
+
+
+  public void setShipDate(OffsetDateTime shipDate) {
+    this.shipDate = shipDate;
+  }
+
+
+  public Order status(StatusEnum status) {
+    
+    this.status = status;
+    return this;
+  }
+
+   /**
+   * Order Status
+   * @return status
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "Order Status")
+  @JsonProperty(JSON_PROPERTY_STATUS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public StatusEnum getStatus() {
+    return status;
+  }
+
+
+  public void setStatus(StatusEnum status) {
+    this.status = status;
+  }
+
+
+  public Order complete(Boolean complete) {
+    
+    this.complete = complete;
+    return this;
+  }
+
+   /**
+   * Get complete
+   * @return complete
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_COMPLETE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isComplete() {
+    return complete;
+  }
+
+
+  public void setComplete(Boolean complete) {
+    this.complete = complete;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Order order = (Order) o;
+    return Objects.equals(this.id, order.id) &&
+        Objects.equals(this.petId, order.petId) &&
+        Objects.equals(this.quantity, order.quantity) &&
+        Objects.equals(this.shipDate, order.shipDate) &&
+        Objects.equals(this.status, order.status) &&
+        Objects.equals(this.complete, order.complete);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id, petId, quantity, shipDate, status, complete);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Order {\n");
+    sb.append("    id: ").append(toIndentedString(id)).append("\n");
+    sb.append("    petId: ").append(toIndentedString(petId)).append("\n");
+    sb.append("    quantity: ").append(toIndentedString(quantity)).append("\n");
+    sb.append("    shipDate: ").append(toIndentedString(shipDate)).append("\n");
+    sb.append("    status: ").append(toIndentedString(status)).append("\n");
+    sb.append("    complete: ").append(toIndentedString(complete)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterComposite.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterComposite.java
new file mode 100644
index 00000000000..cc608363ef1
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterComposite.java
@@ -0,0 +1,169 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * OuterComposite
+ */
+@JsonPropertyOrder({
+  OuterComposite.JSON_PROPERTY_MY_NUMBER,
+  OuterComposite.JSON_PROPERTY_MY_STRING,
+  OuterComposite.JSON_PROPERTY_MY_BOOLEAN
+})
+
+public class OuterComposite {
+  public static final String JSON_PROPERTY_MY_NUMBER = "my_number";
+  private BigDecimal myNumber;
+
+  public static final String JSON_PROPERTY_MY_STRING = "my_string";
+  private String myString;
+
+  public static final String JSON_PROPERTY_MY_BOOLEAN = "my_boolean";
+  private Boolean myBoolean;
+
+
+  public OuterComposite myNumber(BigDecimal myNumber) {
+    
+    this.myNumber = myNumber;
+    return this;
+  }
+
+   /**
+   * Get myNumber
+   * @return myNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MY_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getMyNumber() {
+    return myNumber;
+  }
+
+
+  public void setMyNumber(BigDecimal myNumber) {
+    this.myNumber = myNumber;
+  }
+
+
+  public OuterComposite myString(String myString) {
+    
+    this.myString = myString;
+    return this;
+  }
+
+   /**
+   * Get myString
+   * @return myString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MY_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getMyString() {
+    return myString;
+  }
+
+
+  public void setMyString(String myString) {
+    this.myString = myString;
+  }
+
+
+  public OuterComposite myBoolean(Boolean myBoolean) {
+    
+    this.myBoolean = myBoolean;
+    return this;
+  }
+
+   /**
+   * Get myBoolean
+   * @return myBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_MY_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isMyBoolean() {
+    return myBoolean;
+  }
+
+
+  public void setMyBoolean(Boolean myBoolean) {
+    this.myBoolean = myBoolean;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    OuterComposite outerComposite = (OuterComposite) o;
+    return Objects.equals(this.myNumber, outerComposite.myNumber) &&
+        Objects.equals(this.myString, outerComposite.myString) &&
+        Objects.equals(this.myBoolean, outerComposite.myBoolean);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(myNumber, myString, myBoolean);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class OuterComposite {\n");
+    sb.append("    myNumber: ").append(toIndentedString(myNumber)).append("\n");
+    sb.append("    myString: ").append(toIndentedString(myString)).append("\n");
+    sb.append("    myBoolean: ").append(toIndentedString(myBoolean)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterEnum.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterEnum.java
new file mode 100644
index 00000000000..537a046fbed
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/OuterEnum.java
@@ -0,0 +1,63 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets OuterEnum
+ */
+public enum OuterEnum {
+  
+  PLACED("placed"),
+  
+  APPROVED("approved"),
+  
+  DELIVERED("delivered");
+
+  private String value;
+
+  OuterEnum(String value) {
+    this.value = value;
+  }
+
+  @JsonValue
+  public String getValue() {
+    return value;
+  }
+
+  @Override
+  public String toString() {
+    return String.valueOf(value);
+  }
+
+  @JsonCreator
+  public static OuterEnum fromValue(String value) {
+    for (OuterEnum b : OuterEnum.values()) {
+      if (b.value.equals(value)) {
+        return b;
+      }
+    }
+    throw new IllegalArgumentException("Unexpected value '" + value + "'");
+  }
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Pet.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Pet.java
new file mode 100644
index 00000000000..6a05dd15032
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Pet.java
@@ -0,0 +1,316 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.client.model.Category;
+import org.openapitools.client.model.Tag;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Pet
+ */
+@JsonPropertyOrder({
+  Pet.JSON_PROPERTY_ID,
+  Pet.JSON_PROPERTY_CATEGORY,
+  Pet.JSON_PROPERTY_NAME,
+  Pet.JSON_PROPERTY_PHOTO_URLS,
+  Pet.JSON_PROPERTY_TAGS,
+  Pet.JSON_PROPERTY_STATUS
+})
+
+public class Pet {
+  public static final String JSON_PROPERTY_ID = "id";
+  private Long id;
+
+  public static final String JSON_PROPERTY_CATEGORY = "category";
+  private Category category;
+
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+  public static final String JSON_PROPERTY_PHOTO_URLS = "photoUrls";
+  private List<String> photoUrls = new ArrayList<>();
+
+  public static final String JSON_PROPERTY_TAGS = "tags";
+  private List<Tag> tags = null;
+
+  /**
+   * pet status in the store
+   */
+  public enum StatusEnum {
+    AVAILABLE("available"),
+    
+    PENDING("pending"),
+    
+    SOLD("sold");
+
+    private String value;
+
+    StatusEnum(String value) {
+      this.value = value;
+    }
+
+    @JsonValue
+    public String getValue() {
+      return value;
+    }
+
+    @Override
+    public String toString() {
+      return String.valueOf(value);
+    }
+
+    @JsonCreator
+    public static StatusEnum fromValue(String value) {
+      for (StatusEnum b : StatusEnum.values()) {
+        if (b.value.equals(value)) {
+          return b;
+        }
+      }
+      throw new IllegalArgumentException("Unexpected value '" + value + "'");
+    }
+  }
+
+  public static final String JSON_PROPERTY_STATUS = "status";
+  private StatusEnum status;
+
+
+  public Pet id(Long id) {
+    
+    this.id = id;
+    return this;
+  }
+
+   /**
+   * Get id
+   * @return id
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getId() {
+    return id;
+  }
+
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+
+  public Pet category(Category category) {
+    
+    this.category = category;
+    return this;
+  }
+
+   /**
+   * Get category
+   * @return category
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_CATEGORY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Category getCategory() {
+    return category;
+  }
+
+
+  public void setCategory(Category category) {
+    this.category = category;
+  }
+
+
+  public Pet name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @NotNull
+  @ApiModelProperty(example = "doggie", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  public Pet photoUrls(List<String> photoUrls) {
+    
+    this.photoUrls = photoUrls;
+    return this;
+  }
+
+  public Pet addPhotoUrlsItem(String photoUrlsItem) {
+    this.photoUrls.add(photoUrlsItem);
+    return this;
+  }
+
+   /**
+   * Get photoUrls
+   * @return photoUrls
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_PHOTO_URLS)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public List<String> getPhotoUrls() {
+    return photoUrls;
+  }
+
+
+  public void setPhotoUrls(List<String> photoUrls) {
+    this.photoUrls = photoUrls;
+  }
+
+
+  public Pet tags(List<Tag> tags) {
+    
+    this.tags = tags;
+    return this;
+  }
+
+  public Pet addTagsItem(Tag tagsItem) {
+    if (this.tags == null) {
+      this.tags = new ArrayList<>();
+    }
+    this.tags.add(tagsItem);
+    return this;
+  }
+
+   /**
+   * Get tags
+   * @return tags
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_TAGS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Tag> getTags() {
+    return tags;
+  }
+
+
+  public void setTags(List<Tag> tags) {
+    this.tags = tags;
+  }
+
+
+  public Pet status(StatusEnum status) {
+    
+    this.status = status;
+    return this;
+  }
+
+   /**
+   * pet status in the store
+   * @return status
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "pet status in the store")
+  @JsonProperty(JSON_PROPERTY_STATUS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public StatusEnum getStatus() {
+    return status;
+  }
+
+
+  public void setStatus(StatusEnum status) {
+    this.status = status;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Pet pet = (Pet) o;
+    return Objects.equals(this.id, pet.id) &&
+        Objects.equals(this.category, pet.category) &&
+        Objects.equals(this.name, pet.name) &&
+        Objects.equals(this.photoUrls, pet.photoUrls) &&
+        Objects.equals(this.tags, pet.tags) &&
+        Objects.equals(this.status, pet.status);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id, category, name, photoUrls, tags, status);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Pet {\n");
+    sb.append("    id: ").append(toIndentedString(id)).append("\n");
+    sb.append("    category: ").append(toIndentedString(category)).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("    photoUrls: ").append(toIndentedString(photoUrls)).append("\n");
+    sb.append("    tags: ").append(toIndentedString(tags)).append("\n");
+    sb.append("    status: ").append(toIndentedString(status)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java
new file mode 100644
index 00000000000..e09c5fb1779
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java
@@ -0,0 +1,127 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * ReadOnlyFirst
+ */
+@JsonPropertyOrder({
+  ReadOnlyFirst.JSON_PROPERTY_BAR,
+  ReadOnlyFirst.JSON_PROPERTY_BAZ
+})
+
+public class ReadOnlyFirst {
+  public static final String JSON_PROPERTY_BAR = "bar";
+  private String bar;
+
+  public static final String JSON_PROPERTY_BAZ = "baz";
+  private String baz;
+
+
+   /**
+   * Get bar
+   * @return bar
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BAR)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getBar() {
+    return bar;
+  }
+
+
+
+
+  public ReadOnlyFirst baz(String baz) {
+    
+    this.baz = baz;
+    return this;
+  }
+
+   /**
+   * Get baz
+   * @return baz
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_BAZ)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getBaz() {
+    return baz;
+  }
+
+
+  public void setBaz(String baz) {
+    this.baz = baz;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    ReadOnlyFirst readOnlyFirst = (ReadOnlyFirst) o;
+    return Objects.equals(this.bar, readOnlyFirst.bar) &&
+        Objects.equals(this.baz, readOnlyFirst.baz);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(bar, baz);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class ReadOnlyFirst {\n");
+    sb.append("    bar: ").append(toIndentedString(bar)).append("\n");
+    sb.append("    baz: ").append(toIndentedString(baz)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/SpecialModelName.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/SpecialModelName.java
new file mode 100644
index 00000000000..b52f4293aa9
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/SpecialModelName.java
@@ -0,0 +1,105 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * SpecialModelName
+ */
+@JsonPropertyOrder({
+  SpecialModelName.JSON_PROPERTY_$_SPECIAL_PROPERTY_NAME
+})
+
+public class SpecialModelName {
+  public static final String JSON_PROPERTY_$_SPECIAL_PROPERTY_NAME = "$special[property.name]";
+  private Long $specialPropertyName;
+
+
+  public SpecialModelName $specialPropertyName(Long $specialPropertyName) {
+    
+    this.$specialPropertyName = $specialPropertyName;
+    return this;
+  }
+
+   /**
+   * Get $specialPropertyName
+   * @return $specialPropertyName
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_$_SPECIAL_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long get$SpecialPropertyName() {
+    return $specialPropertyName;
+  }
+
+
+  public void set$SpecialPropertyName(Long $specialPropertyName) {
+    this.$specialPropertyName = $specialPropertyName;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    SpecialModelName $specialModelName = (SpecialModelName) o;
+    return Objects.equals(this.$specialPropertyName, $specialModelName.$specialPropertyName);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash($specialPropertyName);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class SpecialModelName {\n");
+    sb.append("    $specialPropertyName: ").append(toIndentedString($specialPropertyName)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Tag.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Tag.java
new file mode 100644
index 00000000000..5ee4236adb1
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/Tag.java
@@ -0,0 +1,136 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * Tag
+ */
+@JsonPropertyOrder({
+  Tag.JSON_PROPERTY_ID,
+  Tag.JSON_PROPERTY_NAME
+})
+
+public class Tag {
+  public static final String JSON_PROPERTY_ID = "id";
+  private Long id;
+
+  public static final String JSON_PROPERTY_NAME = "name";
+  private String name;
+
+
+  public Tag id(Long id) {
+    
+    this.id = id;
+    return this;
+  }
+
+   /**
+   * Get id
+   * @return id
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getId() {
+    return id;
+  }
+
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+
+  public Tag name(String name) {
+    
+    this.name = name;
+    return this;
+  }
+
+   /**
+   * Get name
+   * @return name
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getName() {
+    return name;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Tag tag = (Tag) o;
+    return Objects.equals(this.id, tag.id) &&
+        Objects.equals(this.name, tag.name);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id, name);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Tag {\n");
+    sb.append("    id: ").append(toIndentedString(id)).append("\n");
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderDefault.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderDefault.java
new file mode 100644
index 00000000000..4a024c4ae81
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderDefault.java
@@ -0,0 +1,238 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * TypeHolderDefault
+ */
+@JsonPropertyOrder({
+  TypeHolderDefault.JSON_PROPERTY_STRING_ITEM,
+  TypeHolderDefault.JSON_PROPERTY_NUMBER_ITEM,
+  TypeHolderDefault.JSON_PROPERTY_INTEGER_ITEM,
+  TypeHolderDefault.JSON_PROPERTY_BOOL_ITEM,
+  TypeHolderDefault.JSON_PROPERTY_ARRAY_ITEM
+})
+
+public class TypeHolderDefault {
+  public static final String JSON_PROPERTY_STRING_ITEM = "string_item";
+  private String stringItem = "what";
+
+  public static final String JSON_PROPERTY_NUMBER_ITEM = "number_item";
+  private BigDecimal numberItem;
+
+  public static final String JSON_PROPERTY_INTEGER_ITEM = "integer_item";
+  private Integer integerItem;
+
+  public static final String JSON_PROPERTY_BOOL_ITEM = "bool_item";
+  private Boolean boolItem = true;
+
+  public static final String JSON_PROPERTY_ARRAY_ITEM = "array_item";
+  private List<Integer> arrayItem = new ArrayList<>();
+
+
+  public TypeHolderDefault stringItem(String stringItem) {
+    
+    this.stringItem = stringItem;
+    return this;
+  }
+
+   /**
+   * Get stringItem
+   * @return stringItem
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_STRING_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getStringItem() {
+    return stringItem;
+  }
+
+
+  public void setStringItem(String stringItem) {
+    this.stringItem = stringItem;
+  }
+
+
+  public TypeHolderDefault numberItem(BigDecimal numberItem) {
+    
+    this.numberItem = numberItem;
+    return this;
+  }
+
+   /**
+   * Get numberItem
+   * @return numberItem
+  **/
+  @NotNull
+  @Valid
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NUMBER_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public BigDecimal getNumberItem() {
+    return numberItem;
+  }
+
+
+  public void setNumberItem(BigDecimal numberItem) {
+    this.numberItem = numberItem;
+  }
+
+
+  public TypeHolderDefault integerItem(Integer integerItem) {
+    
+    this.integerItem = integerItem;
+    return this;
+  }
+
+   /**
+   * Get integerItem
+   * @return integerItem
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_INTEGER_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Integer getIntegerItem() {
+    return integerItem;
+  }
+
+
+  public void setIntegerItem(Integer integerItem) {
+    this.integerItem = integerItem;
+  }
+
+
+  public TypeHolderDefault boolItem(Boolean boolItem) {
+    
+    this.boolItem = boolItem;
+    return this;
+  }
+
+   /**
+   * Get boolItem
+   * @return boolItem
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_BOOL_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Boolean isBoolItem() {
+    return boolItem;
+  }
+
+
+  public void setBoolItem(Boolean boolItem) {
+    this.boolItem = boolItem;
+  }
+
+
+  public TypeHolderDefault arrayItem(List<Integer> arrayItem) {
+    
+    this.arrayItem = arrayItem;
+    return this;
+  }
+
+  public TypeHolderDefault addArrayItemItem(Integer arrayItemItem) {
+    this.arrayItem.add(arrayItemItem);
+    return this;
+  }
+
+   /**
+   * Get arrayItem
+   * @return arrayItem
+  **/
+  @NotNull
+  @ApiModelProperty(required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public List<Integer> getArrayItem() {
+    return arrayItem;
+  }
+
+
+  public void setArrayItem(List<Integer> arrayItem) {
+    this.arrayItem = arrayItem;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    TypeHolderDefault typeHolderDefault = (TypeHolderDefault) o;
+    return Objects.equals(this.stringItem, typeHolderDefault.stringItem) &&
+        Objects.equals(this.numberItem, typeHolderDefault.numberItem) &&
+        Objects.equals(this.integerItem, typeHolderDefault.integerItem) &&
+        Objects.equals(this.boolItem, typeHolderDefault.boolItem) &&
+        Objects.equals(this.arrayItem, typeHolderDefault.arrayItem);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(stringItem, numberItem, integerItem, boolItem, arrayItem);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class TypeHolderDefault {\n");
+    sb.append("    stringItem: ").append(toIndentedString(stringItem)).append("\n");
+    sb.append("    numberItem: ").append(toIndentedString(numberItem)).append("\n");
+    sb.append("    integerItem: ").append(toIndentedString(integerItem)).append("\n");
+    sb.append("    boolItem: ").append(toIndentedString(boolItem)).append("\n");
+    sb.append("    arrayItem: ").append(toIndentedString(arrayItem)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderExample.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderExample.java
new file mode 100644
index 00000000000..bd0ba57eac0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/TypeHolderExample.java
@@ -0,0 +1,269 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * TypeHolderExample
+ */
+@JsonPropertyOrder({
+  TypeHolderExample.JSON_PROPERTY_STRING_ITEM,
+  TypeHolderExample.JSON_PROPERTY_NUMBER_ITEM,
+  TypeHolderExample.JSON_PROPERTY_FLOAT_ITEM,
+  TypeHolderExample.JSON_PROPERTY_INTEGER_ITEM,
+  TypeHolderExample.JSON_PROPERTY_BOOL_ITEM,
+  TypeHolderExample.JSON_PROPERTY_ARRAY_ITEM
+})
+
+public class TypeHolderExample {
+  public static final String JSON_PROPERTY_STRING_ITEM = "string_item";
+  private String stringItem;
+
+  public static final String JSON_PROPERTY_NUMBER_ITEM = "number_item";
+  private BigDecimal numberItem;
+
+  public static final String JSON_PROPERTY_FLOAT_ITEM = "float_item";
+  private Float floatItem;
+
+  public static final String JSON_PROPERTY_INTEGER_ITEM = "integer_item";
+  private Integer integerItem;
+
+  public static final String JSON_PROPERTY_BOOL_ITEM = "bool_item";
+  private Boolean boolItem;
+
+  public static final String JSON_PROPERTY_ARRAY_ITEM = "array_item";
+  private List<Integer> arrayItem = new ArrayList<>();
+
+
+  public TypeHolderExample stringItem(String stringItem) {
+    
+    this.stringItem = stringItem;
+    return this;
+  }
+
+   /**
+   * Get stringItem
+   * @return stringItem
+  **/
+  @NotNull
+  @ApiModelProperty(example = "what", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_STRING_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public String getStringItem() {
+    return stringItem;
+  }
+
+
+  public void setStringItem(String stringItem) {
+    this.stringItem = stringItem;
+  }
+
+
+  public TypeHolderExample numberItem(BigDecimal numberItem) {
+    
+    this.numberItem = numberItem;
+    return this;
+  }
+
+   /**
+   * Get numberItem
+   * @return numberItem
+  **/
+  @NotNull
+  @Valid
+  @ApiModelProperty(example = "1.234", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_NUMBER_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public BigDecimal getNumberItem() {
+    return numberItem;
+  }
+
+
+  public void setNumberItem(BigDecimal numberItem) {
+    this.numberItem = numberItem;
+  }
+
+
+  public TypeHolderExample floatItem(Float floatItem) {
+    
+    this.floatItem = floatItem;
+    return this;
+  }
+
+   /**
+   * Get floatItem
+   * @return floatItem
+  **/
+  @NotNull
+  @ApiModelProperty(example = "1.234", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_FLOAT_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Float getFloatItem() {
+    return floatItem;
+  }
+
+
+  public void setFloatItem(Float floatItem) {
+    this.floatItem = floatItem;
+  }
+
+
+  public TypeHolderExample integerItem(Integer integerItem) {
+    
+    this.integerItem = integerItem;
+    return this;
+  }
+
+   /**
+   * Get integerItem
+   * @return integerItem
+  **/
+  @NotNull
+  @ApiModelProperty(example = "-2", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_INTEGER_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Integer getIntegerItem() {
+    return integerItem;
+  }
+
+
+  public void setIntegerItem(Integer integerItem) {
+    this.integerItem = integerItem;
+  }
+
+
+  public TypeHolderExample boolItem(Boolean boolItem) {
+    
+    this.boolItem = boolItem;
+    return this;
+  }
+
+   /**
+   * Get boolItem
+   * @return boolItem
+  **/
+  @NotNull
+  @ApiModelProperty(example = "true", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_BOOL_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public Boolean isBoolItem() {
+    return boolItem;
+  }
+
+
+  public void setBoolItem(Boolean boolItem) {
+    this.boolItem = boolItem;
+  }
+
+
+  public TypeHolderExample arrayItem(List<Integer> arrayItem) {
+    
+    this.arrayItem = arrayItem;
+    return this;
+  }
+
+  public TypeHolderExample addArrayItemItem(Integer arrayItemItem) {
+    this.arrayItem.add(arrayItemItem);
+    return this;
+  }
+
+   /**
+   * Get arrayItem
+   * @return arrayItem
+  **/
+  @NotNull
+  @ApiModelProperty(example = "[0, 1, 2, 3]", required = true, value = "")
+  @JsonProperty(JSON_PROPERTY_ARRAY_ITEM)
+  @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+  public List<Integer> getArrayItem() {
+    return arrayItem;
+  }
+
+
+  public void setArrayItem(List<Integer> arrayItem) {
+    this.arrayItem = arrayItem;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    TypeHolderExample typeHolderExample = (TypeHolderExample) o;
+    return Objects.equals(this.stringItem, typeHolderExample.stringItem) &&
+        Objects.equals(this.numberItem, typeHolderExample.numberItem) &&
+        Objects.equals(this.floatItem, typeHolderExample.floatItem) &&
+        Objects.equals(this.integerItem, typeHolderExample.integerItem) &&
+        Objects.equals(this.boolItem, typeHolderExample.boolItem) &&
+        Objects.equals(this.arrayItem, typeHolderExample.arrayItem);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(stringItem, numberItem, floatItem, integerItem, boolItem, arrayItem);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class TypeHolderExample {\n");
+    sb.append("    stringItem: ").append(toIndentedString(stringItem)).append("\n");
+    sb.append("    numberItem: ").append(toIndentedString(numberItem)).append("\n");
+    sb.append("    floatItem: ").append(toIndentedString(floatItem)).append("\n");
+    sb.append("    integerItem: ").append(toIndentedString(integerItem)).append("\n");
+    sb.append("    boolItem: ").append(toIndentedString(boolItem)).append("\n");
+    sb.append("    arrayItem: ").append(toIndentedString(arrayItem)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/User.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/User.java
new file mode 100644
index 00000000000..33ed7c7c3ab
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/User.java
@@ -0,0 +1,322 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * User
+ */
+@JsonPropertyOrder({
+  User.JSON_PROPERTY_ID,
+  User.JSON_PROPERTY_USERNAME,
+  User.JSON_PROPERTY_FIRST_NAME,
+  User.JSON_PROPERTY_LAST_NAME,
+  User.JSON_PROPERTY_EMAIL,
+  User.JSON_PROPERTY_PASSWORD,
+  User.JSON_PROPERTY_PHONE,
+  User.JSON_PROPERTY_USER_STATUS
+})
+
+public class User {
+  public static final String JSON_PROPERTY_ID = "id";
+  private Long id;
+
+  public static final String JSON_PROPERTY_USERNAME = "username";
+  private String username;
+
+  public static final String JSON_PROPERTY_FIRST_NAME = "firstName";
+  private String firstName;
+
+  public static final String JSON_PROPERTY_LAST_NAME = "lastName";
+  private String lastName;
+
+  public static final String JSON_PROPERTY_EMAIL = "email";
+  private String email;
+
+  public static final String JSON_PROPERTY_PASSWORD = "password";
+  private String password;
+
+  public static final String JSON_PROPERTY_PHONE = "phone";
+  private String phone;
+
+  public static final String JSON_PROPERTY_USER_STATUS = "userStatus";
+  private Integer userStatus;
+
+
+  public User id(Long id) {
+    
+    this.id = id;
+    return this;
+  }
+
+   /**
+   * Get id
+   * @return id
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_ID)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Long getId() {
+    return id;
+  }
+
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+
+  public User username(String username) {
+    
+    this.username = username;
+    return this;
+  }
+
+   /**
+   * Get username
+   * @return username
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_USERNAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getUsername() {
+    return username;
+  }
+
+
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+
+  public User firstName(String firstName) {
+    
+    this.firstName = firstName;
+    return this;
+  }
+
+   /**
+   * Get firstName
+   * @return firstName
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_FIRST_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getFirstName() {
+    return firstName;
+  }
+
+
+  public void setFirstName(String firstName) {
+    this.firstName = firstName;
+  }
+
+
+  public User lastName(String lastName) {
+    
+    this.lastName = lastName;
+    return this;
+  }
+
+   /**
+   * Get lastName
+   * @return lastName
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_LAST_NAME)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getLastName() {
+    return lastName;
+  }
+
+
+  public void setLastName(String lastName) {
+    this.lastName = lastName;
+  }
+
+
+  public User email(String email) {
+    
+    this.email = email;
+    return this;
+  }
+
+   /**
+   * Get email
+   * @return email
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_EMAIL)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getEmail() {
+    return email;
+  }
+
+
+  public void setEmail(String email) {
+    this.email = email;
+  }
+
+
+  public User password(String password) {
+    
+    this.password = password;
+    return this;
+  }
+
+   /**
+   * Get password
+   * @return password
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PASSWORD)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPassword() {
+    return password;
+  }
+
+
+  public void setPassword(String password) {
+    this.password = password;
+  }
+
+
+  public User phone(String phone) {
+    
+    this.phone = phone;
+    return this;
+  }
+
+   /**
+   * Get phone
+   * @return phone
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PHONE)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPhone() {
+    return phone;
+  }
+
+
+  public void setPhone(String phone) {
+    this.phone = phone;
+  }
+
+
+  public User userStatus(Integer userStatus) {
+    
+    this.userStatus = userStatus;
+    return this;
+  }
+
+   /**
+   * User Status
+   * @return userStatus
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "User Status")
+  @JsonProperty(JSON_PROPERTY_USER_STATUS)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getUserStatus() {
+    return userStatus;
+  }
+
+
+  public void setUserStatus(Integer userStatus) {
+    this.userStatus = userStatus;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    User user = (User) o;
+    return Objects.equals(this.id, user.id) &&
+        Objects.equals(this.username, user.username) &&
+        Objects.equals(this.firstName, user.firstName) &&
+        Objects.equals(this.lastName, user.lastName) &&
+        Objects.equals(this.email, user.email) &&
+        Objects.equals(this.password, user.password) &&
+        Objects.equals(this.phone, user.phone) &&
+        Objects.equals(this.userStatus, user.userStatus);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(id, username, firstName, lastName, email, password, phone, userStatus);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class User {\n");
+    sb.append("    id: ").append(toIndentedString(id)).append("\n");
+    sb.append("    username: ").append(toIndentedString(username)).append("\n");
+    sb.append("    firstName: ").append(toIndentedString(firstName)).append("\n");
+    sb.append("    lastName: ").append(toIndentedString(lastName)).append("\n");
+    sb.append("    email: ").append(toIndentedString(email)).append("\n");
+    sb.append("    password: ").append(toIndentedString(password)).append("\n");
+    sb.append("    phone: ").append(toIndentedString(phone)).append("\n");
+    sb.append("    userStatus: ").append(toIndentedString(userStatus)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/XmlItem.java
new file mode 100644
index 00000000000..64aeb37138a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/main/java/org/openapitools/client/model/XmlItem.java
@@ -0,0 +1,1053 @@
+/*
+ * 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.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+import org.hibernate.validator.constraints.*;
+
+/**
+ * XmlItem
+ */
+@JsonPropertyOrder({
+  XmlItem.JSON_PROPERTY_ATTRIBUTE_STRING,
+  XmlItem.JSON_PROPERTY_ATTRIBUTE_NUMBER,
+  XmlItem.JSON_PROPERTY_ATTRIBUTE_INTEGER,
+  XmlItem.JSON_PROPERTY_ATTRIBUTE_BOOLEAN,
+  XmlItem.JSON_PROPERTY_WRAPPED_ARRAY,
+  XmlItem.JSON_PROPERTY_NAME_STRING,
+  XmlItem.JSON_PROPERTY_NAME_NUMBER,
+  XmlItem.JSON_PROPERTY_NAME_INTEGER,
+  XmlItem.JSON_PROPERTY_NAME_BOOLEAN,
+  XmlItem.JSON_PROPERTY_NAME_ARRAY,
+  XmlItem.JSON_PROPERTY_NAME_WRAPPED_ARRAY,
+  XmlItem.JSON_PROPERTY_PREFIX_STRING,
+  XmlItem.JSON_PROPERTY_PREFIX_NUMBER,
+  XmlItem.JSON_PROPERTY_PREFIX_INTEGER,
+  XmlItem.JSON_PROPERTY_PREFIX_BOOLEAN,
+  XmlItem.JSON_PROPERTY_PREFIX_ARRAY,
+  XmlItem.JSON_PROPERTY_PREFIX_WRAPPED_ARRAY,
+  XmlItem.JSON_PROPERTY_NAMESPACE_STRING,
+  XmlItem.JSON_PROPERTY_NAMESPACE_NUMBER,
+  XmlItem.JSON_PROPERTY_NAMESPACE_INTEGER,
+  XmlItem.JSON_PROPERTY_NAMESPACE_BOOLEAN,
+  XmlItem.JSON_PROPERTY_NAMESPACE_ARRAY,
+  XmlItem.JSON_PROPERTY_NAMESPACE_WRAPPED_ARRAY,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_STRING,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_NUMBER,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_INTEGER,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_BOOLEAN,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_ARRAY,
+  XmlItem.JSON_PROPERTY_PREFIX_NS_WRAPPED_ARRAY
+})
+
+public class XmlItem {
+  public static final String JSON_PROPERTY_ATTRIBUTE_STRING = "attribute_string";
+  private String attributeString;
+
+  public static final String JSON_PROPERTY_ATTRIBUTE_NUMBER = "attribute_number";
+  private BigDecimal attributeNumber;
+
+  public static final String JSON_PROPERTY_ATTRIBUTE_INTEGER = "attribute_integer";
+  private Integer attributeInteger;
+
+  public static final String JSON_PROPERTY_ATTRIBUTE_BOOLEAN = "attribute_boolean";
+  private Boolean attributeBoolean;
+
+  public static final String JSON_PROPERTY_WRAPPED_ARRAY = "wrapped_array";
+  private List<Integer> wrappedArray = null;
+
+  public static final String JSON_PROPERTY_NAME_STRING = "name_string";
+  private String nameString;
+
+  public static final String JSON_PROPERTY_NAME_NUMBER = "name_number";
+  private BigDecimal nameNumber;
+
+  public static final String JSON_PROPERTY_NAME_INTEGER = "name_integer";
+  private Integer nameInteger;
+
+  public static final String JSON_PROPERTY_NAME_BOOLEAN = "name_boolean";
+  private Boolean nameBoolean;
+
+  public static final String JSON_PROPERTY_NAME_ARRAY = "name_array";
+  private List<Integer> nameArray = null;
+
+  public static final String JSON_PROPERTY_NAME_WRAPPED_ARRAY = "name_wrapped_array";
+  private List<Integer> nameWrappedArray = null;
+
+  public static final String JSON_PROPERTY_PREFIX_STRING = "prefix_string";
+  private String prefixString;
+
+  public static final String JSON_PROPERTY_PREFIX_NUMBER = "prefix_number";
+  private BigDecimal prefixNumber;
+
+  public static final String JSON_PROPERTY_PREFIX_INTEGER = "prefix_integer";
+  private Integer prefixInteger;
+
+  public static final String JSON_PROPERTY_PREFIX_BOOLEAN = "prefix_boolean";
+  private Boolean prefixBoolean;
+
+  public static final String JSON_PROPERTY_PREFIX_ARRAY = "prefix_array";
+  private List<Integer> prefixArray = null;
+
+  public static final String JSON_PROPERTY_PREFIX_WRAPPED_ARRAY = "prefix_wrapped_array";
+  private List<Integer> prefixWrappedArray = null;
+
+  public static final String JSON_PROPERTY_NAMESPACE_STRING = "namespace_string";
+  private String namespaceString;
+
+  public static final String JSON_PROPERTY_NAMESPACE_NUMBER = "namespace_number";
+  private BigDecimal namespaceNumber;
+
+  public static final String JSON_PROPERTY_NAMESPACE_INTEGER = "namespace_integer";
+  private Integer namespaceInteger;
+
+  public static final String JSON_PROPERTY_NAMESPACE_BOOLEAN = "namespace_boolean";
+  private Boolean namespaceBoolean;
+
+  public static final String JSON_PROPERTY_NAMESPACE_ARRAY = "namespace_array";
+  private List<Integer> namespaceArray = null;
+
+  public static final String JSON_PROPERTY_NAMESPACE_WRAPPED_ARRAY = "namespace_wrapped_array";
+  private List<Integer> namespaceWrappedArray = null;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_STRING = "prefix_ns_string";
+  private String prefixNsString;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_NUMBER = "prefix_ns_number";
+  private BigDecimal prefixNsNumber;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_INTEGER = "prefix_ns_integer";
+  private Integer prefixNsInteger;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_BOOLEAN = "prefix_ns_boolean";
+  private Boolean prefixNsBoolean;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_ARRAY = "prefix_ns_array";
+  private List<Integer> prefixNsArray = null;
+
+  public static final String JSON_PROPERTY_PREFIX_NS_WRAPPED_ARRAY = "prefix_ns_wrapped_array";
+  private List<Integer> prefixNsWrappedArray = null;
+
+
+  public XmlItem attributeString(String attributeString) {
+    
+    this.attributeString = attributeString;
+    return this;
+  }
+
+   /**
+   * Get attributeString
+   * @return attributeString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty(JSON_PROPERTY_ATTRIBUTE_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getAttributeString() {
+    return attributeString;
+  }
+
+
+  public void setAttributeString(String attributeString) {
+    this.attributeString = attributeString;
+  }
+
+
+  public XmlItem attributeNumber(BigDecimal attributeNumber) {
+    
+    this.attributeNumber = attributeNumber;
+    return this;
+  }
+
+   /**
+   * Get attributeNumber
+   * @return attributeNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty(JSON_PROPERTY_ATTRIBUTE_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getAttributeNumber() {
+    return attributeNumber;
+  }
+
+
+  public void setAttributeNumber(BigDecimal attributeNumber) {
+    this.attributeNumber = attributeNumber;
+  }
+
+
+  public XmlItem attributeInteger(Integer attributeInteger) {
+    
+    this.attributeInteger = attributeInteger;
+    return this;
+  }
+
+   /**
+   * Get attributeInteger
+   * @return attributeInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty(JSON_PROPERTY_ATTRIBUTE_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getAttributeInteger() {
+    return attributeInteger;
+  }
+
+
+  public void setAttributeInteger(Integer attributeInteger) {
+    this.attributeInteger = attributeInteger;
+  }
+
+
+  public XmlItem attributeBoolean(Boolean attributeBoolean) {
+    
+    this.attributeBoolean = attributeBoolean;
+    return this;
+  }
+
+   /**
+   * Get attributeBoolean
+   * @return attributeBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty(JSON_PROPERTY_ATTRIBUTE_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isAttributeBoolean() {
+    return attributeBoolean;
+  }
+
+
+  public void setAttributeBoolean(Boolean attributeBoolean) {
+    this.attributeBoolean = attributeBoolean;
+  }
+
+
+  public XmlItem wrappedArray(List<Integer> wrappedArray) {
+    
+    this.wrappedArray = wrappedArray;
+    return this;
+  }
+
+  public XmlItem addWrappedArrayItem(Integer wrappedArrayItem) {
+    if (this.wrappedArray == null) {
+      this.wrappedArray = new ArrayList<>();
+    }
+    this.wrappedArray.add(wrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get wrappedArray
+   * @return wrappedArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_WRAPPED_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getWrappedArray() {
+    return wrappedArray;
+  }
+
+
+  public void setWrappedArray(List<Integer> wrappedArray) {
+    this.wrappedArray = wrappedArray;
+  }
+
+
+  public XmlItem nameString(String nameString) {
+    
+    this.nameString = nameString;
+    return this;
+  }
+
+   /**
+   * Get nameString
+   * @return nameString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getNameString() {
+    return nameString;
+  }
+
+
+  public void setNameString(String nameString) {
+    this.nameString = nameString;
+  }
+
+
+  public XmlItem nameNumber(BigDecimal nameNumber) {
+    
+    this.nameNumber = nameNumber;
+    return this;
+  }
+
+   /**
+   * Get nameNumber
+   * @return nameNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getNameNumber() {
+    return nameNumber;
+  }
+
+
+  public void setNameNumber(BigDecimal nameNumber) {
+    this.nameNumber = nameNumber;
+  }
+
+
+  public XmlItem nameInteger(Integer nameInteger) {
+    
+    this.nameInteger = nameInteger;
+    return this;
+  }
+
+   /**
+   * Get nameInteger
+   * @return nameInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getNameInteger() {
+    return nameInteger;
+  }
+
+
+  public void setNameInteger(Integer nameInteger) {
+    this.nameInteger = nameInteger;
+  }
+
+
+  public XmlItem nameBoolean(Boolean nameBoolean) {
+    
+    this.nameBoolean = nameBoolean;
+    return this;
+  }
+
+   /**
+   * Get nameBoolean
+   * @return nameBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isNameBoolean() {
+    return nameBoolean;
+  }
+
+
+  public void setNameBoolean(Boolean nameBoolean) {
+    this.nameBoolean = nameBoolean;
+  }
+
+
+  public XmlItem nameArray(List<Integer> nameArray) {
+    
+    this.nameArray = nameArray;
+    return this;
+  }
+
+  public XmlItem addNameArrayItem(Integer nameArrayItem) {
+    if (this.nameArray == null) {
+      this.nameArray = new ArrayList<>();
+    }
+    this.nameArray.add(nameArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameArray
+   * @return nameArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getNameArray() {
+    return nameArray;
+  }
+
+
+  public void setNameArray(List<Integer> nameArray) {
+    this.nameArray = nameArray;
+  }
+
+
+  public XmlItem nameWrappedArray(List<Integer> nameWrappedArray) {
+    
+    this.nameWrappedArray = nameWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNameWrappedArrayItem(Integer nameWrappedArrayItem) {
+    if (this.nameWrappedArray == null) {
+      this.nameWrappedArray = new ArrayList<>();
+    }
+    this.nameWrappedArray.add(nameWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get nameWrappedArray
+   * @return nameWrappedArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAME_WRAPPED_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getNameWrappedArray() {
+    return nameWrappedArray;
+  }
+
+
+  public void setNameWrappedArray(List<Integer> nameWrappedArray) {
+    this.nameWrappedArray = nameWrappedArray;
+  }
+
+
+  public XmlItem prefixString(String prefixString) {
+    
+    this.prefixString = prefixString;
+    return this;
+  }
+
+   /**
+   * Get prefixString
+   * @return prefixString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPrefixString() {
+    return prefixString;
+  }
+
+
+  public void setPrefixString(String prefixString) {
+    this.prefixString = prefixString;
+  }
+
+
+  public XmlItem prefixNumber(BigDecimal prefixNumber) {
+    
+    this.prefixNumber = prefixNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNumber
+   * @return prefixNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getPrefixNumber() {
+    return prefixNumber;
+  }
+
+
+  public void setPrefixNumber(BigDecimal prefixNumber) {
+    this.prefixNumber = prefixNumber;
+  }
+
+
+  public XmlItem prefixInteger(Integer prefixInteger) {
+    
+    this.prefixInteger = prefixInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixInteger
+   * @return prefixInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getPrefixInteger() {
+    return prefixInteger;
+  }
+
+
+  public void setPrefixInteger(Integer prefixInteger) {
+    this.prefixInteger = prefixInteger;
+  }
+
+
+  public XmlItem prefixBoolean(Boolean prefixBoolean) {
+    
+    this.prefixBoolean = prefixBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixBoolean
+   * @return prefixBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isPrefixBoolean() {
+    return prefixBoolean;
+  }
+
+
+  public void setPrefixBoolean(Boolean prefixBoolean) {
+    this.prefixBoolean = prefixBoolean;
+  }
+
+
+  public XmlItem prefixArray(List<Integer> prefixArray) {
+    
+    this.prefixArray = prefixArray;
+    return this;
+  }
+
+  public XmlItem addPrefixArrayItem(Integer prefixArrayItem) {
+    if (this.prefixArray == null) {
+      this.prefixArray = new ArrayList<>();
+    }
+    this.prefixArray.add(prefixArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixArray
+   * @return prefixArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getPrefixArray() {
+    return prefixArray;
+  }
+
+
+  public void setPrefixArray(List<Integer> prefixArray) {
+    this.prefixArray = prefixArray;
+  }
+
+
+  public XmlItem prefixWrappedArray(List<Integer> prefixWrappedArray) {
+    
+    this.prefixWrappedArray = prefixWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixWrappedArrayItem(Integer prefixWrappedArrayItem) {
+    if (this.prefixWrappedArray == null) {
+      this.prefixWrappedArray = new ArrayList<>();
+    }
+    this.prefixWrappedArray.add(prefixWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixWrappedArray
+   * @return prefixWrappedArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_WRAPPED_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getPrefixWrappedArray() {
+    return prefixWrappedArray;
+  }
+
+
+  public void setPrefixWrappedArray(List<Integer> prefixWrappedArray) {
+    this.prefixWrappedArray = prefixWrappedArray;
+  }
+
+
+  public XmlItem namespaceString(String namespaceString) {
+    
+    this.namespaceString = namespaceString;
+    return this;
+  }
+
+   /**
+   * Get namespaceString
+   * @return namespaceString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getNamespaceString() {
+    return namespaceString;
+  }
+
+
+  public void setNamespaceString(String namespaceString) {
+    this.namespaceString = namespaceString;
+  }
+
+
+  public XmlItem namespaceNumber(BigDecimal namespaceNumber) {
+    
+    this.namespaceNumber = namespaceNumber;
+    return this;
+  }
+
+   /**
+   * Get namespaceNumber
+   * @return namespaceNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getNamespaceNumber() {
+    return namespaceNumber;
+  }
+
+
+  public void setNamespaceNumber(BigDecimal namespaceNumber) {
+    this.namespaceNumber = namespaceNumber;
+  }
+
+
+  public XmlItem namespaceInteger(Integer namespaceInteger) {
+    
+    this.namespaceInteger = namespaceInteger;
+    return this;
+  }
+
+   /**
+   * Get namespaceInteger
+   * @return namespaceInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getNamespaceInteger() {
+    return namespaceInteger;
+  }
+
+
+  public void setNamespaceInteger(Integer namespaceInteger) {
+    this.namespaceInteger = namespaceInteger;
+  }
+
+
+  public XmlItem namespaceBoolean(Boolean namespaceBoolean) {
+    
+    this.namespaceBoolean = namespaceBoolean;
+    return this;
+  }
+
+   /**
+   * Get namespaceBoolean
+   * @return namespaceBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isNamespaceBoolean() {
+    return namespaceBoolean;
+  }
+
+
+  public void setNamespaceBoolean(Boolean namespaceBoolean) {
+    this.namespaceBoolean = namespaceBoolean;
+  }
+
+
+  public XmlItem namespaceArray(List<Integer> namespaceArray) {
+    
+    this.namespaceArray = namespaceArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceArrayItem(Integer namespaceArrayItem) {
+    if (this.namespaceArray == null) {
+      this.namespaceArray = new ArrayList<>();
+    }
+    this.namespaceArray.add(namespaceArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceArray
+   * @return namespaceArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getNamespaceArray() {
+    return namespaceArray;
+  }
+
+
+  public void setNamespaceArray(List<Integer> namespaceArray) {
+    this.namespaceArray = namespaceArray;
+  }
+
+
+  public XmlItem namespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    
+    this.namespaceWrappedArray = namespaceWrappedArray;
+    return this;
+  }
+
+  public XmlItem addNamespaceWrappedArrayItem(Integer namespaceWrappedArrayItem) {
+    if (this.namespaceWrappedArray == null) {
+      this.namespaceWrappedArray = new ArrayList<>();
+    }
+    this.namespaceWrappedArray.add(namespaceWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get namespaceWrappedArray
+   * @return namespaceWrappedArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_NAMESPACE_WRAPPED_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getNamespaceWrappedArray() {
+    return namespaceWrappedArray;
+  }
+
+
+  public void setNamespaceWrappedArray(List<Integer> namespaceWrappedArray) {
+    this.namespaceWrappedArray = namespaceWrappedArray;
+  }
+
+
+  public XmlItem prefixNsString(String prefixNsString) {
+    
+    this.prefixNsString = prefixNsString;
+    return this;
+  }
+
+   /**
+   * Get prefixNsString
+   * @return prefixNsString
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "string", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_STRING)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public String getPrefixNsString() {
+    return prefixNsString;
+  }
+
+
+  public void setPrefixNsString(String prefixNsString) {
+    this.prefixNsString = prefixNsString;
+  }
+
+
+  public XmlItem prefixNsNumber(BigDecimal prefixNsNumber) {
+    
+    this.prefixNsNumber = prefixNsNumber;
+    return this;
+  }
+
+   /**
+   * Get prefixNsNumber
+   * @return prefixNsNumber
+  **/
+  @javax.annotation.Nullable
+  @Valid
+  @ApiModelProperty(example = "1.234", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_NUMBER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public BigDecimal getPrefixNsNumber() {
+    return prefixNsNumber;
+  }
+
+
+  public void setPrefixNsNumber(BigDecimal prefixNsNumber) {
+    this.prefixNsNumber = prefixNsNumber;
+  }
+
+
+  public XmlItem prefixNsInteger(Integer prefixNsInteger) {
+    
+    this.prefixNsInteger = prefixNsInteger;
+    return this;
+  }
+
+   /**
+   * Get prefixNsInteger
+   * @return prefixNsInteger
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "-2", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_INTEGER)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Integer getPrefixNsInteger() {
+    return prefixNsInteger;
+  }
+
+
+  public void setPrefixNsInteger(Integer prefixNsInteger) {
+    this.prefixNsInteger = prefixNsInteger;
+  }
+
+
+  public XmlItem prefixNsBoolean(Boolean prefixNsBoolean) {
+    
+    this.prefixNsBoolean = prefixNsBoolean;
+    return this;
+  }
+
+   /**
+   * Get prefixNsBoolean
+   * @return prefixNsBoolean
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(example = "true", value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_BOOLEAN)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public Boolean isPrefixNsBoolean() {
+    return prefixNsBoolean;
+  }
+
+
+  public void setPrefixNsBoolean(Boolean prefixNsBoolean) {
+    this.prefixNsBoolean = prefixNsBoolean;
+  }
+
+
+  public XmlItem prefixNsArray(List<Integer> prefixNsArray) {
+    
+    this.prefixNsArray = prefixNsArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsArrayItem(Integer prefixNsArrayItem) {
+    if (this.prefixNsArray == null) {
+      this.prefixNsArray = new ArrayList<>();
+    }
+    this.prefixNsArray.add(prefixNsArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsArray
+   * @return prefixNsArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getPrefixNsArray() {
+    return prefixNsArray;
+  }
+
+
+  public void setPrefixNsArray(List<Integer> prefixNsArray) {
+    this.prefixNsArray = prefixNsArray;
+  }
+
+
+  public XmlItem prefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+    return this;
+  }
+
+  public XmlItem addPrefixNsWrappedArrayItem(Integer prefixNsWrappedArrayItem) {
+    if (this.prefixNsWrappedArray == null) {
+      this.prefixNsWrappedArray = new ArrayList<>();
+    }
+    this.prefixNsWrappedArray.add(prefixNsWrappedArrayItem);
+    return this;
+  }
+
+   /**
+   * Get prefixNsWrappedArray
+   * @return prefixNsWrappedArray
+  **/
+  @javax.annotation.Nullable
+  @ApiModelProperty(value = "")
+  @JsonProperty(JSON_PROPERTY_PREFIX_NS_WRAPPED_ARRAY)
+  @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+  public List<Integer> getPrefixNsWrappedArray() {
+    return prefixNsWrappedArray;
+  }
+
+
+  public void setPrefixNsWrappedArray(List<Integer> prefixNsWrappedArray) {
+    this.prefixNsWrappedArray = prefixNsWrappedArray;
+  }
+
+
+  @Override
+  public boolean equals(java.lang.Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    XmlItem xmlItem = (XmlItem) o;
+    return Objects.equals(this.attributeString, xmlItem.attributeString) &&
+        Objects.equals(this.attributeNumber, xmlItem.attributeNumber) &&
+        Objects.equals(this.attributeInteger, xmlItem.attributeInteger) &&
+        Objects.equals(this.attributeBoolean, xmlItem.attributeBoolean) &&
+        Objects.equals(this.wrappedArray, xmlItem.wrappedArray) &&
+        Objects.equals(this.nameString, xmlItem.nameString) &&
+        Objects.equals(this.nameNumber, xmlItem.nameNumber) &&
+        Objects.equals(this.nameInteger, xmlItem.nameInteger) &&
+        Objects.equals(this.nameBoolean, xmlItem.nameBoolean) &&
+        Objects.equals(this.nameArray, xmlItem.nameArray) &&
+        Objects.equals(this.nameWrappedArray, xmlItem.nameWrappedArray) &&
+        Objects.equals(this.prefixString, xmlItem.prefixString) &&
+        Objects.equals(this.prefixNumber, xmlItem.prefixNumber) &&
+        Objects.equals(this.prefixInteger, xmlItem.prefixInteger) &&
+        Objects.equals(this.prefixBoolean, xmlItem.prefixBoolean) &&
+        Objects.equals(this.prefixArray, xmlItem.prefixArray) &&
+        Objects.equals(this.prefixWrappedArray, xmlItem.prefixWrappedArray) &&
+        Objects.equals(this.namespaceString, xmlItem.namespaceString) &&
+        Objects.equals(this.namespaceNumber, xmlItem.namespaceNumber) &&
+        Objects.equals(this.namespaceInteger, xmlItem.namespaceInteger) &&
+        Objects.equals(this.namespaceBoolean, xmlItem.namespaceBoolean) &&
+        Objects.equals(this.namespaceArray, xmlItem.namespaceArray) &&
+        Objects.equals(this.namespaceWrappedArray, xmlItem.namespaceWrappedArray) &&
+        Objects.equals(this.prefixNsString, xmlItem.prefixNsString) &&
+        Objects.equals(this.prefixNsNumber, xmlItem.prefixNsNumber) &&
+        Objects.equals(this.prefixNsInteger, xmlItem.prefixNsInteger) &&
+        Objects.equals(this.prefixNsBoolean, xmlItem.prefixNsBoolean) &&
+        Objects.equals(this.prefixNsArray, xmlItem.prefixNsArray) &&
+        Objects.equals(this.prefixNsWrappedArray, xmlItem.prefixNsWrappedArray);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(attributeString, attributeNumber, attributeInteger, attributeBoolean, wrappedArray, nameString, nameNumber, nameInteger, nameBoolean, nameArray, nameWrappedArray, prefixString, prefixNumber, prefixInteger, prefixBoolean, prefixArray, prefixWrappedArray, namespaceString, namespaceNumber, namespaceInteger, namespaceBoolean, namespaceArray, namespaceWrappedArray, prefixNsString, prefixNsNumber, prefixNsInteger, prefixNsBoolean, prefixNsArray, prefixNsWrappedArray);
+  }
+
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class XmlItem {\n");
+    sb.append("    attributeString: ").append(toIndentedString(attributeString)).append("\n");
+    sb.append("    attributeNumber: ").append(toIndentedString(attributeNumber)).append("\n");
+    sb.append("    attributeInteger: ").append(toIndentedString(attributeInteger)).append("\n");
+    sb.append("    attributeBoolean: ").append(toIndentedString(attributeBoolean)).append("\n");
+    sb.append("    wrappedArray: ").append(toIndentedString(wrappedArray)).append("\n");
+    sb.append("    nameString: ").append(toIndentedString(nameString)).append("\n");
+    sb.append("    nameNumber: ").append(toIndentedString(nameNumber)).append("\n");
+    sb.append("    nameInteger: ").append(toIndentedString(nameInteger)).append("\n");
+    sb.append("    nameBoolean: ").append(toIndentedString(nameBoolean)).append("\n");
+    sb.append("    nameArray: ").append(toIndentedString(nameArray)).append("\n");
+    sb.append("    nameWrappedArray: ").append(toIndentedString(nameWrappedArray)).append("\n");
+    sb.append("    prefixString: ").append(toIndentedString(prefixString)).append("\n");
+    sb.append("    prefixNumber: ").append(toIndentedString(prefixNumber)).append("\n");
+    sb.append("    prefixInteger: ").append(toIndentedString(prefixInteger)).append("\n");
+    sb.append("    prefixBoolean: ").append(toIndentedString(prefixBoolean)).append("\n");
+    sb.append("    prefixArray: ").append(toIndentedString(prefixArray)).append("\n");
+    sb.append("    prefixWrappedArray: ").append(toIndentedString(prefixWrappedArray)).append("\n");
+    sb.append("    namespaceString: ").append(toIndentedString(namespaceString)).append("\n");
+    sb.append("    namespaceNumber: ").append(toIndentedString(namespaceNumber)).append("\n");
+    sb.append("    namespaceInteger: ").append(toIndentedString(namespaceInteger)).append("\n");
+    sb.append("    namespaceBoolean: ").append(toIndentedString(namespaceBoolean)).append("\n");
+    sb.append("    namespaceArray: ").append(toIndentedString(namespaceArray)).append("\n");
+    sb.append("    namespaceWrappedArray: ").append(toIndentedString(namespaceWrappedArray)).append("\n");
+    sb.append("    prefixNsString: ").append(toIndentedString(prefixNsString)).append("\n");
+    sb.append("    prefixNsNumber: ").append(toIndentedString(prefixNsNumber)).append("\n");
+    sb.append("    prefixNsInteger: ").append(toIndentedString(prefixNsInteger)).append("\n");
+    sb.append("    prefixNsBoolean: ").append(toIndentedString(prefixNsBoolean)).append("\n");
+    sb.append("    prefixNsArray: ").append(toIndentedString(prefixNsArray)).append("\n");
+    sb.append("    prefixNsWrappedArray: ").append(toIndentedString(prefixNsWrappedArray)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(java.lang.Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+
+}
+
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
new file mode 100644
index 00000000000..d1efa43a308
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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 org.openapitools.client.ApiClient;
+import org.openapitools.client.api.AnotherFakeApi;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for AnotherFakeApi
+ */
+@Ignore
+public class AnotherFakeApiTest {
+
+    private AnotherFakeApi api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).anotherFake();
+    }
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterCall123testSpecialTags() {
+        Client body = null;
+        api.call123testSpecialTags()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeApiTest.java
new file mode 100644
index 00000000000..d014aee7cd5
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeApiTest.java
@@ -0,0 +1,306 @@
+/*
+ * 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 org.openapitools.client.ApiClient;
+import org.openapitools.client.api.FakeApi;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for FakeApi
+ */
+@Ignore
+public class FakeApiTest {
+
+    private FakeApi api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
+    }
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterCreateXmlItem() {
+        XmlItem xmlItem = null;
+        api.createXmlItem()
+                .body(xmlItem).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Output boolean
+     */
+    @Test
+    public void shouldSee200AfterFakeOuterBooleanSerialize() {
+        Boolean body = null;
+        api.fakeOuterBooleanSerialize().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Output composite
+     */
+    @Test
+    public void shouldSee200AfterFakeOuterCompositeSerialize() {
+        OuterComposite body = null;
+        api.fakeOuterCompositeSerialize().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Output number
+     */
+    @Test
+    public void shouldSee200AfterFakeOuterNumberSerialize() {
+        BigDecimal body = null;
+        api.fakeOuterNumberSerialize().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Output string
+     */
+    @Test
+    public void shouldSee200AfterFakeOuterStringSerialize() {
+        String body = null;
+        api.fakeOuterStringSerialize().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Success
+     */
+    @Test
+    public void shouldSee200AfterTestBodyWithFileSchema() {
+        FileSchemaTestClass body = null;
+        api.testBodyWithFileSchema()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Success
+     */
+    @Test
+    public void shouldSee200AfterTestBodyWithQueryParams() {
+        String query = null;
+        User body = null;
+        api.testBodyWithQueryParams()
+                .queryQuery(query)
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterTestClientModel() {
+        Client body = null;
+        api.testClientModel()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Invalid username supplied
+     */
+    @Test
+    public void shouldSee400AfterTestEndpointParameters() {
+        BigDecimal number = null;
+        Double _double = null;
+        String patternWithoutDelimiter = null;
+        byte[] _byte = null;
+        Integer integer = null;
+        Integer int32 = null;
+        Long int64 = null;
+        Float _float = null;
+        String string = null;
+        File binary = null;
+        LocalDate date = null;
+        OffsetDateTime dateTime = null;
+        String password = null;
+        String paramCallback = null;
+        api.testEndpointParameters()
+                .numberForm(number)
+                ._doubleForm(_double)
+                .patternWithoutDelimiterForm(patternWithoutDelimiter)
+                ._byteForm(_byte).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * User not found
+     */
+    @Test
+    public void shouldSee404AfterTestEndpointParameters() {
+        BigDecimal number = null;
+        Double _double = null;
+        String patternWithoutDelimiter = null;
+        byte[] _byte = null;
+        Integer integer = null;
+        Integer int32 = null;
+        Long int64 = null;
+        Float _float = null;
+        String string = null;
+        File binary = null;
+        LocalDate date = null;
+        OffsetDateTime dateTime = null;
+        String password = null;
+        String paramCallback = null;
+        api.testEndpointParameters()
+                .numberForm(number)
+                ._doubleForm(_double)
+                .patternWithoutDelimiterForm(patternWithoutDelimiter)
+                ._byteForm(_byte).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Invalid request
+     */
+    @Test
+    public void shouldSee400AfterTestEnumParameters() {
+        String enumHeaderStringArray = null;
+        String enumHeaderString = null;
+        List<String> enumQueryStringArray = null;
+        String enumQueryString = null;
+        Integer enumQueryInteger = null;
+        Double enumQueryDouble = null;
+        List<String> enumFormStringArray = null;
+        String enumFormString = null;
+        api.testEnumParameters().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Not found
+     */
+    @Test
+    public void shouldSee404AfterTestEnumParameters() {
+        String enumHeaderStringArray = null;
+        String enumHeaderString = null;
+        List<String> enumQueryStringArray = null;
+        String enumQueryString = null;
+        Integer enumQueryInteger = null;
+        Double enumQueryDouble = null;
+        List<String> enumFormStringArray = null;
+        String enumFormString = null;
+        api.testEnumParameters().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Someting wrong
+     */
+    @Test
+    public void shouldSee400AfterTestGroupParameters() {
+        Integer requiredStringGroup = null;
+        String requiredBooleanGroup = null;
+        Long requiredInt64Group = null;
+        Integer stringGroup = null;
+        String booleanGroup = null;
+        Long int64Group = null;
+        api.testGroupParameters()
+                .requiredStringGroupQuery(requiredStringGroup)
+                .requiredBooleanGroupHeader(requiredBooleanGroup)
+                .requiredInt64GroupQuery(requiredInt64Group).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterTestInlineAdditionalProperties() {
+        Map<String, String> param = null;
+        api.testInlineAdditionalProperties()
+                .body(param).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterTestJsonFormData() {
+        String param = null;
+        String param2 = null;
+        api.testJsonFormData()
+                .paramForm(param)
+                .param2Form(param2).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Success
+     */
+    @Test
+    public void shouldSee200AfterTestQueryParameterCollectionFormat() {
+        List<String> pipe = null;
+        List<String> ioutil = null;
+        List<String> http = null;
+        List<String> url = null;
+        List<String> context = null;
+        api.testQueryParameterCollectionFormat()
+                .pipeQuery(pipe)
+                .ioutilQuery(ioutil)
+                .httpQuery(http)
+                .urlQuery(url)
+                .contextQuery(context).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
new file mode 100644
index 00000000000..3d2b74185ba
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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 org.openapitools.client.ApiClient;
+import org.openapitools.client.api.FakeClassnameTags123Api;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for FakeClassnameTags123Api
+ */
+@Ignore
+public class FakeClassnameTags123ApiTest {
+
+    private FakeClassnameTags123Api api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).fakeClassnameTags123();
+    }
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterTestClassname() {
+        Client body = null;
+        api.testClassname()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/PetApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/PetApiTest.java
new file mode 100644
index 00000000000..46355ce2a52
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/PetApiTest.java
@@ -0,0 +1,267 @@
+/*
+ * 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 org.openapitools.client.ApiClient;
+import org.openapitools.client.api.PetApi;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for PetApi
+ */
+@Ignore
+public class PetApiTest {
+
+    private PetApi api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
+    }
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterAddPet() {
+        Pet body = null;
+        api.addPet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid input
+     */
+    @Test
+    public void shouldSee405AfterAddPet() {
+        Pet body = null;
+        api.addPet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterDeletePet() {
+        Long petId = null;
+        String apiKey = null;
+        api.deletePet()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid pet value
+     */
+    @Test
+    public void shouldSee400AfterDeletePet() {
+        Long petId = null;
+        String apiKey = null;
+        api.deletePet()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterFindPetsByStatus() {
+        List<String> status = null;
+        api.findPetsByStatus()
+                .statusQuery(status).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid status value
+     */
+    @Test
+    public void shouldSee400AfterFindPetsByStatus() {
+        List<String> status = null;
+        api.findPetsByStatus()
+                .statusQuery(status).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterFindPetsByTags() {
+        List<String> tags = null;
+        api.findPetsByTags()
+                .tagsQuery(tags).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid tag value
+     */
+    @Test
+    public void shouldSee400AfterFindPetsByTags() {
+        List<String> tags = null;
+        api.findPetsByTags()
+                .tagsQuery(tags).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterGetPetById() {
+        Long petId = null;
+        api.getPetById()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid ID supplied
+     */
+    @Test
+    public void shouldSee400AfterGetPetById() {
+        Long petId = null;
+        api.getPetById()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Pet not found
+     */
+    @Test
+    public void shouldSee404AfterGetPetById() {
+        Long petId = null;
+        api.getPetById()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterUpdatePet() {
+        Pet body = null;
+        api.updatePet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid ID supplied
+     */
+    @Test
+    public void shouldSee400AfterUpdatePet() {
+        Pet body = null;
+        api.updatePet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Pet not found
+     */
+    @Test
+    public void shouldSee404AfterUpdatePet() {
+        Pet body = null;
+        api.updatePet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Validation exception
+     */
+    @Test
+    public void shouldSee405AfterUpdatePet() {
+        Pet body = null;
+        api.updatePet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Invalid input
+     */
+    @Test
+    public void shouldSee405AfterUpdatePetWithForm() {
+        Long petId = null;
+        String name = null;
+        String status = null;
+        api.updatePetWithForm()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterUploadFile() {
+        Long petId = null;
+        String additionalMetadata = null;
+        File file = null;
+        api.uploadFile()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterUploadFileWithRequiredFile() {
+        Long petId = null;
+        File requiredFile = null;
+        String additionalMetadata = null;
+        api.uploadFileWithRequiredFile()
+                .petIdPath(petId)
+                .requiredFileMultiPart(requiredFile).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/StoreApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/StoreApiTest.java
new file mode 100644
index 00000000000..88b10b312b0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/StoreApiTest.java
@@ -0,0 +1,139 @@
+/*
+ * 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 org.openapitools.client.ApiClient;
+import org.openapitools.client.api.StoreApi;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for StoreApi
+ */
+@Ignore
+public class StoreApiTest {
+
+    private StoreApi api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
+    }
+
+    /**
+     * Invalid ID supplied
+     */
+    @Test
+    public void shouldSee400AfterDeleteOrder() {
+        String orderId = null;
+        api.deleteOrder()
+                .orderIdPath(orderId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Order not found
+     */
+    @Test
+    public void shouldSee404AfterDeleteOrder() {
+        String orderId = null;
+        api.deleteOrder()
+                .orderIdPath(orderId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterGetInventory() {
+        api.getInventory().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterGetOrderById() {
+        Long orderId = null;
+        api.getOrderById()
+                .orderIdPath(orderId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid ID supplied
+     */
+    @Test
+    public void shouldSee400AfterGetOrderById() {
+        Long orderId = null;
+        api.getOrderById()
+                .orderIdPath(orderId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Order not found
+     */
+    @Test
+    public void shouldSee404AfterGetOrderById() {
+        Long orderId = null;
+        api.getOrderById()
+                .orderIdPath(orderId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterPlaceOrder() {
+        Order body = null;
+        api.placeOrder()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid Order
+     */
+    @Test
+    public void shouldSee400AfterPlaceOrder() {
+        Order body = null;
+        api.placeOrder()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/UserApiTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/UserApiTest.java
new file mode 100644
index 00000000000..8b224223bdb
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/api/UserApiTest.java
@@ -0,0 +1,206 @@
+/*
+ * 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.User;
+import org.openapitools.client.ApiClient;
+import org.openapitools.client.api.UserApi;
+import io.restassured.builder.RequestSpecBuilder;
+import io.restassured.filter.log.ErrorLoggingFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Ignore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
+import static io.restassured.config.RestAssuredConfig.config;
+import static org.openapitools.client.JacksonObjectMapper.jackson;
+
+/**
+ * API tests for UserApi
+ */
+@Ignore
+public class UserApiTest {
+
+    private UserApi api;
+
+    @Before
+    public void createApi() {
+        api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(jackson())))
+                        .addFilter(new ErrorLoggingFilter())
+                        .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
+    }
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee0AfterCreateUser() {
+        User body = null;
+        api.createUser()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee0AfterCreateUsersWithArrayInput() {
+        List<User> body = null;
+        api.createUsersWithArrayInput()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee0AfterCreateUsersWithListInput() {
+        List<User> body = null;
+        api.createUsersWithListInput()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Invalid username supplied
+     */
+    @Test
+    public void shouldSee400AfterDeleteUser() {
+        String username = null;
+        api.deleteUser()
+                .usernamePath(username).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * User not found
+     */
+    @Test
+    public void shouldSee404AfterDeleteUser() {
+        String username = null;
+        api.deleteUser()
+                .usernamePath(username).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterGetUserByName() {
+        String username = null;
+        api.getUserByName()
+                .usernamePath(username).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid username supplied
+     */
+    @Test
+    public void shouldSee400AfterGetUserByName() {
+        String username = null;
+        api.getUserByName()
+                .usernamePath(username).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * User not found
+     */
+    @Test
+    public void shouldSee404AfterGetUserByName() {
+        String username = null;
+        api.getUserByName()
+                .usernamePath(username).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterLoginUser() {
+        String username = null;
+        String password = null;
+        api.loginUser()
+                .usernameQuery(username)
+                .passwordQuery(password).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * Invalid username/password supplied
+     */
+    @Test
+    public void shouldSee400AfterLoginUser() {
+        String username = null;
+        String password = null;
+        api.loginUser()
+                .usernameQuery(username)
+                .passwordQuery(password).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee0AfterLogoutUser() {
+        api.logoutUser().execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
+    /**
+     * Invalid user supplied
+     */
+    @Test
+    public void shouldSee400AfterUpdateUser() {
+        String username = null;
+        User body = null;
+        api.updateUser()
+                .usernamePath(username)
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+    /**
+     * User not found
+     */
+    @Test
+    public void shouldSee404AfterUpdateUser() {
+        String username = null;
+        User body = null;
+        api.updateUser()
+                .usernamePath(username)
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+}
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
new file mode 100644
index 00000000000..ec44af78387
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesAnyType
+ */
+public class AdditionalPropertiesAnyTypeTest {
+    private final AdditionalPropertiesAnyType model = new AdditionalPropertiesAnyType();
+
+    /**
+     * Model tests for AdditionalPropertiesAnyType
+     */
+    @Test
+    public void testAdditionalPropertiesAnyType() {
+        // TODO: test AdditionalPropertiesAnyType
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java
new file mode 100644
index 00000000000..ceb024c5620
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesArray
+ */
+public class AdditionalPropertiesArrayTest {
+    private final AdditionalPropertiesArray model = new AdditionalPropertiesArray();
+
+    /**
+     * Model tests for AdditionalPropertiesArray
+     */
+    @Test
+    public void testAdditionalPropertiesArray() {
+        // TODO: test AdditionalPropertiesArray
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
new file mode 100644
index 00000000000..517e5a10ae4
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesBoolean
+ */
+public class AdditionalPropertiesBooleanTest {
+    private final AdditionalPropertiesBoolean model = new AdditionalPropertiesBoolean();
+
+    /**
+     * Model tests for AdditionalPropertiesBoolean
+     */
+    @Test
+    public void testAdditionalPropertiesBoolean() {
+        // TODO: test AdditionalPropertiesBoolean
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
new file mode 100644
index 00000000000..2e3844ba975
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
@@ -0,0 +1,133 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesClass
+ */
+public class AdditionalPropertiesClassTest {
+    private final AdditionalPropertiesClass model = new AdditionalPropertiesClass();
+
+    /**
+     * Model tests for AdditionalPropertiesClass
+     */
+    @Test
+    public void testAdditionalPropertiesClass() {
+        // TODO: test AdditionalPropertiesClass
+    }
+
+    /**
+     * Test the property 'mapString'
+     */
+    @Test
+    public void mapStringTest() {
+        // TODO: test mapString
+    }
+
+    /**
+     * Test the property 'mapNumber'
+     */
+    @Test
+    public void mapNumberTest() {
+        // TODO: test mapNumber
+    }
+
+    /**
+     * Test the property 'mapInteger'
+     */
+    @Test
+    public void mapIntegerTest() {
+        // TODO: test mapInteger
+    }
+
+    /**
+     * Test the property 'mapBoolean'
+     */
+    @Test
+    public void mapBooleanTest() {
+        // TODO: test mapBoolean
+    }
+
+    /**
+     * Test the property 'mapArrayInteger'
+     */
+    @Test
+    public void mapArrayIntegerTest() {
+        // TODO: test mapArrayInteger
+    }
+
+    /**
+     * Test the property 'mapArrayAnytype'
+     */
+    @Test
+    public void mapArrayAnytypeTest() {
+        // TODO: test mapArrayAnytype
+    }
+
+    /**
+     * Test the property 'mapMapString'
+     */
+    @Test
+    public void mapMapStringTest() {
+        // TODO: test mapMapString
+    }
+
+    /**
+     * Test the property 'mapMapAnytype'
+     */
+    @Test
+    public void mapMapAnytypeTest() {
+        // TODO: test mapMapAnytype
+    }
+
+    /**
+     * Test the property 'anytype1'
+     */
+    @Test
+    public void anytype1Test() {
+        // TODO: test anytype1
+    }
+
+    /**
+     * Test the property 'anytype2'
+     */
+    @Test
+    public void anytype2Test() {
+        // TODO: test anytype2
+    }
+
+    /**
+     * Test the property 'anytype3'
+     */
+    @Test
+    public void anytype3Test() {
+        // TODO: test anytype3
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
new file mode 100644
index 00000000000..66a7b85623e
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesInteger
+ */
+public class AdditionalPropertiesIntegerTest {
+    private final AdditionalPropertiesInteger model = new AdditionalPropertiesInteger();
+
+    /**
+     * Model tests for AdditionalPropertiesInteger
+     */
+    @Test
+    public void testAdditionalPropertiesInteger() {
+        // TODO: test AdditionalPropertiesInteger
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java
new file mode 100644
index 00000000000..4e03485a448
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesNumber
+ */
+public class AdditionalPropertiesNumberTest {
+    private final AdditionalPropertiesNumber model = new AdditionalPropertiesNumber();
+
+    /**
+     * Model tests for AdditionalPropertiesNumber
+     */
+    @Test
+    public void testAdditionalPropertiesNumber() {
+        // TODO: test AdditionalPropertiesNumber
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
new file mode 100644
index 00000000000..e0c72c58634
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesObject
+ */
+public class AdditionalPropertiesObjectTest {
+    private final AdditionalPropertiesObject model = new AdditionalPropertiesObject();
+
+    /**
+     * Model tests for AdditionalPropertiesObject
+     */
+    @Test
+    public void testAdditionalPropertiesObject() {
+        // TODO: test AdditionalPropertiesObject
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
new file mode 100644
index 00000000000..c84d987e764
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for AdditionalPropertiesString
+ */
+public class AdditionalPropertiesStringTest {
+    private final AdditionalPropertiesString model = new AdditionalPropertiesString();
+
+    /**
+     * Model tests for AdditionalPropertiesString
+     */
+    @Test
+    public void testAdditionalPropertiesString() {
+        // TODO: test AdditionalPropertiesString
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AnimalTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AnimalTest.java
new file mode 100644
index 00000000000..c0d10ec5a3d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/AnimalTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Animal
+ */
+public class AnimalTest {
+    private final Animal model = new Animal();
+
+    /**
+     * Model tests for Animal
+     */
+    @Test
+    public void testAnimal() {
+        // TODO: test Animal
+    }
+
+    /**
+     * Test the property 'className'
+     */
+    @Test
+    public void classNameTest() {
+        // TODO: test className
+    }
+
+    /**
+     * Test the property 'color'
+     */
+    @Test
+    public void colorTest() {
+        // TODO: test color
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java
new file mode 100644
index 00000000000..e25187a3b60
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ArrayOfArrayOfNumberOnly
+ */
+public class ArrayOfArrayOfNumberOnlyTest {
+    private final ArrayOfArrayOfNumberOnly model = new ArrayOfArrayOfNumberOnly();
+
+    /**
+     * Model tests for ArrayOfArrayOfNumberOnly
+     */
+    @Test
+    public void testArrayOfArrayOfNumberOnly() {
+        // TODO: test ArrayOfArrayOfNumberOnly
+    }
+
+    /**
+     * Test the property 'arrayArrayNumber'
+     */
+    @Test
+    public void arrayArrayNumberTest() {
+        // TODO: test arrayArrayNumber
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java
new file mode 100644
index 00000000000..ae106182399
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ArrayOfNumberOnly
+ */
+public class ArrayOfNumberOnlyTest {
+    private final ArrayOfNumberOnly model = new ArrayOfNumberOnly();
+
+    /**
+     * Model tests for ArrayOfNumberOnly
+     */
+    @Test
+    public void testArrayOfNumberOnly() {
+        // TODO: test ArrayOfNumberOnly
+    }
+
+    /**
+     * Test the property 'arrayNumber'
+     */
+    @Test
+    public void arrayNumberTest() {
+        // TODO: test arrayNumber
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayTestTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayTestTest.java
new file mode 100644
index 00000000000..36bd9951cf6
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ArrayTestTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.client.model.ReadOnlyFirst;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ArrayTest
+ */
+public class ArrayTestTest {
+    private final ArrayTest model = new ArrayTest();
+
+    /**
+     * Model tests for ArrayTest
+     */
+    @Test
+    public void testArrayTest() {
+        // TODO: test ArrayTest
+    }
+
+    /**
+     * Test the property 'arrayOfString'
+     */
+    @Test
+    public void arrayOfStringTest() {
+        // TODO: test arrayOfString
+    }
+
+    /**
+     * Test the property 'arrayArrayOfInteger'
+     */
+    @Test
+    public void arrayArrayOfIntegerTest() {
+        // TODO: test arrayArrayOfInteger
+    }
+
+    /**
+     * Test the property 'arrayArrayOfModel'
+     */
+    @Test
+    public void arrayArrayOfModelTest() {
+        // TODO: test arrayArrayOfModel
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatAllOfTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatAllOfTest.java
new file mode 100644
index 00000000000..a9b13011f00
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatAllOfTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for BigCatAllOf
+ */
+public class BigCatAllOfTest {
+    private final BigCatAllOf model = new BigCatAllOf();
+
+    /**
+     * Model tests for BigCatAllOf
+     */
+    @Test
+    public void testBigCatAllOf() {
+        // TODO: test BigCatAllOf
+    }
+
+    /**
+     * Test the property 'kind'
+     */
+    @Test
+    public void kindTest() {
+        // TODO: test kind
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatTest.java
new file mode 100644
index 00000000000..006c8070742
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/BigCatTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.BigCatAllOf;
+import org.openapitools.client.model.Cat;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for BigCat
+ */
+public class BigCatTest {
+    private final BigCat model = new BigCat();
+
+    /**
+     * Model tests for BigCat
+     */
+    @Test
+    public void testBigCat() {
+        // TODO: test BigCat
+    }
+
+    /**
+     * Test the property 'className'
+     */
+    @Test
+    public void classNameTest() {
+        // TODO: test className
+    }
+
+    /**
+     * Test the property 'color'
+     */
+    @Test
+    public void colorTest() {
+        // TODO: test color
+    }
+
+    /**
+     * Test the property 'declawed'
+     */
+    @Test
+    public void declawedTest() {
+        // TODO: test declawed
+    }
+
+    /**
+     * Test the property 'kind'
+     */
+    @Test
+    public void kindTest() {
+        // TODO: test kind
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CapitalizationTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CapitalizationTest.java
new file mode 100644
index 00000000000..a701b341fc5
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CapitalizationTest.java
@@ -0,0 +1,89 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Capitalization
+ */
+public class CapitalizationTest {
+    private final Capitalization model = new Capitalization();
+
+    /**
+     * Model tests for Capitalization
+     */
+    @Test
+    public void testCapitalization() {
+        // TODO: test Capitalization
+    }
+
+    /**
+     * Test the property 'smallCamel'
+     */
+    @Test
+    public void smallCamelTest() {
+        // TODO: test smallCamel
+    }
+
+    /**
+     * Test the property 'capitalCamel'
+     */
+    @Test
+    public void capitalCamelTest() {
+        // TODO: test capitalCamel
+    }
+
+    /**
+     * Test the property 'smallSnake'
+     */
+    @Test
+    public void smallSnakeTest() {
+        // TODO: test smallSnake
+    }
+
+    /**
+     * Test the property 'capitalSnake'
+     */
+    @Test
+    public void capitalSnakeTest() {
+        // TODO: test capitalSnake
+    }
+
+    /**
+     * Test the property 'scAETHFlowPoints'
+     */
+    @Test
+    public void scAETHFlowPointsTest() {
+        // TODO: test scAETHFlowPoints
+    }
+
+    /**
+     * Test the property 'ATT_NAME'
+     */
+    @Test
+    public void ATT_NAMETest() {
+        // TODO: test ATT_NAME
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatAllOfTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatAllOfTest.java
new file mode 100644
index 00000000000..1d85a044725
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatAllOfTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for CatAllOf
+ */
+public class CatAllOfTest {
+    private final CatAllOf model = new CatAllOf();
+
+    /**
+     * Model tests for CatAllOf
+     */
+    @Test
+    public void testCatAllOf() {
+        // TODO: test CatAllOf
+    }
+
+    /**
+     * Test the property 'declawed'
+     */
+    @Test
+    public void declawedTest() {
+        // TODO: test declawed
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatTest.java
new file mode 100644
index 00000000000..dbf40678a2d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CatTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.CatAllOf;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Cat
+ */
+public class CatTest {
+    private final Cat model = new Cat();
+
+    /**
+     * Model tests for Cat
+     */
+    @Test
+    public void testCat() {
+        // TODO: test Cat
+    }
+
+    /**
+     * Test the property 'className'
+     */
+    @Test
+    public void classNameTest() {
+        // TODO: test className
+    }
+
+    /**
+     * Test the property 'color'
+     */
+    @Test
+    public void colorTest() {
+        // TODO: test color
+    }
+
+    /**
+     * Test the property 'declawed'
+     */
+    @Test
+    public void declawedTest() {
+        // TODO: test declawed
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CategoryTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CategoryTest.java
new file mode 100644
index 00000000000..6027994a2ac
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/CategoryTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Category
+ */
+public class CategoryTest {
+    private final Category model = new Category();
+
+    /**
+     * Model tests for Category
+     */
+    @Test
+    public void testCategory() {
+        // TODO: test Category
+    }
+
+    /**
+     * Test the property 'id'
+     */
+    @Test
+    public void idTest() {
+        // TODO: test id
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClassModelTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClassModelTest.java
new file mode 100644
index 00000000000..8914c9cad43
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClassModelTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ClassModel
+ */
+public class ClassModelTest {
+    private final ClassModel model = new ClassModel();
+
+    /**
+     * Model tests for ClassModel
+     */
+    @Test
+    public void testClassModel() {
+        // TODO: test ClassModel
+    }
+
+    /**
+     * Test the property 'propertyClass'
+     */
+    @Test
+    public void propertyClassTest() {
+        // TODO: test propertyClass
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClientTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClientTest.java
new file mode 100644
index 00000000000..c21b346272d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ClientTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Client
+ */
+public class ClientTest {
+    private final Client model = new Client();
+
+    /**
+     * Model tests for Client
+     */
+    @Test
+    public void testClient() {
+        // TODO: test Client
+    }
+
+    /**
+     * Test the property 'client'
+     */
+    @Test
+    public void clientTest() {
+        // TODO: test client
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogAllOfTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogAllOfTest.java
new file mode 100644
index 00000000000..6e4b4910809
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogAllOfTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for DogAllOf
+ */
+public class DogAllOfTest {
+    private final DogAllOf model = new DogAllOf();
+
+    /**
+     * Model tests for DogAllOf
+     */
+    @Test
+    public void testDogAllOf() {
+        // TODO: test DogAllOf
+    }
+
+    /**
+     * Test the property 'breed'
+     */
+    @Test
+    public void breedTest() {
+        // TODO: test breed
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogTest.java
new file mode 100644
index 00000000000..a46bc508d48
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/DogTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Dog
+ */
+public class DogTest {
+    private final Dog model = new Dog();
+
+    /**
+     * Model tests for Dog
+     */
+    @Test
+    public void testDog() {
+        // TODO: test Dog
+    }
+
+    /**
+     * Test the property 'className'
+     */
+    @Test
+    public void classNameTest() {
+        // TODO: test className
+    }
+
+    /**
+     * Test the property 'color'
+     */
+    @Test
+    public void colorTest() {
+        // TODO: test color
+    }
+
+    /**
+     * Test the property 'breed'
+     */
+    @Test
+    public void breedTest() {
+        // TODO: test breed
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumArraysTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumArraysTest.java
new file mode 100644
index 00000000000..45b8fbbd822
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumArraysTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for EnumArrays
+ */
+public class EnumArraysTest {
+    private final EnumArrays model = new EnumArrays();
+
+    /**
+     * Model tests for EnumArrays
+     */
+    @Test
+    public void testEnumArrays() {
+        // TODO: test EnumArrays
+    }
+
+    /**
+     * Test the property 'justSymbol'
+     */
+    @Test
+    public void justSymbolTest() {
+        // TODO: test justSymbol
+    }
+
+    /**
+     * Test the property 'arrayEnum'
+     */
+    @Test
+    public void arrayEnumTest() {
+        // TODO: test arrayEnum
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumClassTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumClassTest.java
new file mode 100644
index 00000000000..9e45543facd
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumClassTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.model;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for EnumClass
+ */
+public class EnumClassTest {
+    /**
+     * Model tests for EnumClass
+     */
+    @Test
+    public void testEnumClass() {
+        // TODO: test EnumClass
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumTestTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumTestTest.java
new file mode 100644
index 00000000000..04e7afb1978
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/EnumTestTest.java
@@ -0,0 +1,82 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.openapitools.client.model.OuterEnum;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for EnumTest
+ */
+public class EnumTestTest {
+    private final EnumTest model = new EnumTest();
+
+    /**
+     * Model tests for EnumTest
+     */
+    @Test
+    public void testEnumTest() {
+        // TODO: test EnumTest
+    }
+
+    /**
+     * Test the property 'enumString'
+     */
+    @Test
+    public void enumStringTest() {
+        // TODO: test enumString
+    }
+
+    /**
+     * Test the property 'enumStringRequired'
+     */
+    @Test
+    public void enumStringRequiredTest() {
+        // TODO: test enumStringRequired
+    }
+
+    /**
+     * Test the property 'enumInteger'
+     */
+    @Test
+    public void enumIntegerTest() {
+        // TODO: test enumInteger
+    }
+
+    /**
+     * Test the property 'enumNumber'
+     */
+    @Test
+    public void enumNumberTest() {
+        // TODO: test enumNumber
+    }
+
+    /**
+     * Test the property 'outerEnum'
+     */
+    @Test
+    public void outerEnumTest() {
+        // TODO: test outerEnum
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
new file mode 100644
index 00000000000..ef37e666be3
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for FileSchemaTestClass
+ */
+public class FileSchemaTestClassTest {
+    private final FileSchemaTestClass model = new FileSchemaTestClass();
+
+    /**
+     * Model tests for FileSchemaTestClass
+     */
+    @Test
+    public void testFileSchemaTestClass() {
+        // TODO: test FileSchemaTestClass
+    }
+
+    /**
+     * Test the property 'file'
+     */
+    @Test
+    public void fileTest() {
+        // TODO: test file
+    }
+
+    /**
+     * Test the property 'files'
+     */
+    @Test
+    public void filesTest() {
+        // TODO: test files
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FormatTestTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FormatTestTest.java
new file mode 100644
index 00000000000..73a1f737503
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/FormatTestTest.java
@@ -0,0 +1,158 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.File;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.UUID;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for FormatTest
+ */
+public class FormatTestTest {
+    private final FormatTest model = new FormatTest();
+
+    /**
+     * Model tests for FormatTest
+     */
+    @Test
+    public void testFormatTest() {
+        // TODO: test FormatTest
+    }
+
+    /**
+     * Test the property 'integer'
+     */
+    @Test
+    public void integerTest() {
+        // TODO: test integer
+    }
+
+    /**
+     * Test the property 'int32'
+     */
+    @Test
+    public void int32Test() {
+        // TODO: test int32
+    }
+
+    /**
+     * Test the property 'int64'
+     */
+    @Test
+    public void int64Test() {
+        // TODO: test int64
+    }
+
+    /**
+     * Test the property 'number'
+     */
+    @Test
+    public void numberTest() {
+        // TODO: test number
+    }
+
+    /**
+     * Test the property '_float'
+     */
+    @Test
+    public void _floatTest() {
+        // TODO: test _float
+    }
+
+    /**
+     * Test the property '_double'
+     */
+    @Test
+    public void _doubleTest() {
+        // TODO: test _double
+    }
+
+    /**
+     * Test the property 'string'
+     */
+    @Test
+    public void stringTest() {
+        // TODO: test string
+    }
+
+    /**
+     * Test the property '_byte'
+     */
+    @Test
+    public void _byteTest() {
+        // TODO: test _byte
+    }
+
+    /**
+     * Test the property 'binary'
+     */
+    @Test
+    public void binaryTest() {
+        // TODO: test binary
+    }
+
+    /**
+     * Test the property 'date'
+     */
+    @Test
+    public void dateTest() {
+        // TODO: test date
+    }
+
+    /**
+     * Test the property 'dateTime'
+     */
+    @Test
+    public void dateTimeTest() {
+        // TODO: test dateTime
+    }
+
+    /**
+     * Test the property 'uuid'
+     */
+    @Test
+    public void uuidTest() {
+        // TODO: test uuid
+    }
+
+    /**
+     * Test the property 'password'
+     */
+    @Test
+    public void passwordTest() {
+        // TODO: test password
+    }
+
+    /**
+     * Test the property 'bigDecimal'
+     */
+    @Test
+    public void bigDecimalTest() {
+        // TODO: test bigDecimal
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
new file mode 100644
index 00000000000..e902c100383
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for HasOnlyReadOnly
+ */
+public class HasOnlyReadOnlyTest {
+    private final HasOnlyReadOnly model = new HasOnlyReadOnly();
+
+    /**
+     * Model tests for HasOnlyReadOnly
+     */
+    @Test
+    public void testHasOnlyReadOnly() {
+        // TODO: test HasOnlyReadOnly
+    }
+
+    /**
+     * Test the property 'bar'
+     */
+    @Test
+    public void barTest() {
+        // TODO: test bar
+    }
+
+    /**
+     * Test the property 'foo'
+     */
+    @Test
+    public void fooTest() {
+        // TODO: test foo
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MapTestTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MapTestTest.java
new file mode 100644
index 00000000000..a0c991bb758
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MapTestTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for MapTest
+ */
+public class MapTestTest {
+    private final MapTest model = new MapTest();
+
+    /**
+     * Model tests for MapTest
+     */
+    @Test
+    public void testMapTest() {
+        // TODO: test MapTest
+    }
+
+    /**
+     * Test the property 'mapMapOfString'
+     */
+    @Test
+    public void mapMapOfStringTest() {
+        // TODO: test mapMapOfString
+    }
+
+    /**
+     * Test the property 'mapOfEnumString'
+     */
+    @Test
+    public void mapOfEnumStringTest() {
+        // TODO: test mapOfEnumString
+    }
+
+    /**
+     * Test the property 'directMap'
+     */
+    @Test
+    public void directMapTest() {
+        // TODO: test directMap
+    }
+
+    /**
+     * Test the property 'indirectMap'
+     */
+    @Test
+    public void indirectMapTest() {
+        // TODO: test indirectMap
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
new file mode 100644
index 00000000000..630b566f54d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.OffsetDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.openapitools.client.model.Animal;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for MixedPropertiesAndAdditionalPropertiesClass
+ */
+public class MixedPropertiesAndAdditionalPropertiesClassTest {
+    private final MixedPropertiesAndAdditionalPropertiesClass model = new MixedPropertiesAndAdditionalPropertiesClass();
+
+    /**
+     * Model tests for MixedPropertiesAndAdditionalPropertiesClass
+     */
+    @Test
+    public void testMixedPropertiesAndAdditionalPropertiesClass() {
+        // TODO: test MixedPropertiesAndAdditionalPropertiesClass
+    }
+
+    /**
+     * Test the property 'uuid'
+     */
+    @Test
+    public void uuidTest() {
+        // TODO: test uuid
+    }
+
+    /**
+     * Test the property 'dateTime'
+     */
+    @Test
+    public void dateTimeTest() {
+        // TODO: test dateTime
+    }
+
+    /**
+     * Test the property 'map'
+     */
+    @Test
+    public void mapTest() {
+        // TODO: test map
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/Model200ResponseTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
new file mode 100644
index 00000000000..82c7208079d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Model200Response
+ */
+public class Model200ResponseTest {
+    private final Model200Response model = new Model200Response();
+
+    /**
+     * Model tests for Model200Response
+     */
+    @Test
+    public void testModel200Response() {
+        // TODO: test Model200Response
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+    /**
+     * Test the property 'propertyClass'
+     */
+    @Test
+    public void propertyClassTest() {
+        // TODO: test propertyClass
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
new file mode 100644
index 00000000000..97a1287aa41
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
@@ -0,0 +1,65 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ModelApiResponse
+ */
+public class ModelApiResponseTest {
+    private final ModelApiResponse model = new ModelApiResponse();
+
+    /**
+     * Model tests for ModelApiResponse
+     */
+    @Test
+    public void testModelApiResponse() {
+        // TODO: test ModelApiResponse
+    }
+
+    /**
+     * Test the property 'code'
+     */
+    @Test
+    public void codeTest() {
+        // TODO: test code
+    }
+
+    /**
+     * Test the property 'type'
+     */
+    @Test
+    public void typeTest() {
+        // TODO: test type
+    }
+
+    /**
+     * Test the property 'message'
+     */
+    @Test
+    public void messageTest() {
+        // TODO: test message
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelReturnTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelReturnTest.java
new file mode 100644
index 00000000000..f884519ebc8
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ModelReturnTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ModelReturn
+ */
+public class ModelReturnTest {
+    private final ModelReturn model = new ModelReturn();
+
+    /**
+     * Model tests for ModelReturn
+     */
+    @Test
+    public void testModelReturn() {
+        // TODO: test ModelReturn
+    }
+
+    /**
+     * Test the property '_return'
+     */
+    @Test
+    public void _returnTest() {
+        // TODO: test _return
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NameTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NameTest.java
new file mode 100644
index 00000000000..cb3a94cf74a
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NameTest.java
@@ -0,0 +1,73 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Name
+ */
+public class NameTest {
+    private final Name model = new Name();
+
+    /**
+     * Model tests for Name
+     */
+    @Test
+    public void testName() {
+        // TODO: test Name
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+    /**
+     * Test the property 'snakeCase'
+     */
+    @Test
+    public void snakeCaseTest() {
+        // TODO: test snakeCase
+    }
+
+    /**
+     * Test the property 'property'
+     */
+    @Test
+    public void propertyTest() {
+        // TODO: test property
+    }
+
+    /**
+     * Test the property '_123number'
+     */
+    @Test
+    public void _123numberTest() {
+        // TODO: test _123number
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NumberOnlyTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
new file mode 100644
index 00000000000..f4fbd5ee8b4
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
@@ -0,0 +1,50 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for NumberOnly
+ */
+public class NumberOnlyTest {
+    private final NumberOnly model = new NumberOnly();
+
+    /**
+     * Model tests for NumberOnly
+     */
+    @Test
+    public void testNumberOnly() {
+        // TODO: test NumberOnly
+    }
+
+    /**
+     * Test the property 'justNumber'
+     */
+    @Test
+    public void justNumberTest() {
+        // TODO: test justNumber
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OrderTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OrderTest.java
new file mode 100644
index 00000000000..da63441c659
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OrderTest.java
@@ -0,0 +1,90 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.time.OffsetDateTime;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Order
+ */
+public class OrderTest {
+    private final Order model = new Order();
+
+    /**
+     * Model tests for Order
+     */
+    @Test
+    public void testOrder() {
+        // TODO: test Order
+    }
+
+    /**
+     * Test the property 'id'
+     */
+    @Test
+    public void idTest() {
+        // TODO: test id
+    }
+
+    /**
+     * Test the property 'petId'
+     */
+    @Test
+    public void petIdTest() {
+        // TODO: test petId
+    }
+
+    /**
+     * Test the property 'quantity'
+     */
+    @Test
+    public void quantityTest() {
+        // TODO: test quantity
+    }
+
+    /**
+     * Test the property 'shipDate'
+     */
+    @Test
+    public void shipDateTest() {
+        // TODO: test shipDate
+    }
+
+    /**
+     * Test the property 'status'
+     */
+    @Test
+    public void statusTest() {
+        // TODO: test status
+    }
+
+    /**
+     * Test the property 'complete'
+     */
+    @Test
+    public void completeTest() {
+        // TODO: test complete
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterCompositeTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
new file mode 100644
index 00000000000..ebea3ca304c
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
@@ -0,0 +1,66 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for OuterComposite
+ */
+public class OuterCompositeTest {
+    private final OuterComposite model = new OuterComposite();
+
+    /**
+     * Model tests for OuterComposite
+     */
+    @Test
+    public void testOuterComposite() {
+        // TODO: test OuterComposite
+    }
+
+    /**
+     * Test the property 'myNumber'
+     */
+    @Test
+    public void myNumberTest() {
+        // TODO: test myNumber
+    }
+
+    /**
+     * Test the property 'myString'
+     */
+    @Test
+    public void myStringTest() {
+        // TODO: test myString
+    }
+
+    /**
+     * Test the property 'myBoolean'
+     */
+    @Test
+    public void myBooleanTest() {
+        // TODO: test myBoolean
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterEnumTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterEnumTest.java
new file mode 100644
index 00000000000..cf0ebae0faf
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/OuterEnumTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.model;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for OuterEnum
+ */
+public class OuterEnumTest {
+    /**
+     * Model tests for OuterEnum
+     */
+    @Test
+    public void testOuterEnum() {
+        // TODO: test OuterEnum
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/PetTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/PetTest.java
new file mode 100644
index 00000000000..c3c0d4cc35d
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/PetTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.ArrayList;
+import java.util.List;
+import org.openapitools.client.model.Category;
+import org.openapitools.client.model.Tag;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Pet
+ */
+public class PetTest {
+    private final Pet model = new Pet();
+
+    /**
+     * Model tests for Pet
+     */
+    @Test
+    public void testPet() {
+        // TODO: test Pet
+    }
+
+    /**
+     * Test the property 'id'
+     */
+    @Test
+    public void idTest() {
+        // TODO: test id
+    }
+
+    /**
+     * Test the property 'category'
+     */
+    @Test
+    public void categoryTest() {
+        // TODO: test category
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+    /**
+     * Test the property 'photoUrls'
+     */
+    @Test
+    public void photoUrlsTest() {
+        // TODO: test photoUrls
+    }
+
+    /**
+     * Test the property 'tags'
+     */
+    @Test
+    public void tagsTest() {
+        // TODO: test tags
+    }
+
+    /**
+     * Test the property 'status'
+     */
+    @Test
+    public void statusTest() {
+        // TODO: test status
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
new file mode 100644
index 00000000000..b82a7d0ef56
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for ReadOnlyFirst
+ */
+public class ReadOnlyFirstTest {
+    private final ReadOnlyFirst model = new ReadOnlyFirst();
+
+    /**
+     * Model tests for ReadOnlyFirst
+     */
+    @Test
+    public void testReadOnlyFirst() {
+        // TODO: test ReadOnlyFirst
+    }
+
+    /**
+     * Test the property 'bar'
+     */
+    @Test
+    public void barTest() {
+        // TODO: test bar
+    }
+
+    /**
+     * Test the property 'baz'
+     */
+    @Test
+    public void bazTest() {
+        // TODO: test baz
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
new file mode 100644
index 00000000000..d5a19c371e6
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for SpecialModelName
+ */
+public class SpecialModelNameTest {
+    private final SpecialModelName model = new SpecialModelName();
+
+    /**
+     * Model tests for SpecialModelName
+     */
+    @Test
+    public void testSpecialModelName() {
+        // TODO: test SpecialModelName
+    }
+
+    /**
+     * Test the property '$specialPropertyName'
+     */
+    @Test
+    public void $specialPropertyNameTest() {
+        // TODO: test $specialPropertyName
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TagTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TagTest.java
new file mode 100644
index 00000000000..5c2cc6f49e0
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TagTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for Tag
+ */
+public class TagTest {
+    private final Tag model = new Tag();
+
+    /**
+     * Model tests for Tag
+     */
+    @Test
+    public void testTag() {
+        // TODO: test Tag
+    }
+
+    /**
+     * Test the property 'id'
+     */
+    @Test
+    public void idTest() {
+        // TODO: test id
+    }
+
+    /**
+     * Test the property 'name'
+     */
+    @Test
+    public void nameTest() {
+        // TODO: test name
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
new file mode 100644
index 00000000000..e96ac744439
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
@@ -0,0 +1,84 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for TypeHolderDefault
+ */
+public class TypeHolderDefaultTest {
+    private final TypeHolderDefault model = new TypeHolderDefault();
+
+    /**
+     * Model tests for TypeHolderDefault
+     */
+    @Test
+    public void testTypeHolderDefault() {
+        // TODO: test TypeHolderDefault
+    }
+
+    /**
+     * Test the property 'stringItem'
+     */
+    @Test
+    public void stringItemTest() {
+        // TODO: test stringItem
+    }
+
+    /**
+     * Test the property 'numberItem'
+     */
+    @Test
+    public void numberItemTest() {
+        // TODO: test numberItem
+    }
+
+    /**
+     * Test the property 'integerItem'
+     */
+    @Test
+    public void integerItemTest() {
+        // TODO: test integerItem
+    }
+
+    /**
+     * Test the property 'boolItem'
+     */
+    @Test
+    public void boolItemTest() {
+        // TODO: test boolItem
+    }
+
+    /**
+     * Test the property 'arrayItem'
+     */
+    @Test
+    public void arrayItemTest() {
+        // TODO: test arrayItem
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
new file mode 100644
index 00000000000..56641d163a5
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for TypeHolderExample
+ */
+public class TypeHolderExampleTest {
+    private final TypeHolderExample model = new TypeHolderExample();
+
+    /**
+     * Model tests for TypeHolderExample
+     */
+    @Test
+    public void testTypeHolderExample() {
+        // TODO: test TypeHolderExample
+    }
+
+    /**
+     * Test the property 'stringItem'
+     */
+    @Test
+    public void stringItemTest() {
+        // TODO: test stringItem
+    }
+
+    /**
+     * Test the property 'numberItem'
+     */
+    @Test
+    public void numberItemTest() {
+        // TODO: test numberItem
+    }
+
+    /**
+     * Test the property 'floatItem'
+     */
+    @Test
+    public void floatItemTest() {
+        // TODO: test floatItem
+    }
+
+    /**
+     * Test the property 'integerItem'
+     */
+    @Test
+    public void integerItemTest() {
+        // TODO: test integerItem
+    }
+
+    /**
+     * Test the property 'boolItem'
+     */
+    @Test
+    public void boolItemTest() {
+        // TODO: test boolItem
+    }
+
+    /**
+     * Test the property 'arrayItem'
+     */
+    @Test
+    public void arrayItemTest() {
+        // TODO: test arrayItem
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/UserTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/UserTest.java
new file mode 100644
index 00000000000..ce40d3a2a63
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/UserTest.java
@@ -0,0 +1,105 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for User
+ */
+public class UserTest {
+    private final User model = new User();
+
+    /**
+     * Model tests for User
+     */
+    @Test
+    public void testUser() {
+        // TODO: test User
+    }
+
+    /**
+     * Test the property 'id'
+     */
+    @Test
+    public void idTest() {
+        // TODO: test id
+    }
+
+    /**
+     * Test the property 'username'
+     */
+    @Test
+    public void usernameTest() {
+        // TODO: test username
+    }
+
+    /**
+     * Test the property 'firstName'
+     */
+    @Test
+    public void firstNameTest() {
+        // TODO: test firstName
+    }
+
+    /**
+     * Test the property 'lastName'
+     */
+    @Test
+    public void lastNameTest() {
+        // TODO: test lastName
+    }
+
+    /**
+     * Test the property 'email'
+     */
+    @Test
+    public void emailTest() {
+        // TODO: test email
+    }
+
+    /**
+     * Test the property 'password'
+     */
+    @Test
+    public void passwordTest() {
+        // TODO: test password
+    }
+
+    /**
+     * Test the property 'phone'
+     */
+    @Test
+    public void phoneTest() {
+        // TODO: test phone
+    }
+
+    /**
+     * Test the property 'userStatus'
+     */
+    @Test
+    public void userStatusTest() {
+        // TODO: test userStatus
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/XmlItemTest.java
new file mode 100644
index 00000000000..501c414555f
--- /dev/null
+++ b/samples/client/petstore/java/rest-assured-jackson/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -0,0 +1,276 @@
+/*
+ * 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.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+
+/**
+ * Model tests for XmlItem
+ */
+public class XmlItemTest {
+    private final XmlItem model = new XmlItem();
+
+    /**
+     * Model tests for XmlItem
+     */
+    @Test
+    public void testXmlItem() {
+        // TODO: test XmlItem
+    }
+
+    /**
+     * Test the property 'attributeString'
+     */
+    @Test
+    public void attributeStringTest() {
+        // TODO: test attributeString
+    }
+
+    /**
+     * Test the property 'attributeNumber'
+     */
+    @Test
+    public void attributeNumberTest() {
+        // TODO: test attributeNumber
+    }
+
+    /**
+     * Test the property 'attributeInteger'
+     */
+    @Test
+    public void attributeIntegerTest() {
+        // TODO: test attributeInteger
+    }
+
+    /**
+     * Test the property 'attributeBoolean'
+     */
+    @Test
+    public void attributeBooleanTest() {
+        // TODO: test attributeBoolean
+    }
+
+    /**
+     * Test the property 'wrappedArray'
+     */
+    @Test
+    public void wrappedArrayTest() {
+        // TODO: test wrappedArray
+    }
+
+    /**
+     * Test the property 'nameString'
+     */
+    @Test
+    public void nameStringTest() {
+        // TODO: test nameString
+    }
+
+    /**
+     * Test the property 'nameNumber'
+     */
+    @Test
+    public void nameNumberTest() {
+        // TODO: test nameNumber
+    }
+
+    /**
+     * Test the property 'nameInteger'
+     */
+    @Test
+    public void nameIntegerTest() {
+        // TODO: test nameInteger
+    }
+
+    /**
+     * Test the property 'nameBoolean'
+     */
+    @Test
+    public void nameBooleanTest() {
+        // TODO: test nameBoolean
+    }
+
+    /**
+     * Test the property 'nameArray'
+     */
+    @Test
+    public void nameArrayTest() {
+        // TODO: test nameArray
+    }
+
+    /**
+     * Test the property 'nameWrappedArray'
+     */
+    @Test
+    public void nameWrappedArrayTest() {
+        // TODO: test nameWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixString'
+     */
+    @Test
+    public void prefixStringTest() {
+        // TODO: test prefixString
+    }
+
+    /**
+     * Test the property 'prefixNumber'
+     */
+    @Test
+    public void prefixNumberTest() {
+        // TODO: test prefixNumber
+    }
+
+    /**
+     * Test the property 'prefixInteger'
+     */
+    @Test
+    public void prefixIntegerTest() {
+        // TODO: test prefixInteger
+    }
+
+    /**
+     * Test the property 'prefixBoolean'
+     */
+    @Test
+    public void prefixBooleanTest() {
+        // TODO: test prefixBoolean
+    }
+
+    /**
+     * Test the property 'prefixArray'
+     */
+    @Test
+    public void prefixArrayTest() {
+        // TODO: test prefixArray
+    }
+
+    /**
+     * Test the property 'prefixWrappedArray'
+     */
+    @Test
+    public void prefixWrappedArrayTest() {
+        // TODO: test prefixWrappedArray
+    }
+
+    /**
+     * Test the property 'namespaceString'
+     */
+    @Test
+    public void namespaceStringTest() {
+        // TODO: test namespaceString
+    }
+
+    /**
+     * Test the property 'namespaceNumber'
+     */
+    @Test
+    public void namespaceNumberTest() {
+        // TODO: test namespaceNumber
+    }
+
+    /**
+     * Test the property 'namespaceInteger'
+     */
+    @Test
+    public void namespaceIntegerTest() {
+        // TODO: test namespaceInteger
+    }
+
+    /**
+     * Test the property 'namespaceBoolean'
+     */
+    @Test
+    public void namespaceBooleanTest() {
+        // TODO: test namespaceBoolean
+    }
+
+    /**
+     * Test the property 'namespaceArray'
+     */
+    @Test
+    public void namespaceArrayTest() {
+        // TODO: test namespaceArray
+    }
+
+    /**
+     * Test the property 'namespaceWrappedArray'
+     */
+    @Test
+    public void namespaceWrappedArrayTest() {
+        // TODO: test namespaceWrappedArray
+    }
+
+    /**
+     * Test the property 'prefixNsString'
+     */
+    @Test
+    public void prefixNsStringTest() {
+        // TODO: test prefixNsString
+    }
+
+    /**
+     * Test the property 'prefixNsNumber'
+     */
+    @Test
+    public void prefixNsNumberTest() {
+        // TODO: test prefixNsNumber
+    }
+
+    /**
+     * Test the property 'prefixNsInteger'
+     */
+    @Test
+    public void prefixNsIntegerTest() {
+        // TODO: test prefixNsInteger
+    }
+
+    /**
+     * Test the property 'prefixNsBoolean'
+     */
+    @Test
+    public void prefixNsBooleanTest() {
+        // TODO: test prefixNsBoolean
+    }
+
+    /**
+     * Test the property 'prefixNsArray'
+     */
+    @Test
+    public void prefixNsArrayTest() {
+        // TODO: test prefixNsArray
+    }
+
+    /**
+     * Test the property 'prefixNsWrappedArray'
+     */
+    @Test
+    public void prefixNsWrappedArrayTest() {
+        // TODO: test prefixNsWrappedArray
+    }
+
+}
diff --git a/samples/client/petstore/java/rest-assured/build.gradle b/samples/client/petstore/java/rest-assured/build.gradle
index 015b0b676a8..44bbfcbb572 100644
--- a/samples/client/petstore/java/rest-assured/build.gradle
+++ b/samples/client/petstore/java/rest-assured/build.gradle
@@ -107,7 +107,7 @@ 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"
     compile "io.gsonfire:gson-fire:$gson_fire_version"
     compile 'com.google.code.gson:gson:$gson_version'
     compile "org.threeten:threetenbp:$threetenbp_version"
diff --git a/samples/client/petstore/java/rest-assured/build.sbt b/samples/client/petstore/java/rest-assured/build.sbt
index 980585522a9..e56cbf759bf 100644
--- a/samples/client/petstore/java/rest-assured/build.sbt
+++ b/samples/client/petstore/java/rest-assured/build.sbt
@@ -10,13 +10,15 @@ 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",
       "com.google.code.gson" % "gson" % "2.8.6",
       "io.gsonfire" % "gson-fire" % "1.8.4" % "compile",
       "org.threeten" % "threetenbp" % "1.4.3" % "compile",
       "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",
+      "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/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
index 742dbac3250..11417e240fc 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/AnotherFakeApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -41,7 +41,8 @@ public class AnotherFakeApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).anotherFake();
     }
@@ -51,9 +52,9 @@ public class AnotherFakeApiTest {
      */
     @Test
     public void shouldSee200AfterCall123testSpecialTags() {
-        Client client = null;
+        Client body = null;
         api.call123testSpecialTags()
-                .body(client).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java
index f8746ac3c95..57aba781775 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -21,6 +21,7 @@ import org.threeten.bp.LocalDate;
 import org.threeten.bp.OffsetDateTime;
 import org.openapitools.client.model.OuterComposite;
 import org.openapitools.client.model.User;
+import org.openapitools.client.model.XmlItem;
 import org.openapitools.client.ApiClient;
 import org.openapitools.client.api.FakeApi;
 import io.restassured.builder.RequestSpecBuilder;
@@ -48,11 +49,24 @@ public class FakeApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).fake();
     }
 
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterCreateXmlItem() {
+        XmlItem xmlItem = null;
+        api.createXmlItem()
+                .body(xmlItem).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
+
     /**
      * Output boolean
      */
@@ -69,7 +83,7 @@ public class FakeApiTest {
      */
     @Test
     public void shouldSee200AfterFakeOuterCompositeSerialize() {
-        OuterComposite outerComposite = null;
+        OuterComposite body = null;
         api.fakeOuterCompositeSerialize().execute(r -> r.prettyPeek());
         // TODO: test validations
     }
@@ -102,9 +116,9 @@ public class FakeApiTest {
      */
     @Test
     public void shouldSee200AfterTestBodyWithFileSchema() {
-        FileSchemaTestClass fileSchemaTestClass = null;
+        FileSchemaTestClass body = null;
         api.testBodyWithFileSchema()
-                .body(fileSchemaTestClass).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -115,10 +129,10 @@ public class FakeApiTest {
     @Test
     public void shouldSee200AfterTestBodyWithQueryParams() {
         String query = null;
-        User user = null;
+        User body = null;
         api.testBodyWithQueryParams()
                 .queryQuery(query)
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -128,9 +142,9 @@ public class FakeApiTest {
      */
     @Test
     public void shouldSee200AfterTestClientModel() {
-        Client client = null;
+        Client body = null;
         api.testClientModel()
-                .body(client).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -249,9 +263,9 @@ public class FakeApiTest {
      */
     @Test
     public void shouldSee200AfterTestInlineAdditionalProperties() {
-        Map<String, String> requestBody = null;
+        Map<String, String> param = null;
         api.testInlineAdditionalProperties()
-                .body(requestBody).execute(r -> r.prettyPeek());
+                .body(param).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -269,4 +283,24 @@ public class FakeApiTest {
         // TODO: test validations
     }
 
+
+    /**
+     * Success
+     */
+    @Test
+    public void shouldSee200AfterTestQueryParameterCollectionFormat() {
+        List<String> pipe = null;
+        List<String> ioutil = null;
+        List<String> http = null;
+        List<String> url = null;
+        List<String> context = null;
+        api.testQueryParameterCollectionFormat()
+                .pipeQuery(pipe)
+                .ioutilQuery(ioutil)
+                .httpQuery(http)
+                .urlQuery(url)
+                .contextQuery(context).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
 }
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
index 97875006e5a..d8fbcab9123 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/FakeClassnameTags123ApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -41,7 +41,8 @@ public class FakeClassnameTags123ApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).fakeClassnameTags123();
     }
@@ -51,9 +52,9 @@ public class FakeClassnameTags123ApiTest {
      */
     @Test
     public void shouldSee200AfterTestClassname() {
-        Client client = null;
+        Client body = null;
         api.testClassname()
-                .body(client).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/PetApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/PetApiTest.java
index 0373a272f6b..4bcccd56c79 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/PetApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/PetApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -14,8 +14,6 @@
 package org.openapitools.client.api;
 
 import java.io.File;
-
-import io.restassured.response.ResponseBody;
 import org.openapitools.client.model.ModelApiResponse;
 import org.openapitools.client.model.Pet;
 import org.openapitools.client.ApiClient;
@@ -45,23 +43,47 @@ public class PetApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).pet();
     }
 
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterAddPet() {
+        Pet body = null;
+        api.addPet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
     /**
      * Invalid input
      */
     @Test
     public void shouldSee405AfterAddPet() {
-        Pet pet = null;
+        Pet body = null;
         api.addPet()
-                .body(pet).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
 
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterDeletePet() {
+        Long petId = null;
+        String apiKey = null;
+        api.deletePet()
+                .petIdPath(petId).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
     /**
      * Invalid pet value
      */
@@ -155,14 +177,25 @@ public class PetApiTest {
     }
 
 
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterUpdatePet() {
+        Pet body = null;
+        api.updatePet()
+                .body(body).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
     /**
      * Invalid ID supplied
      */
     @Test
     public void shouldSee400AfterUpdatePet() {
-        Pet pet = null;
+        Pet body = null;
         api.updatePet()
-                .body(pet).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -171,9 +204,9 @@ public class PetApiTest {
      */
     @Test
     public void shouldSee404AfterUpdatePet() {
-        Pet pet = null;
+        Pet body = null;
         api.updatePet()
-                .body(pet).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -182,9 +215,9 @@ public class PetApiTest {
      */
     @Test
     public void shouldSee405AfterUpdatePet() {
-        Pet pet = null;
+        Pet body = null;
         api.updatePet()
-                .body(pet).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -216,4 +249,19 @@ public class PetApiTest {
         // TODO: test validations
     }
 
+
+    /**
+     * successful operation
+     */
+    @Test
+    public void shouldSee200AfterUploadFileWithRequiredFile() {
+        Long petId = null;
+        File requiredFile = null;
+        String additionalMetadata = null;
+        api.uploadFileWithRequiredFile()
+                .petIdPath(petId)
+                .requiredFileMultiPart(requiredFile).execute(r -> r.prettyPeek());
+        // TODO: test validations
+    }
+
 }
\ No newline at end of file
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/StoreApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/StoreApiTest.java
index 3b3231c9f40..b4ca1cc5d74 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/StoreApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/StoreApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -41,7 +41,8 @@ public class StoreApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).store();
     }
@@ -118,9 +119,9 @@ public class StoreApiTest {
      */
     @Test
     public void shouldSee200AfterPlaceOrder() {
-        Order order = null;
+        Order body = null;
         api.placeOrder()
-                .body(order).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -129,9 +130,9 @@ public class StoreApiTest {
      */
     @Test
     public void shouldSee400AfterPlaceOrder() {
-        Order order = null;
+        Order body = null;
         api.placeOrder()
-                .body(order).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/UserApiTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/UserApiTest.java
index 3078f45b6bf..b64674d7bf4 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/UserApiTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/api/UserApiTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -41,7 +41,8 @@ public class UserApiTest {
     @Before
     public void createApi() {
         api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
-                () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
+                () -> new RequestSpecBuilder()
+                        .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
                         .addFilter(new ErrorLoggingFilter())
                         .setBaseUri("http://petstore.swagger.io:80/v2"))).user();
     }
@@ -51,9 +52,9 @@ public class UserApiTest {
      */
     @Test
     public void shouldSee0AfterCreateUser() {
-        User user = null;
+        User body = null;
         api.createUser()
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -63,9 +64,9 @@ public class UserApiTest {
      */
     @Test
     public void shouldSee0AfterCreateUsersWithArrayInput() {
-        List<User> user = null;
+        List<User> body = null;
         api.createUsersWithArrayInput()
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -75,9 +76,9 @@ public class UserApiTest {
      */
     @Test
     public void shouldSee0AfterCreateUsersWithListInput() {
-        List<User> user = null;
+        List<User> body = null;
         api.createUsersWithListInput()
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -182,10 +183,10 @@ public class UserApiTest {
     @Test
     public void shouldSee400AfterUpdateUser() {
         String username = null;
-        User user = null;
+        User body = null;
         api.updateUser()
                 .usernamePath(username)
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
@@ -195,10 +196,10 @@ public class UserApiTest {
     @Test
     public void shouldSee404AfterUpdateUser() {
         String username = null;
-        User user = null;
+        User body = null;
         api.updateUser()
                 .usernamePath(username)
-                .body(user).execute(r -> r.prettyPeek());
+                .body(body).execute(r -> r.prettyPeek());
         // TODO: test validations
     }
 
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
index 656f0577161..5507437bbe4 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesAnyTypeTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java
index 4c5bdc4ffad..d770842e2c3 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesArrayTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
index de976999c63..17ad4aa94d8 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesBooleanTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
index 3c18ad38c7e..19f1a8fe7aa 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesClassTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -44,19 +45,91 @@ public class AdditionalPropertiesClassTest {
     }
 
     /**
-     * Test the property 'mapProperty'
+     * Test the property 'mapString'
      */
     @Test
-    public void mapPropertyTest() {
-        // TODO: test mapProperty
+    public void mapStringTest() {
+        // TODO: test mapString
     }
 
     /**
-     * Test the property 'mapOfMapProperty'
+     * Test the property 'mapNumber'
      */
     @Test
-    public void mapOfMapPropertyTest() {
-        // TODO: test mapOfMapProperty
+    public void mapNumberTest() {
+        // TODO: test mapNumber
+    }
+
+    /**
+     * Test the property 'mapInteger'
+     */
+    @Test
+    public void mapIntegerTest() {
+        // TODO: test mapInteger
+    }
+
+    /**
+     * Test the property 'mapBoolean'
+     */
+    @Test
+    public void mapBooleanTest() {
+        // TODO: test mapBoolean
+    }
+
+    /**
+     * Test the property 'mapArrayInteger'
+     */
+    @Test
+    public void mapArrayIntegerTest() {
+        // TODO: test mapArrayInteger
+    }
+
+    /**
+     * Test the property 'mapArrayAnytype'
+     */
+    @Test
+    public void mapArrayAnytypeTest() {
+        // TODO: test mapArrayAnytype
+    }
+
+    /**
+     * Test the property 'mapMapString'
+     */
+    @Test
+    public void mapMapStringTest() {
+        // TODO: test mapMapString
+    }
+
+    /**
+     * Test the property 'mapMapAnytype'
+     */
+    @Test
+    public void mapMapAnytypeTest() {
+        // TODO: test mapMapAnytype
+    }
+
+    /**
+     * Test the property 'anytype1'
+     */
+    @Test
+    public void anytype1Test() {
+        // TODO: test anytype1
+    }
+
+    /**
+     * Test the property 'anytype2'
+     */
+    @Test
+    public void anytype2Test() {
+        // TODO: test anytype2
+    }
+
+    /**
+     * Test the property 'anytype3'
+     */
+    @Test
+    public void anytype3Test() {
+        // TODO: test anytype3
     }
 
 }
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
index 712e0c131b1..e6efde8fed9 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesIntegerTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java
index a2039fa83a5..01433159e0f 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesNumberTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
index 3c9fe9323b8..a307b7604d8 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesObjectTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
index 3a3942ab84d..6a66b95c7b4 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AdditionalPropertiesStringTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AnimalTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AnimalTest.java
index 30ed464f5e1..11a93cce142 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AnimalTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/AnimalTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java
index 70947526050..d0e66d29354 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnlyTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java
index 2f88d6ad4b9..9afc3397f46 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayOfNumberOnlyTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayTestTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayTestTest.java
index 3182aa65481..fab9a30565f 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayTestTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ArrayTestTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CapitalizationTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CapitalizationTest.java
index 1d029ba7c50..ced4f48eb5f 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CapitalizationTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CapitalizationTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatTest.java
index 718bb5b6baf..b2b3e7e048d 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CatTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.IOException;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.CatAllOf;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CategoryTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CategoryTest.java
index 79374c54e6f..a6efa6e1fbc 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CategoryTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/CategoryTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClassModelTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClassModelTest.java
index 4c66db89c4f..1233feec65e 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClassModelTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClassModelTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClientTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClientTest.java
index 1a9f6d6fc9e..456fab74c4d 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClientTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ClientTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogTest.java
index 8392c174564..124bc99c1f1 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/DogTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -22,6 +22,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.IOException;
 import org.openapitools.client.model.Animal;
+import org.openapitools.client.model.DogAllOf;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumArraysTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumArraysTest.java
index a116bb028fc..c25b05e9f0d 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumArraysTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumArraysTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumClassTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumClassTest.java
index 97855ba723a..329454658e3 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumClassTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumClassTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumTestTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumTestTest.java
index d43e3cace6d..8b76ef55606 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumTestTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/EnumTestTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
index a960673c616..0ca36621208 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FileSchemaTestClassTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FormatTestTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FormatTestTest.java
index 4d5b377c0b4..32dbe0df5c1 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FormatTestTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/FormatTestTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -149,4 +149,12 @@ public class FormatTestTest {
         // TODO: test password
     }
 
+    /**
+     * Test the property 'bigDecimal'
+     */
+    @Test
+    public void bigDecimalTest() {
+        // TODO: test bigDecimal
+    }
+
 }
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
index d854c0c9daf..0272d7b8000 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/HasOnlyReadOnlyTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MapTestTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MapTestTest.java
index 9f78d486659..f86a1303fc8 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MapTestTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MapTestTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
index 93829ac8d53..808773a5d85 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClassTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/Model200ResponseTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
index dcea5877334..d81fa5a0f66 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/Model200ResponseTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
index 46b8648fdcc..91bd8fada26 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelApiResponseTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelReturnTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelReturnTest.java
index 4135ead5686..f317fef485e 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelReturnTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ModelReturnTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NameTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NameTest.java
index bdc04b000c1..1ed41a0f80c 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NameTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NameTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NumberOnlyTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
index 214a6d4538d..15b74f7ef8b 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/NumberOnlyTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OrderTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OrderTest.java
index 808e365efb5..b5cc55e4f58 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OrderTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OrderTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterCompositeTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
index 710bfedd580..67ee5996363 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterCompositeTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterEnumTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterEnumTest.java
index 064f84b3ff6..220d40e83cb 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterEnumTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/OuterEnumTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/PetTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/PetTest.java
index 4e8e4c65827..be7f974ab82 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/PetTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/PetTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
index c89b608f609..2dc9cb2ae2c 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/ReadOnlyFirstTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
index d058c884e49..bcf23eb3cbc 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/SpecialModelNameTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TagTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TagTest.java
index 27acc7ce8e7..83f536d2fa3 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TagTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TagTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
index f120407395a..ca08c6362ce 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderDefaultTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
index 5e99dff0cae..763bccefe43 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/TypeHolderExampleTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -59,6 +59,14 @@ public class TypeHolderExampleTest {
         // TODO: test numberItem
     }
 
+    /**
+     * Test the property 'floatItem'
+     */
+    @Test
+    public void floatItemTest() {
+        // TODO: test floatItem
+    }
+
     /**
      * Test the property 'integerItem'
      */
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/UserTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/UserTest.java
index da1c9bda4b5..b3a76f61da5 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/UserTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/UserTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java
index 5e861e18621..f9790cd7c6b 100644
--- a/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java
+++ b/samples/client/petstore/java/rest-assured/src/test/java/org/openapitools/client/model/XmlItemTest.java
@@ -2,7 +2,7 @@
  * OpenAPI Petstore
  * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
  *
- * OpenAPI spec version: 1.0.0
+ * The version of the OpenAPI document: 1.0.0
  * 
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -228,51 +228,51 @@ public class XmlItemTest {
     }
 
     /**
-     * Test the property 'prefixNamespaceString'
+     * Test the property 'prefixNsString'
      */
     @Test
-    public void prefixNamespaceStringTest() {
-        // TODO: test prefixNamespaceString
+    public void prefixNsStringTest() {
+        // TODO: test prefixNsString
     }
 
     /**
-     * Test the property 'prefixNamespaceNumber'
+     * Test the property 'prefixNsNumber'
      */
     @Test
-    public void prefixNamespaceNumberTest() {
-        // TODO: test prefixNamespaceNumber
+    public void prefixNsNumberTest() {
+        // TODO: test prefixNsNumber
     }
 
     /**
-     * Test the property 'prefixNamespaceInteger'
+     * Test the property 'prefixNsInteger'
      */
     @Test
-    public void prefixNamespaceIntegerTest() {
-        // TODO: test prefixNamespaceInteger
+    public void prefixNsIntegerTest() {
+        // TODO: test prefixNsInteger
     }
 
     /**
-     * Test the property 'prefixNamespaceBoolean'
+     * Test the property 'prefixNsBoolean'
      */
     @Test
-    public void prefixNamespaceBooleanTest() {
-        // TODO: test prefixNamespaceBoolean
+    public void prefixNsBooleanTest() {
+        // TODO: test prefixNsBoolean
     }
 
     /**
-     * Test the property 'prefixNamespaceArray'
+     * Test the property 'prefixNsArray'
      */
     @Test
-    public void prefixNamespaceArrayTest() {
-        // TODO: test prefixNamespaceArray
+    public void prefixNsArrayTest() {
+        // TODO: test prefixNsArray
     }
 
     /**
-     * Test the property 'prefixNamespaceWrappedArray'
+     * Test the property 'prefixNsWrappedArray'
      */
     @Test
-    public void prefixNamespaceWrappedArrayTest() {
-        // TODO: test prefixNamespaceWrappedArray
+    public void prefixNsWrappedArrayTest() {
+        // TODO: test prefixNsWrappedArray
     }
 
 }
-- 
GitLab


From 02717e607633545072d396202425d346e5386f63 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Wed, 22 Apr 2020 14:48:27 +0800
Subject: [PATCH 22/23] update samples

---
 samples/openapi3/client/elm/src/Api/Data.elm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/samples/openapi3/client/elm/src/Api/Data.elm b/samples/openapi3/client/elm/src/Api/Data.elm
index 0af6fe9fa3e..df7113ce37b 100644
--- a/samples/openapi3/client/elm/src/Api/Data.elm
+++ b/samples/openapi3/client/elm/src/Api/Data.elm
@@ -99,7 +99,7 @@ type alias Array =
 {-| Composed model
 -}
 type alias Composed =
-    { composedBase: ComposedBase
+    { base : Float
     , value : Maybe String
     }
 
@@ -318,10 +318,11 @@ encodeComposedPairs : Composed -> List EncodedField
 encodeComposedPairs model =
     let
         pairs =
-            [ maybeEncode "value" Json.Encode.string model.value
+            [ encode "base" Json.Encode.float model.base
+            , maybeEncode "value" Json.Encode.string model.value
             ]
     in
-    encodeComposedBasePairs model.composedBase ++ pairs
+    pairs
 
 
 encodeComposedBase : ComposedBase -> Json.Encode.Value
@@ -652,7 +653,7 @@ arrayDecoder =
 composedDecoder : Json.Decode.Decoder Composed
 composedDecoder =
     Json.Decode.succeed Composed
-        |> decodeChain composedBaseDecoder
+        |> decode "base" Json.Decode.float 
         |> maybeDecode "value" Json.Decode.string Nothing
 
 
-- 
GitLab


From 46b0421fa5a88873bc2124d4401e725b968ece50 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Wed, 22 Apr 2020 15:36:31 +0800
Subject: [PATCH 23/23] update java restassured jackson

---
 .../java/rest-assured-jackson/.openapi-generator/VERSION        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
index b5d898602c2..d99e7162d01 100644
--- a/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
+++ b/samples/client/petstore/java/rest-assured-jackson/.openapi-generator/VERSION
@@ -1 +1 @@
-4.3.1-SNAPSHOT
\ No newline at end of file
+5.0.0-SNAPSHOT
\ No newline at end of file
-- 
GitLab