From ffa05c5cb4f17711bf1b1549bdd4f7d43eef5958 Mon Sep 17 00:00:00 2001
From: Paul Parenko <paul.parenko@gmail.com>
Date: Sun, 8 Jan 2023 10:58:07 +0100
Subject: [PATCH 1/3] fix depricated @Schema(required) since swagger 2.2.5

---
 .../src/main/resources/JavaSpring/pojo.mustache                 | 2 +-
 .../main/resources/java-micronaut/common/model/pojo.mustache    | 2 +-
 .../src/main/resources/kotlin-spring/interfaceOptVar.mustache   | 2 +-
 .../src/main/resources/kotlin-spring/interfaceReqVar.mustache   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/pojo.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/pojo.mustache
index e5f9c6136c5..193cc332822 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/pojo.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/pojo.mustache
@@ -150,7 +150,7 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}
   {{#required}}@NotNull{{/required}}
   {{/useBeanValidation}}
   {{#swagger2AnnotationLibrary}}
-  @Schema(name = "{{{baseName}}}", {{#isReadOnly}}accessMode = Schema.AccessMode.READ_ONLY, {{/isReadOnly}}{{#example}}example = "{{{.}}}", {{/example}}{{#description}}description = "{{{.}}}", {{/description}}required = {{{required}}})
+  @Schema(name = "{{{baseName}}}"{{#isReadOnly}}, accessMode = Schema.AccessMode.READ_ONLY{{/isReadOnly}}{{#example}}, example = "{{{.}}}"{{/example}}{{#description}}, description = "{{{.}}}"{{/description}}, requiredMode = {{#required}}Schema.RequiredMode.REQUIRED{{/required}}{{^required}}Schema.RequiredMode.NOT_REQUIRED{{/required}})
   {{/swagger2AnnotationLibrary}}
   {{#swagger1AnnotationLibrary}}
   @ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}")
diff --git a/modules/openapi-generator/src/main/resources/java-micronaut/common/model/pojo.mustache b/modules/openapi-generator/src/main/resources/java-micronaut/common/model/pojo.mustache
index b9d60673513..56fecfe14da 100644
--- a/modules/openapi-generator/src/main/resources/java-micronaut/common/model/pojo.mustache
+++ b/modules/openapi-generator/src/main/resources/java-micronaut/common/model/pojo.mustache
@@ -190,7 +190,7 @@ Declare the class with extends and implements
     @ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}")
         {{/generateSwagger1Annotations}}
         {{#generateSwagger2Annotations}}
-    @Schema(name = "{{{baseName}}}", {{#isReadOnly}}accessMode = Schema.AccessMode.READ_ONLY, {{/isReadOnly}}{{#example}}example = "{{{.}}}", {{/example}}{{#description}}description = "{{{.}}}", {{/description}}required = {{{required}}})
+    @Schema(name = "{{{baseName}}}"{{#isReadOnly}}, accessMode = Schema.AccessMode.READ_ONLY{{/isReadOnly}}{{#example}}, example = "{{{.}}}"{{/example}}{{#description}}, description = "{{{.}}}"{{/description}}, requiredMode = {{#required}}Schema.RequiredMode.REQUIRED{{/required}}{{^required}}Schema.RequiredMode.NOT_REQUIRED{{/required}})
         {{/generateSwagger2Annotations}}
         {{#vendorExtensions.x-extra-annotation}}
     {{{vendorExtensions.x-extra-annotation}}}
diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache
index 28ad4702783..d2bbdb078c6 100644
--- a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache
+++ b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache
@@ -1,4 +1,4 @@
 {{#swagger2AnnotationLibrary}}
-        @Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
+        @Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
         @ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}
         {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{{defaultValue}}}{{^defaultValue}}null{{/defaultValue}}{{/discriminator}}
diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache
index c742f0ec5c9..c38050567e4 100644
--- a/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache
+++ b/modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache
@@ -1,4 +1,4 @@
 {{#swagger2AnnotationLibrary}}
-        @Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
+        @Schema({{#example}}example = "{{{.}}}", {{/example}}{{#required}}requiredMode = Schema.RequiredMode.REQUIRED, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}description = "{{{description}}}"){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
         @ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swagger1AnnotationLibrary}}
         {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}
-- 
GitLab


From 51cd5d86723101b2722a9c4e991989d7445fa299 Mon Sep 17 00:00:00 2001
From: Paul Parenko <paul.parenko@gmail.com>
Date: Fri, 13 Jan 2023 00:20:49 +0100
Subject: [PATCH 2/3] use same swagger-annotations version which is used by
 swagger-core which is a dependency of springdoc

---
 .../resources/JavaSpring/libraries/spring-boot/pom-sb3.mustache | 2 +-
 .../resources/JavaSpring/libraries/spring-boot/pom.mustache     | 2 +-
 .../JavaSpring/libraries/spring-cloud/pom-sb3.mustache          | 2 +-
 .../resources/JavaSpring/libraries/spring-cloud/pom.mustache    | 2 +-
 .../src/main/resources/java-camel-server/pom.mustache           | 2 +-
 .../java-micronaut/common/configuration/pom.xml.mustache        | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom-sb3.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom-sb3.mustache
index b9401ec5bed..784e8d86c9d 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom-sb3.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom-sb3.mustache
@@ -15,7 +15,7 @@
         {{/springDocDocumentationProvider}}
         {{^springDocDocumentationProvider}}
         {{#swagger2AnnotationLibrary}}
-        <swagger-annotations.version>}2.2.0</swagger-annotations.version>
+        <swagger-annotations.version>}2.2.7</swagger-annotations.version>
         {{/swagger2AnnotationLibrary}}
         {{/springDocDocumentationProvider}}
         {{#useSwaggerUI}}
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache
index 6c7e85d72e7..1eca3c6cfe6 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache
@@ -22,7 +22,7 @@
         <swagger-annotations.version>1.6.6</swagger-annotations.version>
         {{/swagger1AnnotationLibrary}}
         {{#swagger2AnnotationLibrary}}
-        <swagger-annotations.version>}2.1.13</swagger-annotations.version>
+        <swagger-annotations.version>}2.2.7</swagger-annotations.version>
         {{/swagger2AnnotationLibrary}}
         {{/springDocDocumentationProvider}}
         {{/springFoxDocumentationProvider}}
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom-sb3.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom-sb3.mustache
index 9fbd0465059..b389953e916 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom-sb3.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom-sb3.mustache
@@ -15,7 +15,7 @@
         {{/springDocDocumentationProvider}}
         {{^springDocDocumentationProvider}}
         {{#swagger2AnnotationLibrary}}
-        <swagger-annotations.version>}2.2.0</swagger-annotations.version>
+        <swagger-annotations.version>}2.2.7</swagger-annotations.version>
         {{/swagger2AnnotationLibrary}}
         {{/springDocDocumentationProvider}}
     </properties>
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom.mustache
index c7c2a48f115..849703d05d8 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-cloud/pom.mustache
@@ -22,7 +22,7 @@
         <swagger-annotations.version>1.6.6</swagger-annotations.version>
         {{/swagger1AnnotationLibrary}}
         {{#swagger2AnnotationLibrary}}
-        <swagger-annotations.version>}2.1.13</swagger-annotations.version>
+        <swagger-annotations.version>}2.2.7</swagger-annotations.version>
         {{/swagger2AnnotationLibrary}}
         {{/springDocDocumentationProvider}}
         {{/springFoxDocumentationProvider}}
diff --git a/modules/openapi-generator/src/main/resources/java-camel-server/pom.mustache b/modules/openapi-generator/src/main/resources/java-camel-server/pom.mustache
index 35b78586303..79d481ac75b 100644
--- a/modules/openapi-generator/src/main/resources/java-camel-server/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/java-camel-server/pom.mustache
@@ -128,7 +128,7 @@ Do not edit the class manually.
         <dependency>
             <groupId>io.swagger.core.v3</groupId>
             <artifactId>swagger-annotations</artifactId>
-            <version>2.1.11</version>
+            <version>2.2.7</version>
         </dependency>
         {{/oas3}}
         {{#jackson}}
diff --git a/modules/openapi-generator/src/main/resources/java-micronaut/common/configuration/pom.xml.mustache b/modules/openapi-generator/src/main/resources/java-micronaut/common/configuration/pom.xml.mustache
index 4985d6a6b64..57947cdb762 100644
--- a/modules/openapi-generator/src/main/resources/java-micronaut/common/configuration/pom.xml.mustache
+++ b/modules/openapi-generator/src/main/resources/java-micronaut/common/configuration/pom.xml.mustache
@@ -26,7 +26,7 @@
         <swagger-annotations-version>1.6.5</swagger-annotations-version>
         {{/generateSwagger1Annotations}}
         {{#generateSwagger2Annotations}}
-        <swagger-annotations-version>2.2.0</swagger-annotations-version>
+        <swagger-annotations-version>2.2.7</swagger-annotations-version>
         {{/generateSwagger2Annotations}}
     </properties>
 
-- 
GitLab


From 24aff397b1e3ea99c915e9cdddc403e2f603245a Mon Sep 17 00:00:00 2001
From: Paul Parenko <paul.parenko@gmail.com>
Date: Sun, 8 Jan 2023 14:43:54 +0100
Subject: [PATCH 3/3] generated java sampes

---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../org/openapitools/model/Addressable.java   |  4 +-
 .../main/java/org/openapitools/model/Bar.java |  8 +--
 .../org/openapitools/model/BarCreate.java     |  6 +-
 .../java/org/openapitools/model/Entity.java   | 10 ++--
 .../org/openapitools/model/EntityRef.java     | 14 ++---
 .../org/openapitools/model/Extensible.java    |  6 +-
 .../main/java/org/openapitools/model/Foo.java |  4 +-
 .../java/org/openapitools/model/FooRef.java   |  2 +-
 .../java/org/openapitools/model/Pasta.java    |  2 +-
 .../java/org/openapitools/model/Pizza.java    |  2 +-
 .../org/openapitools/model/PizzaSpeziale.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 samples/server/petstore/java-camel/pom.xml    |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../petstore/java-micronaut-server/pom.xml    |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../java/org/openapitools/model/Animal.java   |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../openapitools/model/ArrayOfNumberOnly.java |  2 +-
 .../org/openapitools/model/ArrayTest.java     |  6 +-
 .../java/org/openapitools/model/BigCat.java   |  2 +-
 .../org/openapitools/model/BigCatAllOf.java   |  2 +-
 .../openapitools/model/Capitalization.java    | 12 ++--
 .../main/java/org/openapitools/model/Cat.java |  2 +-
 .../java/org/openapitools/model/CatAllOf.java |  2 +-
 .../java/org/openapitools/model/Category.java |  4 +-
 .../org/openapitools/model/ClassModel.java    |  2 +-
 .../java/org/openapitools/model/Client.java   |  2 +-
 .../main/java/org/openapitools/model/Dog.java |  2 +-
 .../java/org/openapitools/model/DogAllOf.java |  2 +-
 .../org/openapitools/model/EnumArrays.java    |  4 +-
 .../java/org/openapitools/model/EnumTest.java | 10 ++--
 .../java/org/openapitools/model/File.java     |  2 +-
 .../model/FileSchemaTestClass.java            |  4 +-
 .../org/openapitools/model/FormatTest.java    | 28 ++++-----
 .../openapitools/model/HasOnlyReadOnly.java   |  4 +-
 .../java/org/openapitools/model/MapTest.java  |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../openapitools/model/Model200Response.java  |  4 +-
 .../openapitools/model/ModelApiResponse.java  |  6 +-
 .../org/openapitools/model/ModelList.java     |  2 +-
 .../org/openapitools/model/ModelReturn.java   |  2 +-
 .../java/org/openapitools/model/Name.java     |  8 +--
 .../org/openapitools/model/NumberOnly.java    |  2 +-
 .../java/org/openapitools/model/Order.java    | 12 ++--
 .../openapitools/model/OuterComposite.java    |  6 +-
 .../main/java/org/openapitools/model/Pet.java | 12 ++--
 .../org/openapitools/model/ReadOnlyFirst.java |  4 +-
 .../openapitools/model/SpecialModelName.java  |  2 +-
 .../main/java/org/openapitools/model/Tag.java |  4 +-
 .../openapitools/model/TypeHolderDefault.java | 10 ++--
 .../openapitools/model/TypeHolderExample.java | 12 ++--
 .../java/org/openapitools/model/User.java     | 16 ++---
 .../java/org/openapitools/model/XmlItem.java  | 58 +++++++++----------
 .../model/ObjectWithUniqueItems.java          | 12 ++--
 .../model/AdditionalPropertiesAnyType.java    |  2 +-
 .../model/AdditionalPropertiesArray.java      |  2 +-
 .../model/AdditionalPropertiesBoolean.java    |  2 +-
 .../model/AdditionalPropertiesClass.java      | 22 +++----
 .../model/AdditionalPropertiesInteger.java    |  2 +-
 .../model/AdditionalPropertiesNumber.java     |  2 +-
 .../model/AdditionalPropertiesObject.java     |  2 +-
 .../model/AdditionalPropertiesString.java     |  2 +-
 .../openapitools/virtualan/model/Animal.java  |  4 +-
 .../model/ArrayOfArrayOfNumberOnly.java       |  2 +-
 .../virtualan/model/ArrayOfNumberOnly.java    |  2 +-
 .../virtualan/model/ArrayTest.java            |  6 +-
 .../openapitools/virtualan/model/BigCat.java  |  2 +-
 .../virtualan/model/BigCatAllOf.java          |  2 +-
 .../virtualan/model/Capitalization.java       | 12 ++--
 .../org/openapitools/virtualan/model/Cat.java |  2 +-
 .../virtualan/model/CatAllOf.java             |  2 +-
 .../virtualan/model/Category.java             |  4 +-
 .../virtualan/model/ClassModel.java           |  2 +-
 .../openapitools/virtualan/model/Client.java  |  2 +-
 .../org/openapitools/virtualan/model/Dog.java |  2 +-
 .../virtualan/model/DogAllOf.java             |  2 +-
 .../virtualan/model/EnumArrays.java           |  4 +-
 .../virtualan/model/EnumTest.java             | 10 ++--
 .../openapitools/virtualan/model/File.java    |  2 +-
 .../virtualan/model/FileSchemaTestClass.java  |  4 +-
 .../virtualan/model/FormatTest.java           | 28 ++++-----
 .../virtualan/model/HasOnlyReadOnly.java      |  4 +-
 .../openapitools/virtualan/model/MapTest.java |  8 +--
 ...ropertiesAndAdditionalPropertiesClass.java |  6 +-
 .../virtualan/model/Model200Response.java     |  4 +-
 .../virtualan/model/ModelApiResponse.java     |  6 +-
 .../virtualan/model/ModelList.java            |  2 +-
 .../virtualan/model/ModelReturn.java          |  2 +-
 .../openapitools/virtualan/model/Name.java    |  8 +--
 .../virtualan/model/NumberOnly.java           |  2 +-
 .../openapitools/virtualan/model/Order.java   | 12 ++--
 .../virtualan/model/OuterComposite.java       |  6 +-
 .../org/openapitools/virtualan/model/Pet.java | 12 ++--
 .../virtualan/model/ReadOnlyFirst.java        |  4 +-
 .../virtualan/model/SpecialModelName.java     |  2 +-
 .../org/openapitools/virtualan/model/Tag.java |  4 +-
 .../virtualan/model/TypeHolderDefault.java    | 10 ++--
 .../virtualan/model/TypeHolderExample.java    | 12 ++--
 .../openapitools/virtualan/model/User.java    | 16 ++---
 .../openapitools/virtualan/model/XmlItem.java | 58 +++++++++----------
 449 files changed, 1573 insertions(+), 1573 deletions(-)

diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Category.java
index f15bed23288..e2206012211 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/ModelApiResponse.java
index e74c0d15a18..6f12dac83ae 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Order.java
index e4a1030a073..8e9325fbea4 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Pet.java
index 1e00d49524a..5a26eff5395 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Tag.java
index 97130c50c03..98c023bf698 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/User.java
index 0a193cf96c2..753145eb0b3 100644
--- a/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-cloud-3/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Category.java
index ed3c428e34a..2a90a2f0a4f 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-cloud-async/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java
index e928a0c2c1f..c34a27cf1d6 100644
--- a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java
@@ -55,7 +55,7 @@ public class Pet {
    * @return atType
   */
   @NotNull 
-  @Schema(name = "@type", required = true)
+  @Schema(name = "@type", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getAtType() {
     return atType;
   }
@@ -74,7 +74,7 @@ public class Pet {
    * @return age
   */
   
-  @Schema(name = "age", required = false)
+  @Schema(name = "age", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAge() {
     return age;
   }
@@ -93,7 +93,7 @@ public class Pet {
    * @return happy
   */
   
-  @Schema(name = "happy", required = false)
+  @Schema(name = "happy", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getHappy() {
     return happy;
   }
@@ -112,7 +112,7 @@ public class Pet {
    * @return price
   */
   @Valid 
-  @Schema(name = "price", required = false)
+  @Schema(name = "price", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrice() {
     return price;
   }
@@ -131,7 +131,7 @@ public class Pet {
    * @return lastFeed
   */
   @Valid 
-  @Schema(name = "lastFeed", required = false)
+  @Schema(name = "lastFeed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getLastFeed() {
     return lastFeed;
   }
@@ -150,7 +150,7 @@ public class Pet {
    * @return dateOfBirth
   */
   @Valid 
-  @Schema(name = "dateOfBirth", required = false)
+  @Schema(name = "dateOfBirth", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public LocalDate getDateOfBirth() {
     return dateOfBirth;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/File.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Category.java
index ed3c428e34a..2a90a2f0a4f 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-cloud-spring-pageable/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Category.java
index 24264bce8b2..18b55b13d16 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-cloud/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Category.java
index ed3c428e34a..2a90a2f0a4f 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-stubs-skip-default-interface/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Category.java
index ed3c428e34a..2a90a2f0a4f 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/User.java b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/client/petstore/spring-stubs/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Addressable.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Addressable.java
index 950befc2fcb..0feef057e32 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Addressable.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Addressable.java
@@ -38,7 +38,7 @@ public class Addressable {
    * @return href
   */
   
-  @Schema(name = "href", description = "Hyperlink reference", required = false)
+  @Schema(name = "href", description = "Hyperlink reference", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getHref() {
     return href;
   }
@@ -57,7 +57,7 @@ public class Addressable {
    * @return id
   */
   
-  @Schema(name = "id", description = "unique identifier", required = false)
+  @Schema(name = "id", description = "unique identifier", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getId() {
     return id;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Bar.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Bar.java
index 2ba1acefbf2..01d0de23ab9 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Bar.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Bar.java
@@ -49,7 +49,7 @@ public class Bar extends Entity implements BarRefOrValue {
    * @return id
   */
   @NotNull 
-  @Schema(name = "id", required = true)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getId() {
     return id;
   }
@@ -68,7 +68,7 @@ public class Bar extends Entity implements BarRefOrValue {
    * @return barPropA
   */
   
-  @Schema(name = "barPropA", required = false)
+  @Schema(name = "barPropA", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBarPropA() {
     return barPropA;
   }
@@ -87,7 +87,7 @@ public class Bar extends Entity implements BarRefOrValue {
    * @return fooPropB
   */
   
-  @Schema(name = "fooPropB", required = false)
+  @Schema(name = "fooPropB", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFooPropB() {
     return fooPropB;
   }
@@ -106,7 +106,7 @@ public class Bar extends Entity implements BarRefOrValue {
    * @return foo
   */
   @Valid 
-  @Schema(name = "foo", required = false)
+  @Schema(name = "foo", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public FooRefOrValue getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/BarCreate.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/BarCreate.java
index 365251e5d34..9df84a029bf 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/BarCreate.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/BarCreate.java
@@ -48,7 +48,7 @@ public class BarCreate extends Entity {
    * @return barPropA
   */
   
-  @Schema(name = "barPropA", required = false)
+  @Schema(name = "barPropA", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBarPropA() {
     return barPropA;
   }
@@ -67,7 +67,7 @@ public class BarCreate extends Entity {
    * @return fooPropB
   */
   
-  @Schema(name = "fooPropB", required = false)
+  @Schema(name = "fooPropB", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFooPropB() {
     return fooPropB;
   }
@@ -86,7 +86,7 @@ public class BarCreate extends Entity {
    * @return foo
   */
   @Valid 
-  @Schema(name = "foo", required = false)
+  @Schema(name = "foo", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public FooRefOrValue getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Entity.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Entity.java
index 633e37be68f..3beb1e1bf1b 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Entity.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Entity.java
@@ -69,7 +69,7 @@ public class Entity {
    * @return href
   */
   
-  @Schema(name = "href", description = "Hyperlink reference", required = false)
+  @Schema(name = "href", description = "Hyperlink reference", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getHref() {
     return href;
   }
@@ -88,7 +88,7 @@ public class Entity {
    * @return id
   */
   
-  @Schema(name = "id", description = "unique identifier", required = false)
+  @Schema(name = "id", description = "unique identifier", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getId() {
     return id;
   }
@@ -107,7 +107,7 @@ public class Entity {
    * @return atSchemaLocation
   */
   
-  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
+  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtSchemaLocation() {
     return atSchemaLocation;
   }
@@ -126,7 +126,7 @@ public class Entity {
    * @return atBaseType
   */
   
-  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
+  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtBaseType() {
     return atBaseType;
   }
@@ -145,7 +145,7 @@ public class Entity {
    * @return atType
   */
   @NotNull 
-  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
+  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getAtType() {
     return atType;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/EntityRef.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/EntityRef.java
index ae49fa332e0..c8e16278648 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/EntityRef.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/EntityRef.java
@@ -68,7 +68,7 @@ public class EntityRef {
    * @return name
   */
   
-  @Schema(name = "name", description = "Name of the related entity.", required = false)
+  @Schema(name = "name", description = "Name of the related entity.", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
@@ -87,7 +87,7 @@ public class EntityRef {
    * @return atReferredType
   */
   
-  @Schema(name = "@referredType", description = "The actual type of the target instance when needed for disambiguation.", required = false)
+  @Schema(name = "@referredType", description = "The actual type of the target instance when needed for disambiguation.", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtReferredType() {
     return atReferredType;
   }
@@ -106,7 +106,7 @@ public class EntityRef {
    * @return href
   */
   
-  @Schema(name = "href", description = "Hyperlink reference", required = false)
+  @Schema(name = "href", description = "Hyperlink reference", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getHref() {
     return href;
   }
@@ -125,7 +125,7 @@ public class EntityRef {
    * @return id
   */
   
-  @Schema(name = "id", description = "unique identifier", required = false)
+  @Schema(name = "id", description = "unique identifier", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getId() {
     return id;
   }
@@ -144,7 +144,7 @@ public class EntityRef {
    * @return atSchemaLocation
   */
   
-  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
+  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtSchemaLocation() {
     return atSchemaLocation;
   }
@@ -163,7 +163,7 @@ public class EntityRef {
    * @return atBaseType
   */
   
-  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
+  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtBaseType() {
     return atBaseType;
   }
@@ -182,7 +182,7 @@ public class EntityRef {
    * @return atType
   */
   @NotNull 
-  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
+  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getAtType() {
     return atType;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Extensible.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Extensible.java
index f6a109c1d5f..8a8371959eb 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Extensible.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Extensible.java
@@ -40,7 +40,7 @@ public class Extensible {
    * @return atSchemaLocation
   */
   
-  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
+  @Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtSchemaLocation() {
     return atSchemaLocation;
   }
@@ -59,7 +59,7 @@ public class Extensible {
    * @return atBaseType
   */
   
-  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
+  @Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAtBaseType() {
     return atBaseType;
   }
@@ -78,7 +78,7 @@ public class Extensible {
    * @return atType
   */
   @NotNull 
-  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
+  @Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getAtType() {
     return atType;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Foo.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Foo.java
index b0b6f53b1b1..c8ef90c3756 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Foo.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Foo.java
@@ -42,7 +42,7 @@ public class Foo extends Entity implements FooRefOrValue {
    * @return fooPropA
   */
   
-  @Schema(name = "fooPropA", required = false)
+  @Schema(name = "fooPropA", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFooPropA() {
     return fooPropA;
   }
@@ -61,7 +61,7 @@ public class Foo extends Entity implements FooRefOrValue {
    * @return fooPropB
   */
   
-  @Schema(name = "fooPropB", required = false)
+  @Schema(name = "fooPropB", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFooPropB() {
     return fooPropB;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/FooRef.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/FooRef.java
index 5900228902d..a99d6658c3b 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/FooRef.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/FooRef.java
@@ -39,7 +39,7 @@ public class FooRef extends EntityRef implements FooRefOrValue {
    * @return foorefPropA
   */
   
-  @Schema(name = "foorefPropA", required = false)
+  @Schema(name = "foorefPropA", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoorefPropA() {
     return foorefPropA;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pasta.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pasta.java
index 116c2687b84..ef6cfbd858e 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pasta.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pasta.java
@@ -39,7 +39,7 @@ public class Pasta extends Entity {
    * @return vendor
   */
   
-  @Schema(name = "vendor", required = false)
+  @Schema(name = "vendor", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getVendor() {
     return vendor;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pizza.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pizza.java
index 015b75a8053..c8506f6b863 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pizza.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Pizza.java
@@ -49,7 +49,7 @@ public class Pizza extends Entity {
    * @return pizzaSize
   */
   @Valid 
-  @Schema(name = "pizzaSize", required = false)
+  @Schema(name = "pizzaSize", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPizzaSize() {
     return pizzaSize;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/PizzaSpeziale.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/PizzaSpeziale.java
index 6b50ea03645..1a0b7c1011f 100644
--- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/PizzaSpeziale.java
+++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/PizzaSpeziale.java
@@ -40,7 +40,7 @@ public class PizzaSpeziale extends Pizza {
    * @return toppings
   */
   
-  @Schema(name = "toppings", required = false)
+  @Schema(name = "toppings", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getToppings() {
     return toppings;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Category.java
index 24264bce8b2..18b55b13d16 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/spring-boot-springdoc/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Category.java
index f15bed23288..e2206012211 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/ModelApiResponse.java
index e74c0d15a18..6f12dac83ae 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Order.java
index e4a1030a073..8e9325fbea4 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java
index 1e00d49524a..5a26eff5395 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Tag.java
index 97130c50c03..98c023bf698 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/User.java
index 0a193cf96c2..753145eb0b3 100644
--- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index e01b3214db2..d905906f7bf 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -35,7 +35,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index ec428cb349f..3d02e9dd46a 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index 90527250a4d..b7a841170a2 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -35,7 +35,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index 442b3f730a8..c3a18f03786 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -83,7 +83,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -110,7 +110,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -137,7 +137,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -164,7 +164,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -191,7 +191,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -218,7 +218,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -245,7 +245,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -272,7 +272,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -291,7 +291,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -310,7 +310,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -329,7 +329,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index e71c315dbad..9434294daf4 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -35,7 +35,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 08926056847..2e3760d2115 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index d7852c1184a..d4d88060405 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -35,7 +35,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 78fd51e521f..a4fb298c33b 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -35,7 +35,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Animal.java
index 44e94a714b7..13eab940817 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Animal.java
@@ -53,7 +53,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -72,7 +72,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 29b207211ca..82f57b75f44 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -45,7 +45,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index c355a668b99..30fd1ee2f00 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -45,7 +45,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayTest.java
index c69acc510f4..a1468c90554 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ArrayTest.java
@@ -53,7 +53,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -80,7 +80,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -107,7 +107,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCat.java
index 5d7449c2d10..1d952b24646 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCat.java
@@ -78,7 +78,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCatAllOf.java
index 622f8115d00..c9532c1e3f1 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -75,7 +75,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Capitalization.java
index 58d0d2889df..eb734357980 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Capitalization.java
@@ -48,7 +48,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -67,7 +67,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -86,7 +86,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -105,7 +105,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -124,7 +124,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -143,7 +143,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Cat.java
index 4c82aa5413a..ce3da009d71 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Cat.java
@@ -47,7 +47,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/CatAllOf.java
index a7e5bd6ef8c..df8376c4a99 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/CatAllOf.java
@@ -35,7 +35,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Category.java
index eadae546511..ea14aa64d4b 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Category.java
@@ -36,7 +36,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -55,7 +55,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ClassModel.java
index 27ee22fe70e..348a9826cbf 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ClassModel.java
@@ -34,7 +34,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Client.java
index b314b7e6c40..082355c8ef4 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Client.java
@@ -33,7 +33,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Dog.java
index d7f0d7f3ca6..14d4446e57f 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Dog.java
@@ -38,7 +38,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/DogAllOf.java
index 9115e097a41..318dcd160d8 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/DogAllOf.java
@@ -35,7 +35,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumArrays.java
index f6d26222d3d..5c87c8ab9e8 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumArrays.java
@@ -110,7 +110,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -137,7 +137,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumTest.java
index 5029217180e..8bc42c5fb63 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/EnumTest.java
@@ -193,7 +193,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -212,7 +212,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -231,7 +231,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -250,7 +250,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -269,7 +269,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/File.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/File.java
index 7aa43240699..87a7c66e2be 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/File.java
@@ -34,7 +34,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index a8dde57867d..464d1f90177 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -40,7 +40,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -67,7 +67,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FormatTest.java
index d1f46558af5..18815152393 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/FormatTest.java
@@ -84,7 +84,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -105,7 +105,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -124,7 +124,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -145,7 +145,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -166,7 +166,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -187,7 +187,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -206,7 +206,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -225,7 +225,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -244,7 +244,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -263,7 +263,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -282,7 +282,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -301,7 +301,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -320,7 +320,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -339,7 +339,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index afca14167ef..b89d14273dd 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -38,7 +38,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -57,7 +57,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MapTest.java
index da65e5c4ef2..0655a757b5b 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MapTest.java
@@ -92,7 +92,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -119,7 +119,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -146,7 +146,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -173,7 +173,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d4b37f52b6c..5247bfb7123 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -47,7 +47,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -66,7 +66,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -93,7 +93,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Model200Response.java
index cab3e70b228..2e6f7a15434 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Model200Response.java
@@ -39,7 +39,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -58,7 +58,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelApiResponse.java
index c9f3676db04..f807aba2ada 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -41,7 +41,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -60,7 +60,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -79,7 +79,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelList.java
index 752a252ea43..d6dc995cbfb 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelList.java
@@ -35,7 +35,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelReturn.java
index 83d5c50471b..8529857c782 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ModelReturn.java
@@ -36,7 +36,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Name.java
index b056fee672b..7ea2ac488f5 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Name.java
@@ -43,7 +43,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -62,7 +62,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -81,7 +81,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -100,7 +100,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/NumberOnly.java
index dd76d23b712..6baa3007a5c 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/NumberOnly.java
@@ -34,7 +34,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Order.java
index 9dde7506292..780632475ec 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Order.java
@@ -89,7 +89,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -108,7 +108,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -127,7 +127,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -146,7 +146,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -165,7 +165,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -184,7 +184,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/OuterComposite.java
index ee285c36534..aad108f959c 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/OuterComposite.java
@@ -40,7 +40,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -59,7 +59,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -78,7 +78,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Pet.java
index f727b1fd13c..b5a0adaf32a 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Pet.java
@@ -95,7 +95,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -114,7 +114,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -133,7 +133,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -160,7 +160,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -188,7 +188,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -207,7 +207,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 8a406167b2d..20f99f09046 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -36,7 +36,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -55,7 +55,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/SpecialModelName.java
index b90088c8416..5832d6c123e 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -35,7 +35,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Tag.java
index 8d89066ef81..a194f91e1a7 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/Tag.java
@@ -36,7 +36,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -55,7 +55,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderDefault.java
index aa063c93117..58d15bcd940 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -49,7 +49,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -68,7 +68,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -87,7 +87,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -106,7 +106,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -133,7 +133,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderExample.java
index eb2fb13585b..4856b64ceec 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -52,7 +52,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -71,7 +71,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -90,7 +90,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -109,7 +109,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -128,7 +128,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -155,7 +155,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/User.java
index 05af7907f06..5d6889ef891 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/User.java
@@ -54,7 +54,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -73,7 +73,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -92,7 +92,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -111,7 +111,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -130,7 +130,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -149,7 +149,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -168,7 +168,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -187,7 +187,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/XmlItem.java
index 7f777c90064..6d4d39acfa2 100644
--- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/model/XmlItem.java
@@ -129,7 +129,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -148,7 +148,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -167,7 +167,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -186,7 +186,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -213,7 +213,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -232,7 +232,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -251,7 +251,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -270,7 +270,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -289,7 +289,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -316,7 +316,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -343,7 +343,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -362,7 +362,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -381,7 +381,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -400,7 +400,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -419,7 +419,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -446,7 +446,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -473,7 +473,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -492,7 +492,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -511,7 +511,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -530,7 +530,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -549,7 +549,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -576,7 +576,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -603,7 +603,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -622,7 +622,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -641,7 +641,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -660,7 +660,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -679,7 +679,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -706,7 +706,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -733,7 +733,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/File.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/File.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/File.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayTest.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCat.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Capitalization.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/CatAllOf.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ClassModel.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Client.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Client.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/DogAllOf.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumArrays.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumTest.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/File.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/File.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FormatTest.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MapTest.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Model200Response.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelList.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelReturn.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Name.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Name.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/NumberOnly.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/OuterComposite.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Category.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Category.java
index 24264bce8b2..18b55b13d16 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Category.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Category.java
@@ -38,7 +38,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/ModelApiResponse.java
index 18e0004c335..e18ac769bd2 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -43,7 +43,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -62,7 +62,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -81,7 +81,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Order.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Order.java
index 04bee348f98..317082440c6 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Order.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Order.java
@@ -91,7 +91,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -110,7 +110,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -129,7 +129,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -148,7 +148,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -167,7 +167,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -186,7 +186,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Pet.java
index f702d09a1a8..ed6b8078f50 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Pet.java
@@ -94,7 +94,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -113,7 +113,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -132,7 +132,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -156,7 +156,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -183,7 +183,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -202,7 +202,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Tag.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Tag.java
index b4d9d7b0a13..b748650e3c0 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/Tag.java
@@ -38,7 +38,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -57,7 +57,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/User.java b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/User.java
index 01b7db75ca7..ac6ddb97bbc 100644
--- a/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/User.java
+++ b/samples/openapi3/server/petstore/springboot/src/main/java/org/openapitools/model/User.java
@@ -56,7 +56,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -75,7 +75,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -94,7 +94,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -113,7 +113,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -132,7 +132,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -151,7 +151,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -170,7 +170,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -189,7 +189,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/server/petstore/java-camel/pom.xml b/samples/server/petstore/java-camel/pom.xml
index e64d7734682..3f88fc3d70d 100644
--- a/samples/server/petstore/java-camel/pom.xml
+++ b/samples/server/petstore/java-camel/pom.xml
@@ -127,7 +127,7 @@ Do not edit the class manually.
         <dependency>
             <groupId>io.swagger.core.v3</groupId>
             <artifactId>swagger-annotations</artifactId>
-            <version>2.1.11</version>
+            <version>2.2.7</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Category.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Category.java
index d74962ea191..72502d0f0e2 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Category.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Category.java
@@ -48,7 +48,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -67,7 +67,7 @@ public class Category {
    * @return name
   */
   @Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$") 
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/ModelApiResponse.java
index 8a01264cac0..d7fd8f87d92 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -54,7 +54,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -73,7 +73,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -92,7 +92,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Order.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Order.java
index d5741789984..a2507752ed0 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Order.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Order.java
@@ -105,7 +105,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -124,7 +124,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -143,7 +143,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -162,7 +162,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Date getShipDate() {
     return shipDate;
   }
@@ -181,7 +181,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -200,7 +200,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Pet.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Pet.java
index 43f830ce295..280811e8567 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Pet.java
@@ -108,7 +108,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -127,7 +127,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -146,7 +146,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -170,7 +170,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -197,7 +197,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -216,7 +216,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Tag.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Tag.java
index 84a8c85754e..e841695b5e0 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/Tag.java
@@ -48,7 +48,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -67,7 +67,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/User.java b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/User.java
index b7f1e01576b..5a2a1168ea8 100644
--- a/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/User.java
+++ b/samples/server/petstore/java-camel/src/main/java/org/openapitools/model/User.java
@@ -72,7 +72,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -91,7 +91,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -110,7 +110,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -129,7 +129,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -148,7 +148,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -167,7 +167,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -186,7 +186,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -205,7 +205,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/server/petstore/java-micronaut-server/pom.xml b/samples/server/petstore/java-micronaut-server/pom.xml
index 06ae693317c..ac6472d5d8d 100644
--- a/samples/server/petstore/java-micronaut-server/pom.xml
+++ b/samples/server/petstore/java-micronaut-server/pom.xml
@@ -22,7 +22,7 @@
         <micronaut.version>3.4.3</micronaut.version>
         <exec.mainClass>org.openapitools.Application</exec.mainClass>
         <micronaut.runtime>netty</micronaut.runtime>
-        <swagger-annotations-version>2.2.0</swagger-annotations-version>
+        <swagger-annotations-version>2.2.7</swagger-annotations-version>
     </properties>
 
     <repositories>
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Category.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Category.java
index 9bfa4b7c9b4..1de389611a7 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Category.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Category.java
@@ -53,7 +53,7 @@ public class Category {
      * @return id
      **/
     @Nullable
-    @Schema(name = "id", required = false)
+    @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getId() {
@@ -77,7 +77,7 @@ public class Category {
      **/
     @Nullable
     @Pattern(regexp="^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$")
-    @Schema(name = "name", required = false)
+    @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_NAME)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getName() {
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/ModelApiResponse.java
index fe1b67499eb..91ecfafb30e 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -58,7 +58,7 @@ public class ModelApiResponse {
      * @return code
      **/
     @Nullable
-    @Schema(name = "code", required = false)
+    @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_CODE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Integer getCode() {
@@ -81,7 +81,7 @@ public class ModelApiResponse {
      * @return type
      **/
     @Nullable
-    @Schema(name = "type", required = false)
+    @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_TYPE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getType() {
@@ -104,7 +104,7 @@ public class ModelApiResponse {
      * @return message
      **/
     @Nullable
-    @Schema(name = "message", required = false)
+    @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_MESSAGE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getMessage() {
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Order.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Order.java
index 7594d35deea..f759446ae7c 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Order.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Order.java
@@ -104,7 +104,7 @@ public class Order {
      * @return id
      **/
     @Nullable
-    @Schema(name = "id", required = false)
+    @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getId() {
@@ -127,7 +127,7 @@ public class Order {
      * @return petId
      **/
     @Nullable
-    @Schema(name = "petId", required = false)
+    @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_PET_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getPetId() {
@@ -150,7 +150,7 @@ public class Order {
      * @return quantity
      **/
     @Nullable
-    @Schema(name = "quantity", required = false)
+    @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_QUANTITY)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Integer getQuantity() {
@@ -173,7 +173,7 @@ public class Order {
      * @return shipDate
      **/
     @Nullable
-    @Schema(name = "shipDate", required = false)
+    @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_SHIP_DATE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
@@ -198,7 +198,7 @@ public class Order {
      * @return status
      **/
     @Nullable
-    @Schema(name = "status", description = "Order Status", required = false)
+    @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_STATUS)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public StatusEnum getStatus() {
@@ -221,7 +221,7 @@ public class Order {
      * @return complete
      **/
     @Nullable
-    @Schema(name = "complete", required = false)
+    @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_COMPLETE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Boolean getComplete() {
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Pet.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Pet.java
index 1a4b66d3350..1ce739e5bec 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Pet.java
@@ -109,7 +109,7 @@ public class Pet {
      * @return id
      **/
     @Nullable
-    @Schema(name = "id", required = false)
+    @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getId() {
@@ -133,7 +133,7 @@ public class Pet {
      **/
     @Valid
     @Nullable
-    @Schema(name = "category", required = false)
+    @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_CATEGORY)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Category getCategory() {
@@ -156,7 +156,7 @@ public class Pet {
      * @return name
      **/
     @NotNull
-    @Schema(name = "name", example = "doggie", required = true)
+    @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
     @JsonProperty(JSON_PROPERTY_NAME)
     @JsonInclude(value = JsonInclude.Include.ALWAYS)
     public String getName() {
@@ -184,7 +184,7 @@ public class Pet {
      * @return photoUrls
      **/
     @NotNull
-    @Schema(name = "photoUrls", required = true)
+    @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
     @JsonProperty(JSON_PROPERTY_PHOTO_URLS)
     @JsonInclude(value = JsonInclude.Include.ALWAYS)
     public List<String> getPhotoUrls() {
@@ -215,7 +215,7 @@ public class Pet {
      * @return tags
      **/
     @Nullable
-    @Schema(name = "tags", required = false)
+    @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_TAGS)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public List<Tag> getTags() {
@@ -238,7 +238,7 @@ public class Pet {
      * @return status
      **/
     @Nullable
-    @Schema(name = "status", description = "pet status in the store", required = false)
+    @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_STATUS)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public StatusEnum getStatus() {
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Tag.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Tag.java
index b94c645596e..fe4dd0f4676 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/Tag.java
@@ -53,7 +53,7 @@ public class Tag {
      * @return id
      **/
     @Nullable
-    @Schema(name = "id", required = false)
+    @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getId() {
@@ -76,7 +76,7 @@ public class Tag {
      * @return name
      **/
     @Nullable
-    @Schema(name = "name", required = false)
+    @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_NAME)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getName() {
diff --git a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/User.java b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/User.java
index 17cf05d120b..e1e76dd010f 100644
--- a/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/User.java
+++ b/samples/server/petstore/java-micronaut-server/src/main/java/org/openapitools/model/User.java
@@ -77,7 +77,7 @@ public class User {
      * @return id
      **/
     @Nullable
-    @Schema(name = "id", required = false)
+    @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_ID)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Long getId() {
@@ -100,7 +100,7 @@ public class User {
      * @return username
      **/
     @Nullable
-    @Schema(name = "username", required = false)
+    @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_USERNAME)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getUsername() {
@@ -123,7 +123,7 @@ public class User {
      * @return firstName
      **/
     @Nullable
-    @Schema(name = "firstName", required = false)
+    @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_FIRST_NAME)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getFirstName() {
@@ -146,7 +146,7 @@ public class User {
      * @return lastName
      **/
     @Nullable
-    @Schema(name = "lastName", required = false)
+    @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_LAST_NAME)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getLastName() {
@@ -169,7 +169,7 @@ public class User {
      * @return email
      **/
     @Nullable
-    @Schema(name = "email", required = false)
+    @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_EMAIL)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getEmail() {
@@ -192,7 +192,7 @@ public class User {
      * @return password
      **/
     @Nullable
-    @Schema(name = "password", required = false)
+    @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_PASSWORD)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getPassword() {
@@ -215,7 +215,7 @@ public class User {
      * @return phone
      **/
     @Nullable
-    @Schema(name = "phone", required = false)
+    @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_PHONE)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public String getPhone() {
@@ -238,7 +238,7 @@ public class User {
      * @return userStatus
      **/
     @Nullable
-    @Schema(name = "userStatus", description = "User Status", required = false)
+    @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty(JSON_PROPERTY_USER_STATUS)
     @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
     public Integer getUserStatus() {
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
index 0d95d7f91b2..0661c1a9a8d 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
index 0a45cd0d195..a3f9c905789 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
index c53b449a507..db5f8d3ce35 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
index ae060d44dc4..14e13504a8c 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
index 87a903f3e7f..ff0d6d7241e 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
index 873d1c9c229..cc212be855d 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
index 97827d22d96..7c74b7de08d 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
index 53967d61903..6087e70dba7 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Animal.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Animal.java
index 8b3225fee19..079192f597a 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Animal.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
index 4fc6a6447db..42600354f74 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
index da4dc071cfd..2f6c19a8344 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayTest.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayTest.java
index 03052a955e3..966f7e19196 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayTest.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCat.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCat.java
index 344818cd160..1b367854915 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCat.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCatAllOf.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCatAllOf.java
index 96ddb1f49cd..741de9f41a3 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCatAllOf.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Capitalization.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Capitalization.java
index e7f3b66e481..0c56400050b 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Capitalization.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Cat.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Cat.java
index afce161498e..41d9863046f 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Cat.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/CatAllOf.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/CatAllOf.java
index bc83998fc4d..50a9c2cdce9 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/CatAllOf.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Category.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Category.java
index 586658c922c..980faf6cbc2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Category.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ClassModel.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ClassModel.java
index d3d25d6df8c..a1942e9c404 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ClassModel.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Client.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Client.java
index 7ed5fbaae18..c38b26829be 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Client.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Dog.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Dog.java
index 738b9fbffc6..e39fe3fdab2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Dog.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/DogAllOf.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/DogAllOf.java
index fbcd7127e41..256925a7841 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/DogAllOf.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumArrays.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumArrays.java
index 3c18fc1189f..2720e81c227 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumArrays.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumTest.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumTest.java
index dc15f99afe8..a92050b09f5 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumTest.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/File.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/File.java
index d9a8ab4aa1f..bf750ccdcb7 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/File.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FileSchemaTestClass.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FileSchemaTestClass.java
index 5794883ff56..845fb8ada82 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FileSchemaTestClass.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FormatTest.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FormatTest.java
index c4bacc257a3..23130acbb76 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FormatTest.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
index d817048f2a7..c218d0e02b8 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MapTest.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MapTest.java
index 55a10cdf8d0..9811806e0c8 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MapTest.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
index d58ed97c15d..bcf0155a1b2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Model200Response.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Model200Response.java
index 80ff3f1fc63..9ca96d114aa 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Model200Response.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelApiResponse.java
index ed829bcb62c..06c806057b5 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelApiResponse.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelList.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelList.java
index 56e79c55445..f168748f6a2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelList.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelReturn.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelReturn.java
index d95ce3f1549..641c56cd81c 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelReturn.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Name.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Name.java
index 32cec75d981..708b0b90b01 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Name.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/NumberOnly.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/NumberOnly.java
index 14fb6641f91..4a3b6beffa2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/NumberOnly.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Order.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Order.java
index 9b54a719dba..9a5b61bad43 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Order.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/OuterComposite.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/OuterComposite.java
index 461f98baa86..b66d6d38afb 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/OuterComposite.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Pet.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Pet.java
index c137885adb7..57f59823cde 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Pet.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ReadOnlyFirst.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ReadOnlyFirst.java
index 39862919e7c..8c43e7e8c30 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ReadOnlyFirst.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/SpecialModelName.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/SpecialModelName.java
index fb431f59071..c3d3aa9182e 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/SpecialModelName.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Tag.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Tag.java
index 75f3df1d0e1..03d5607e29b 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Tag.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderDefault.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderDefault.java
index 4d939d69a1e..e37caaf5784 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderDefault.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderExample.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderExample.java
index c9b40aac5fa..c821c0257d2 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderExample.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/User.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/User.java
index 9df36d40774..e09df9be7b7 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/User.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/XmlItem.java b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/XmlItem.java
index 3b3593e7179..1a4455cdaa8 100644
--- a/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/XmlItem.java
+++ b/samples/server/petstore/spring-boot-defaultInterface-unhandledException/src/main/java/org/openapitools/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
diff --git a/samples/server/petstore/spring-boot-nullable-set/src/main/java/org/openapitools/model/ObjectWithUniqueItems.java b/samples/server/petstore/spring-boot-nullable-set/src/main/java/org/openapitools/model/ObjectWithUniqueItems.java
index a322f8ae156..06109fa9bea 100644
--- a/samples/server/petstore/spring-boot-nullable-set/src/main/java/org/openapitools/model/ObjectWithUniqueItems.java
+++ b/samples/server/petstore/spring-boot-nullable-set/src/main/java/org/openapitools/model/ObjectWithUniqueItems.java
@@ -73,7 +73,7 @@ public class ObjectWithUniqueItems {
    * @return nullSet
   */
   
-  @Schema(name = "nullSet", required = false)
+  @Schema(name = "nullSet", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JsonNullable<Set<String>> getNullSet() {
     return nullSet;
   }
@@ -100,7 +100,7 @@ public class ObjectWithUniqueItems {
    * @return notNullSet
   */
   
-  @Schema(name = "notNullSet", required = false)
+  @Schema(name = "notNullSet", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Set<String> getNotNullSet() {
     return notNullSet;
   }
@@ -128,7 +128,7 @@ public class ObjectWithUniqueItems {
    * @return nullList
   */
   
-  @Schema(name = "nullList", required = false)
+  @Schema(name = "nullList", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JsonNullable<List<String>> getNullList() {
     return nullList;
   }
@@ -155,7 +155,7 @@ public class ObjectWithUniqueItems {
    * @return notNullList
   */
   
-  @Schema(name = "notNullList", required = false)
+  @Schema(name = "notNullList", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getNotNullList() {
     return notNullList;
   }
@@ -174,7 +174,7 @@ public class ObjectWithUniqueItems {
    * @return notNullDateField
   */
   @Valid 
-  @Schema(name = "notNullDateField", required = false)
+  @Schema(name = "notNullDateField", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getNotNullDateField() {
     return notNullDateField;
   }
@@ -193,7 +193,7 @@ public class ObjectWithUniqueItems {
    * @return nullDateField
   */
   @Valid 
-  @Schema(name = "nullDateField", required = false)
+  @Schema(name = "nullDateField", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getNullDateField() {
     return nullDateField;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesAnyType.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesAnyType.java
index 05466a3fc21..9f4aa42c851 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesAnyType.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesAnyType.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesAnyType extends HashMap<String, Object> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesArray.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesArray.java
index c210e8ba863..a17c327fe24 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesArray.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesArray.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesArray extends HashMap<String, List> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesBoolean.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesBoolean.java
index 47f6c5c1054..d1c746ffd00 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesBoolean.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesBoolean.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesBoolean extends HashMap<String, Boolean> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesClass.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesClass.java
index 051fc225617..e85950e89e5 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesClass.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesClass.java
@@ -84,7 +84,7 @@ public class AdditionalPropertiesClass {
    * @return mapString
   */
   
-  @Schema(name = "map_string", required = false)
+  @Schema(name = "map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, String> getMapString() {
     return mapString;
   }
@@ -111,7 +111,7 @@ public class AdditionalPropertiesClass {
    * @return mapNumber
   */
   @Valid 
-  @Schema(name = "map_number", required = false)
+  @Schema(name = "map_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, BigDecimal> getMapNumber() {
     return mapNumber;
   }
@@ -138,7 +138,7 @@ public class AdditionalPropertiesClass {
    * @return mapInteger
   */
   
-  @Schema(name = "map_integer", required = false)
+  @Schema(name = "map_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Integer> getMapInteger() {
     return mapInteger;
   }
@@ -165,7 +165,7 @@ public class AdditionalPropertiesClass {
    * @return mapBoolean
   */
   
-  @Schema(name = "map_boolean", required = false)
+  @Schema(name = "map_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getMapBoolean() {
     return mapBoolean;
   }
@@ -192,7 +192,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayInteger
   */
   @Valid 
-  @Schema(name = "map_array_integer", required = false)
+  @Schema(name = "map_array_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Integer>> getMapArrayInteger() {
     return mapArrayInteger;
   }
@@ -219,7 +219,7 @@ public class AdditionalPropertiesClass {
    * @return mapArrayAnytype
   */
   @Valid 
-  @Schema(name = "map_array_anytype", required = false)
+  @Schema(name = "map_array_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, List<Object>> getMapArrayAnytype() {
     return mapArrayAnytype;
   }
@@ -246,7 +246,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapString
   */
   @Valid 
-  @Schema(name = "map_map_string", required = false)
+  @Schema(name = "map_map_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapString() {
     return mapMapString;
   }
@@ -273,7 +273,7 @@ public class AdditionalPropertiesClass {
    * @return mapMapAnytype
   */
   @Valid 
-  @Schema(name = "map_map_anytype", required = false)
+  @Schema(name = "map_map_anytype", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, Object>> getMapMapAnytype() {
     return mapMapAnytype;
   }
@@ -292,7 +292,7 @@ public class AdditionalPropertiesClass {
    * @return anytype1
   */
   
-  @Schema(name = "anytype_1", required = false)
+  @Schema(name = "anytype_1", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype1() {
     return anytype1;
   }
@@ -311,7 +311,7 @@ public class AdditionalPropertiesClass {
    * @return anytype2
   */
   
-  @Schema(name = "anytype_2", required = false)
+  @Schema(name = "anytype_2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype2() {
     return anytype2;
   }
@@ -330,7 +330,7 @@ public class AdditionalPropertiesClass {
    * @return anytype3
   */
   
-  @Schema(name = "anytype_3", required = false)
+  @Schema(name = "anytype_3", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Object getAnytype3() {
     return anytype3;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesInteger.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesInteger.java
index 18ad45a0755..b1ae91765bf 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesInteger.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesInteger.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesInteger extends HashMap<String, Integer> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesNumber.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesNumber.java
index 0dae708a3c2..c5fea24d469 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesNumber.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesNumber.java
@@ -37,7 +37,7 @@ public class AdditionalPropertiesNumber extends HashMap<String, BigDecimal> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesObject.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesObject.java
index a4a85527c5d..068cdeda3b0 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesObject.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesObject.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesObject extends HashMap<String, Map> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesString.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesString.java
index a8ae509b354..e351a15df69 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesString.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/AdditionalPropertiesString.java
@@ -36,7 +36,7 @@ public class AdditionalPropertiesString extends HashMap<String, String> {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Animal.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Animal.java
index 7238fc7b80b..7d50fcbc3ac 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Animal.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Animal.java
@@ -54,7 +54,7 @@ public class Animal {
    * @return className
   */
   @NotNull 
-  @Schema(name = "className", required = true)
+  @Schema(name = "className", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getClassName() {
     return className;
   }
@@ -73,7 +73,7 @@ public class Animal {
    * @return color
   */
   
-  @Schema(name = "color", required = false)
+  @Schema(name = "color", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getColor() {
     return color;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfArrayOfNumberOnly.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfArrayOfNumberOnly.java
index 7882ddfa036..9e659a77e5f 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfArrayOfNumberOnly.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfArrayOfNumberOnly {
    * @return arrayArrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayArrayNumber", required = false)
+  @Schema(name = "ArrayArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<BigDecimal>> getArrayArrayNumber() {
     return arrayArrayNumber;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfNumberOnly.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfNumberOnly.java
index ef93d88d750..57218ff5084 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfNumberOnly.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayOfNumberOnly.java
@@ -46,7 +46,7 @@ public class ArrayOfNumberOnly {
    * @return arrayNumber
   */
   @Valid 
-  @Schema(name = "ArrayNumber", required = false)
+  @Schema(name = "ArrayNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<BigDecimal> getArrayNumber() {
     return arrayNumber;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayTest.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayTest.java
index 2398d2c3c4f..9eff2d1cb79 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayTest.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ArrayTest.java
@@ -54,7 +54,7 @@ public class ArrayTest {
    * @return arrayOfString
   */
   
-  @Schema(name = "array_of_string", required = false)
+  @Schema(name = "array_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<String> getArrayOfString() {
     return arrayOfString;
   }
@@ -81,7 +81,7 @@ public class ArrayTest {
    * @return arrayArrayOfInteger
   */
   @Valid 
-  @Schema(name = "array_array_of_integer", required = false)
+  @Schema(name = "array_array_of_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<Long>> getArrayArrayOfInteger() {
     return arrayArrayOfInteger;
   }
@@ -108,7 +108,7 @@ public class ArrayTest {
    * @return arrayArrayOfModel
   */
   @Valid 
-  @Schema(name = "array_array_of_model", required = false)
+  @Schema(name = "array_array_of_model", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<List<ReadOnlyFirst>> getArrayArrayOfModel() {
     return arrayArrayOfModel;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCat.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCat.java
index e63d67bb8fe..5ed55f542ab 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCat.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCat.java
@@ -79,7 +79,7 @@ public class BigCat extends Cat {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCatAllOf.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCatAllOf.java
index e3269825bc2..b3f40bf8215 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCatAllOf.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/BigCatAllOf.java
@@ -76,7 +76,7 @@ public class BigCatAllOf {
    * @return kind
   */
   
-  @Schema(name = "kind", required = false)
+  @Schema(name = "kind", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public KindEnum getKind() {
     return kind;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Capitalization.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Capitalization.java
index 8e049e97576..ac66aa43baa 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Capitalization.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Capitalization.java
@@ -49,7 +49,7 @@ public class Capitalization {
    * @return smallCamel
   */
   
-  @Schema(name = "smallCamel", required = false)
+  @Schema(name = "smallCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallCamel() {
     return smallCamel;
   }
@@ -68,7 +68,7 @@ public class Capitalization {
    * @return capitalCamel
   */
   
-  @Schema(name = "CapitalCamel", required = false)
+  @Schema(name = "CapitalCamel", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalCamel() {
     return capitalCamel;
   }
@@ -87,7 +87,7 @@ public class Capitalization {
    * @return smallSnake
   */
   
-  @Schema(name = "small_Snake", required = false)
+  @Schema(name = "small_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSmallSnake() {
     return smallSnake;
   }
@@ -106,7 +106,7 @@ public class Capitalization {
    * @return capitalSnake
   */
   
-  @Schema(name = "Capital_Snake", required = false)
+  @Schema(name = "Capital_Snake", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getCapitalSnake() {
     return capitalSnake;
   }
@@ -125,7 +125,7 @@ public class Capitalization {
    * @return scAETHFlowPoints
   */
   
-  @Schema(name = "SCA_ETH_Flow_Points", required = false)
+  @Schema(name = "SCA_ETH_Flow_Points", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getScAETHFlowPoints() {
     return scAETHFlowPoints;
   }
@@ -144,7 +144,7 @@ public class Capitalization {
    * @return ATT_NAME
   */
   
-  @Schema(name = "ATT_NAME", description = "Name of the pet ", required = false)
+  @Schema(name = "ATT_NAME", description = "Name of the pet ", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getATTNAME() {
     return ATT_NAME;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Cat.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Cat.java
index c72be537261..8cd028aab21 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Cat.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Cat.java
@@ -48,7 +48,7 @@ public class Cat extends Animal {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/CatAllOf.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/CatAllOf.java
index 7d8a54bbb25..e8e73cc0c28 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/CatAllOf.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/CatAllOf.java
@@ -36,7 +36,7 @@ public class CatAllOf {
    * @return declawed
   */
   
-  @Schema(name = "declawed", required = false)
+  @Schema(name = "declawed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getDeclawed() {
     return declawed;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Category.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Category.java
index 7196d93ac03..f7257c19d17 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Category.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Category.java
@@ -37,7 +37,7 @@ public class Category {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Category {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ClassModel.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ClassModel.java
index 7258b240308..d3c9c803ec3 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ClassModel.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ClassModel.java
@@ -35,7 +35,7 @@ public class ClassModel {
    * @return propertyClass
   */
   
-  @Schema(name = "_class", required = false)
+  @Schema(name = "_class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Client.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Client.java
index aba5b243b70..7aa7dd5ee0c 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Client.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Client.java
@@ -34,7 +34,7 @@ public class Client {
    * @return client
   */
   
-  @Schema(name = "client", required = false)
+  @Schema(name = "client", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getClient() {
     return client;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Dog.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Dog.java
index 435e0205069..880447cade4 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Dog.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Dog.java
@@ -39,7 +39,7 @@ public class Dog extends Animal {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/DogAllOf.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/DogAllOf.java
index fc1e59acc0e..0e8f816aa4f 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/DogAllOf.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/DogAllOf.java
@@ -36,7 +36,7 @@ public class DogAllOf {
    * @return breed
   */
   
-  @Schema(name = "breed", required = false)
+  @Schema(name = "breed", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBreed() {
     return breed;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumArrays.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumArrays.java
index 78612a18929..bf35bb62dfb 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumArrays.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumArrays.java
@@ -111,7 +111,7 @@ public class EnumArrays {
    * @return justSymbol
   */
   
-  @Schema(name = "just_symbol", required = false)
+  @Schema(name = "just_symbol", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public JustSymbolEnum getJustSymbol() {
     return justSymbol;
   }
@@ -138,7 +138,7 @@ public class EnumArrays {
    * @return arrayEnum
   */
   
-  @Schema(name = "array_enum", required = false)
+  @Schema(name = "array_enum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<ArrayEnumEnum> getArrayEnum() {
     return arrayEnum;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumTest.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumTest.java
index dc6498a4974..658f63037c8 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumTest.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/EnumTest.java
@@ -194,7 +194,7 @@ public class EnumTest {
    * @return enumString
   */
   
-  @Schema(name = "enum_string", required = false)
+  @Schema(name = "enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumStringEnum getEnumString() {
     return enumString;
   }
@@ -213,7 +213,7 @@ public class EnumTest {
    * @return enumStringRequired
   */
   @NotNull 
-  @Schema(name = "enum_string_required", required = true)
+  @Schema(name = "enum_string_required", requiredMode = Schema.RequiredMode.REQUIRED)
   public EnumStringRequiredEnum getEnumStringRequired() {
     return enumStringRequired;
   }
@@ -232,7 +232,7 @@ public class EnumTest {
    * @return enumInteger
   */
   
-  @Schema(name = "enum_integer", required = false)
+  @Schema(name = "enum_integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumIntegerEnum getEnumInteger() {
     return enumInteger;
   }
@@ -251,7 +251,7 @@ public class EnumTest {
    * @return enumNumber
   */
   
-  @Schema(name = "enum_number", required = false)
+  @Schema(name = "enum_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public EnumNumberEnum getEnumNumber() {
     return enumNumber;
   }
@@ -270,7 +270,7 @@ public class EnumTest {
    * @return outerEnum
   */
   @Valid 
-  @Schema(name = "outerEnum", required = false)
+  @Schema(name = "outerEnum", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OuterEnum getOuterEnum() {
     return outerEnum;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/File.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/File.java
index 2ac7e4d1767..b98a0b9589e 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/File.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/File.java
@@ -35,7 +35,7 @@ public class File {
    * @return sourceURI
   */
   
-  @Schema(name = "sourceURI", description = "Test capitalization", required = false)
+  @Schema(name = "sourceURI", description = "Test capitalization", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getSourceURI() {
     return sourceURI;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FileSchemaTestClass.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FileSchemaTestClass.java
index 351da960661..5b4d38e083f 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FileSchemaTestClass.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FileSchemaTestClass.java
@@ -41,7 +41,7 @@ public class FileSchemaTestClass {
    * @return file
   */
   @Valid 
-  @Schema(name = "file", required = false)
+  @Schema(name = "file", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public File getFile() {
     return file;
   }
@@ -68,7 +68,7 @@ public class FileSchemaTestClass {
    * @return files
   */
   @Valid 
-  @Schema(name = "files", required = false)
+  @Schema(name = "files", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<File> getFiles() {
     return files;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FormatTest.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FormatTest.java
index 00b2379c9e7..ea57de0367c 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FormatTest.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/FormatTest.java
@@ -85,7 +85,7 @@ public class FormatTest {
    * @return integer
   */
   @Min(10) @Max(100) 
-  @Schema(name = "integer", required = false)
+  @Schema(name = "integer", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInteger() {
     return integer;
   }
@@ -106,7 +106,7 @@ public class FormatTest {
    * @return int32
   */
   @Min(20) @Max(200) 
-  @Schema(name = "int32", required = false)
+  @Schema(name = "int32", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getInt32() {
     return int32;
   }
@@ -125,7 +125,7 @@ public class FormatTest {
    * @return int64
   */
   
-  @Schema(name = "int64", required = false)
+  @Schema(name = "int64", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getInt64() {
     return int64;
   }
@@ -146,7 +146,7 @@ public class FormatTest {
    * @return number
   */
   @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2") 
-  @Schema(name = "number", required = true)
+  @Schema(name = "number", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumber() {
     return number;
   }
@@ -167,7 +167,7 @@ public class FormatTest {
    * @return _float
   */
   @DecimalMin("54.3") @DecimalMax("987.6") 
-  @Schema(name = "float", required = false)
+  @Schema(name = "float", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Float getFloat() {
     return _float;
   }
@@ -188,7 +188,7 @@ public class FormatTest {
    * @return _double
   */
   @DecimalMin("67.8") @DecimalMax("123.4") 
-  @Schema(name = "double", required = false)
+  @Schema(name = "double", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double getDouble() {
     return _double;
   }
@@ -207,7 +207,7 @@ public class FormatTest {
    * @return string
   */
   @Pattern(regexp = "/[a-z]/i") 
-  @Schema(name = "string", required = false)
+  @Schema(name = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getString() {
     return string;
   }
@@ -226,7 +226,7 @@ public class FormatTest {
    * @return _byte
   */
   @NotNull 
-  @Schema(name = "byte", required = true)
+  @Schema(name = "byte", requiredMode = Schema.RequiredMode.REQUIRED)
   public byte[] getByte() {
     return _byte;
   }
@@ -245,7 +245,7 @@ public class FormatTest {
    * @return binary
   */
   @Valid 
-  @Schema(name = "binary", required = false)
+  @Schema(name = "binary", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public org.springframework.core.io.Resource getBinary() {
     return binary;
   }
@@ -264,7 +264,7 @@ public class FormatTest {
    * @return date
   */
   @NotNull @Valid 
-  @Schema(name = "date", required = true)
+  @Schema(name = "date", requiredMode = Schema.RequiredMode.REQUIRED)
   public LocalDate getDate() {
     return date;
   }
@@ -283,7 +283,7 @@ public class FormatTest {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -302,7 +302,7 @@ public class FormatTest {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", required = false)
+  @Schema(name = "uuid", example = "72f98069-206d-4f12-9f12-3d1e525a8e84", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -321,7 +321,7 @@ public class FormatTest {
    * @return password
   */
   @NotNull @Size(min = 10, max = 64) 
-  @Schema(name = "password", required = true)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -340,7 +340,7 @@ public class FormatTest {
    * @return bigDecimal
   */
   @Valid 
-  @Schema(name = "BigDecimal", required = false)
+  @Schema(name = "BigDecimal", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getBigDecimal() {
     return bigDecimal;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/HasOnlyReadOnly.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/HasOnlyReadOnly.java
index 7a7571cfc37..cf9c6e9d27e 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/HasOnlyReadOnly.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/HasOnlyReadOnly.java
@@ -39,7 +39,7 @@ public class HasOnlyReadOnly {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -58,7 +58,7 @@ public class HasOnlyReadOnly {
    * @return foo
   */
   
-  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "foo", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFoo() {
     return foo;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MapTest.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MapTest.java
index 2478f4c1059..d10f2317c38 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MapTest.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MapTest.java
@@ -93,7 +93,7 @@ public class MapTest {
    * @return mapMapOfString
   */
   @Valid 
-  @Schema(name = "map_map_of_string", required = false)
+  @Schema(name = "map_map_of_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Map<String, String>> getMapMapOfString() {
     return mapMapOfString;
   }
@@ -120,7 +120,7 @@ public class MapTest {
    * @return mapOfEnumString
   */
   
-  @Schema(name = "map_of_enum_string", required = false)
+  @Schema(name = "map_of_enum_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, InnerEnum> getMapOfEnumString() {
     return mapOfEnumString;
   }
@@ -147,7 +147,7 @@ public class MapTest {
    * @return directMap
   */
   
-  @Schema(name = "direct_map", required = false)
+  @Schema(name = "direct_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getDirectMap() {
     return directMap;
   }
@@ -174,7 +174,7 @@ public class MapTest {
    * @return indirectMap
   */
   
-  @Schema(name = "indirect_map", required = false)
+  @Schema(name = "indirect_map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Boolean> getIndirectMap() {
     return indirectMap;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MixedPropertiesAndAdditionalPropertiesClass.java
index 1f48c51c733..9a92421585e 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MixedPropertiesAndAdditionalPropertiesClass.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -48,7 +48,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return uuid
   */
   @Valid 
-  @Schema(name = "uuid", required = false)
+  @Schema(name = "uuid", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public UUID getUuid() {
     return uuid;
   }
@@ -67,7 +67,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return dateTime
   */
   @Valid 
-  @Schema(name = "dateTime", required = false)
+  @Schema(name = "dateTime", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getDateTime() {
     return dateTime;
   }
@@ -94,7 +94,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
    * @return map
   */
   @Valid 
-  @Schema(name = "map", required = false)
+  @Schema(name = "map", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Map<String, Animal> getMap() {
     return map;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Model200Response.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Model200Response.java
index a3e6d6c9563..3cbf29bb8ae 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Model200Response.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Model200Response.java
@@ -40,7 +40,7 @@ public class Model200Response {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -59,7 +59,7 @@ public class Model200Response {
    * @return propertyClass
   */
   
-  @Schema(name = "class", required = false)
+  @Schema(name = "class", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPropertyClass() {
     return propertyClass;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelApiResponse.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelApiResponse.java
index a26037d5676..c4c57e9b55a 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelApiResponse.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelApiResponse.java
@@ -42,7 +42,7 @@ public class ModelApiResponse {
    * @return code
   */
   
-  @Schema(name = "code", required = false)
+  @Schema(name = "code", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getCode() {
     return code;
   }
@@ -61,7 +61,7 @@ public class ModelApiResponse {
    * @return type
   */
   
-  @Schema(name = "type", required = false)
+  @Schema(name = "type", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getType() {
     return type;
   }
@@ -80,7 +80,7 @@ public class ModelApiResponse {
    * @return message
   */
   
-  @Schema(name = "message", required = false)
+  @Schema(name = "message", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMessage() {
     return message;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelList.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelList.java
index da454648982..4c9f7b965f0 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelList.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelList.java
@@ -36,7 +36,7 @@ public class ModelList {
    * @return _123list
   */
   
-  @Schema(name = "123-list", required = false)
+  @Schema(name = "123-list", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String get123list() {
     return _123list;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelReturn.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelReturn.java
index dae82c64844..4f7b1d6a707 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelReturn.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ModelReturn.java
@@ -37,7 +37,7 @@ public class ModelReturn {
    * @return _return
   */
   
-  @Schema(name = "return", required = false)
+  @Schema(name = "return", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getReturn() {
     return _return;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Name.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Name.java
index 30a39b90727..38efd12ee15 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Name.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Name.java
@@ -44,7 +44,7 @@ public class Name {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", required = true)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getName() {
     return name;
   }
@@ -63,7 +63,7 @@ public class Name {
    * @return snakeCase
   */
   
-  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "snake_case", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getSnakeCase() {
     return snakeCase;
   }
@@ -82,7 +82,7 @@ public class Name {
    * @return property
   */
   
-  @Schema(name = "property", required = false)
+  @Schema(name = "property", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getProperty() {
     return property;
   }
@@ -101,7 +101,7 @@ public class Name {
    * @return _123number
   */
   
-  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "123Number", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer get123number() {
     return _123number;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/NumberOnly.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/NumberOnly.java
index d244ec9f050..fa289a07a10 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/NumberOnly.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/NumberOnly.java
@@ -35,7 +35,7 @@ public class NumberOnly {
    * @return justNumber
   */
   @Valid 
-  @Schema(name = "JustNumber", required = false)
+  @Schema(name = "JustNumber", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getJustNumber() {
     return justNumber;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Order.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Order.java
index 97fdeb05392..6d2bc000943 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Order.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Order.java
@@ -90,7 +90,7 @@ public class Order {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -109,7 +109,7 @@ public class Order {
    * @return petId
   */
   
-  @Schema(name = "petId", required = false)
+  @Schema(name = "petId", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getPetId() {
     return petId;
   }
@@ -128,7 +128,7 @@ public class Order {
    * @return quantity
   */
   
-  @Schema(name = "quantity", required = false)
+  @Schema(name = "quantity", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getQuantity() {
     return quantity;
   }
@@ -147,7 +147,7 @@ public class Order {
    * @return shipDate
   */
   @Valid 
-  @Schema(name = "shipDate", required = false)
+  @Schema(name = "shipDate", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public OffsetDateTime getShipDate() {
     return shipDate;
   }
@@ -166,7 +166,7 @@ public class Order {
    * @return status
   */
   
-  @Schema(name = "status", description = "Order Status", required = false)
+  @Schema(name = "status", description = "Order Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
@@ -185,7 +185,7 @@ public class Order {
    * @return complete
   */
   
-  @Schema(name = "complete", required = false)
+  @Schema(name = "complete", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getComplete() {
     return complete;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/OuterComposite.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/OuterComposite.java
index 49051ed09a6..53b0591789c 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/OuterComposite.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/OuterComposite.java
@@ -41,7 +41,7 @@ public class OuterComposite {
    * @return myNumber
   */
   @Valid 
-  @Schema(name = "my_number", required = false)
+  @Schema(name = "my_number", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getMyNumber() {
     return myNumber;
   }
@@ -60,7 +60,7 @@ public class OuterComposite {
    * @return myString
   */
   
-  @Schema(name = "my_string", required = false)
+  @Schema(name = "my_string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getMyString() {
     return myString;
   }
@@ -79,7 +79,7 @@ public class OuterComposite {
    * @return myBoolean
   */
   
-  @Schema(name = "my_boolean", required = false)
+  @Schema(name = "my_boolean", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getMyBoolean() {
     return myBoolean;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Pet.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Pet.java
index e89318ef871..e5fe9d1292d 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Pet.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Pet.java
@@ -96,7 +96,7 @@ public class Pet {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -115,7 +115,7 @@ public class Pet {
    * @return category
   */
   @Valid 
-  @Schema(name = "category", required = false)
+  @Schema(name = "category", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Category getCategory() {
     return category;
   }
@@ -134,7 +134,7 @@ public class Pet {
    * @return name
   */
   @NotNull 
-  @Schema(name = "name", example = "doggie", required = true)
+  @Schema(name = "name", example = "doggie", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getName() {
     return name;
   }
@@ -158,7 +158,7 @@ public class Pet {
    * @return photoUrls
   */
   @NotNull 
-  @Schema(name = "photoUrls", required = true)
+  @Schema(name = "photoUrls", requiredMode = Schema.RequiredMode.REQUIRED)
   public Set<String> getPhotoUrls() {
     return photoUrls;
   }
@@ -186,7 +186,7 @@ public class Pet {
    * @return tags
   */
   @Valid 
-  @Schema(name = "tags", required = false)
+  @Schema(name = "tags", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Tag> getTags() {
     return tags;
   }
@@ -205,7 +205,7 @@ public class Pet {
    * @return status
   */
   
-  @Schema(name = "status", description = "pet status in the store", required = false)
+  @Schema(name = "status", description = "pet status in the store", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public StatusEnum getStatus() {
     return status;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ReadOnlyFirst.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ReadOnlyFirst.java
index b4b4688eb1a..ab46b7db4cd 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ReadOnlyFirst.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/ReadOnlyFirst.java
@@ -37,7 +37,7 @@ public class ReadOnlyFirst {
    * @return bar
   */
   
-  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, required = false)
+  @Schema(name = "bar", accessMode = Schema.AccessMode.READ_ONLY, requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBar() {
     return bar;
   }
@@ -56,7 +56,7 @@ public class ReadOnlyFirst {
    * @return baz
   */
   
-  @Schema(name = "baz", required = false)
+  @Schema(name = "baz", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getBaz() {
     return baz;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/SpecialModelName.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/SpecialModelName.java
index 7fb8738c725..c63be2646fe 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/SpecialModelName.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/SpecialModelName.java
@@ -36,7 +36,7 @@ public class SpecialModelName {
    * @return $specialPropertyName
   */
   
-  @Schema(name = "$special[property.name]", required = false)
+  @Schema(name = "$special[property.name]", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long get$SpecialPropertyName() {
     return $specialPropertyName;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Tag.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Tag.java
index 7d35a9fc13c..1924be7de11 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Tag.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -56,7 +56,7 @@ public class Tag {
    * @return name
   */
   
-  @Schema(name = "name", required = false)
+  @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getName() {
     return name;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderDefault.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderDefault.java
index a58fe18210f..faacdc8c3ea 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderDefault.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderDefault.java
@@ -50,7 +50,7 @@ public class TypeHolderDefault {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", required = true)
+  @Schema(name = "string_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -69,7 +69,7 @@ public class TypeHolderDefault {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", required = true)
+  @Schema(name = "number_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -88,7 +88,7 @@ public class TypeHolderDefault {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", required = true)
+  @Schema(name = "integer_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -107,7 +107,7 @@ public class TypeHolderDefault {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", required = true)
+  @Schema(name = "bool_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -131,7 +131,7 @@ public class TypeHolderDefault {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", required = true)
+  @Schema(name = "array_item", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderExample.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderExample.java
index 1adc44928ff..6b88530b5a7 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderExample.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/TypeHolderExample.java
@@ -53,7 +53,7 @@ public class TypeHolderExample {
    * @return stringItem
   */
   @NotNull 
-  @Schema(name = "string_item", example = "what", required = true)
+  @Schema(name = "string_item", example = "what", requiredMode = Schema.RequiredMode.REQUIRED)
   public String getStringItem() {
     return stringItem;
   }
@@ -72,7 +72,7 @@ public class TypeHolderExample {
    * @return numberItem
   */
   @NotNull @Valid 
-  @Schema(name = "number_item", example = "1.234", required = true)
+  @Schema(name = "number_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public BigDecimal getNumberItem() {
     return numberItem;
   }
@@ -91,7 +91,7 @@ public class TypeHolderExample {
    * @return floatItem
   */
   @NotNull 
-  @Schema(name = "float_item", example = "1.234", required = true)
+  @Schema(name = "float_item", example = "1.234", requiredMode = Schema.RequiredMode.REQUIRED)
   public Float getFloatItem() {
     return floatItem;
   }
@@ -110,7 +110,7 @@ public class TypeHolderExample {
    * @return integerItem
   */
   @NotNull 
-  @Schema(name = "integer_item", example = "-2", required = true)
+  @Schema(name = "integer_item", example = "-2", requiredMode = Schema.RequiredMode.REQUIRED)
   public Integer getIntegerItem() {
     return integerItem;
   }
@@ -129,7 +129,7 @@ public class TypeHolderExample {
    * @return boolItem
   */
   @NotNull 
-  @Schema(name = "bool_item", example = "true", required = true)
+  @Schema(name = "bool_item", example = "true", requiredMode = Schema.RequiredMode.REQUIRED)
   public Boolean getBoolItem() {
     return boolItem;
   }
@@ -153,7 +153,7 @@ public class TypeHolderExample {
    * @return arrayItem
   */
   @NotNull 
-  @Schema(name = "array_item", example = "[0, 1, 2, 3]", required = true)
+  @Schema(name = "array_item", example = "[0, 1, 2, 3]", requiredMode = Schema.RequiredMode.REQUIRED)
   public List<Integer> getArrayItem() {
     return arrayItem;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/User.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/User.java
index c5d187f6982..3a2458136cb 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/User.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/User.java
@@ -55,7 +55,7 @@ public class User {
    * @return id
   */
   
-  @Schema(name = "id", required = false)
+  @Schema(name = "id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Long getId() {
     return id;
   }
@@ -74,7 +74,7 @@ public class User {
    * @return username
   */
   
-  @Schema(name = "username", required = false)
+  @Schema(name = "username", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getUsername() {
     return username;
   }
@@ -93,7 +93,7 @@ public class User {
    * @return firstName
   */
   
-  @Schema(name = "firstName", required = false)
+  @Schema(name = "firstName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getFirstName() {
     return firstName;
   }
@@ -112,7 +112,7 @@ public class User {
    * @return lastName
   */
   
-  @Schema(name = "lastName", required = false)
+  @Schema(name = "lastName", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getLastName() {
     return lastName;
   }
@@ -131,7 +131,7 @@ public class User {
    * @return email
   */
   
-  @Schema(name = "email", required = false)
+  @Schema(name = "email", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getEmail() {
     return email;
   }
@@ -150,7 +150,7 @@ public class User {
    * @return password
   */
   
-  @Schema(name = "password", required = false)
+  @Schema(name = "password", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPassword() {
     return password;
   }
@@ -169,7 +169,7 @@ public class User {
    * @return phone
   */
   
-  @Schema(name = "phone", required = false)
+  @Schema(name = "phone", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPhone() {
     return phone;
   }
@@ -188,7 +188,7 @@ public class User {
    * @return userStatus
   */
   
-  @Schema(name = "userStatus", description = "User Status", required = false)
+  @Schema(name = "userStatus", description = "User Status", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getUserStatus() {
     return userStatus;
   }
diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java
index 2eb74edaad8..b13481f3fcd 100644
--- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java
+++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/model/XmlItem.java
@@ -130,7 +130,7 @@ public class XmlItem {
    * @return attributeString
   */
   
-  @Schema(name = "attribute_string", example = "string", required = false)
+  @Schema(name = "attribute_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getAttributeString() {
     return attributeString;
   }
@@ -149,7 +149,7 @@ public class XmlItem {
    * @return attributeNumber
   */
   @Valid 
-  @Schema(name = "attribute_number", example = "1.234", required = false)
+  @Schema(name = "attribute_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getAttributeNumber() {
     return attributeNumber;
   }
@@ -168,7 +168,7 @@ public class XmlItem {
    * @return attributeInteger
   */
   
-  @Schema(name = "attribute_integer", example = "-2", required = false)
+  @Schema(name = "attribute_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getAttributeInteger() {
     return attributeInteger;
   }
@@ -187,7 +187,7 @@ public class XmlItem {
    * @return attributeBoolean
   */
   
-  @Schema(name = "attribute_boolean", example = "true", required = false)
+  @Schema(name = "attribute_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getAttributeBoolean() {
     return attributeBoolean;
   }
@@ -214,7 +214,7 @@ public class XmlItem {
    * @return wrappedArray
   */
   
-  @Schema(name = "wrapped_array", required = false)
+  @Schema(name = "wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getWrappedArray() {
     return wrappedArray;
   }
@@ -233,7 +233,7 @@ public class XmlItem {
    * @return nameString
   */
   
-  @Schema(name = "name_string", example = "string", required = false)
+  @Schema(name = "name_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNameString() {
     return nameString;
   }
@@ -252,7 +252,7 @@ public class XmlItem {
    * @return nameNumber
   */
   @Valid 
-  @Schema(name = "name_number", example = "1.234", required = false)
+  @Schema(name = "name_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNameNumber() {
     return nameNumber;
   }
@@ -271,7 +271,7 @@ public class XmlItem {
    * @return nameInteger
   */
   
-  @Schema(name = "name_integer", example = "-2", required = false)
+  @Schema(name = "name_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNameInteger() {
     return nameInteger;
   }
@@ -290,7 +290,7 @@ public class XmlItem {
    * @return nameBoolean
   */
   
-  @Schema(name = "name_boolean", example = "true", required = false)
+  @Schema(name = "name_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNameBoolean() {
     return nameBoolean;
   }
@@ -317,7 +317,7 @@ public class XmlItem {
    * @return nameArray
   */
   
-  @Schema(name = "name_array", required = false)
+  @Schema(name = "name_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameArray() {
     return nameArray;
   }
@@ -344,7 +344,7 @@ public class XmlItem {
    * @return nameWrappedArray
   */
   
-  @Schema(name = "name_wrapped_array", required = false)
+  @Schema(name = "name_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNameWrappedArray() {
     return nameWrappedArray;
   }
@@ -363,7 +363,7 @@ public class XmlItem {
    * @return prefixString
   */
   
-  @Schema(name = "prefix_string", example = "string", required = false)
+  @Schema(name = "prefix_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixString() {
     return prefixString;
   }
@@ -382,7 +382,7 @@ public class XmlItem {
    * @return prefixNumber
   */
   @Valid 
-  @Schema(name = "prefix_number", example = "1.234", required = false)
+  @Schema(name = "prefix_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNumber() {
     return prefixNumber;
   }
@@ -401,7 +401,7 @@ public class XmlItem {
    * @return prefixInteger
   */
   
-  @Schema(name = "prefix_integer", example = "-2", required = false)
+  @Schema(name = "prefix_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixInteger() {
     return prefixInteger;
   }
@@ -420,7 +420,7 @@ public class XmlItem {
    * @return prefixBoolean
   */
   
-  @Schema(name = "prefix_boolean", example = "true", required = false)
+  @Schema(name = "prefix_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixBoolean() {
     return prefixBoolean;
   }
@@ -447,7 +447,7 @@ public class XmlItem {
    * @return prefixArray
   */
   
-  @Schema(name = "prefix_array", required = false)
+  @Schema(name = "prefix_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixArray() {
     return prefixArray;
   }
@@ -474,7 +474,7 @@ public class XmlItem {
    * @return prefixWrappedArray
   */
   
-  @Schema(name = "prefix_wrapped_array", required = false)
+  @Schema(name = "prefix_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixWrappedArray() {
     return prefixWrappedArray;
   }
@@ -493,7 +493,7 @@ public class XmlItem {
    * @return namespaceString
   */
   
-  @Schema(name = "namespace_string", example = "string", required = false)
+  @Schema(name = "namespace_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getNamespaceString() {
     return namespaceString;
   }
@@ -512,7 +512,7 @@ public class XmlItem {
    * @return namespaceNumber
   */
   @Valid 
-  @Schema(name = "namespace_number", example = "1.234", required = false)
+  @Schema(name = "namespace_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getNamespaceNumber() {
     return namespaceNumber;
   }
@@ -531,7 +531,7 @@ public class XmlItem {
    * @return namespaceInteger
   */
   
-  @Schema(name = "namespace_integer", example = "-2", required = false)
+  @Schema(name = "namespace_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getNamespaceInteger() {
     return namespaceInteger;
   }
@@ -550,7 +550,7 @@ public class XmlItem {
    * @return namespaceBoolean
   */
   
-  @Schema(name = "namespace_boolean", example = "true", required = false)
+  @Schema(name = "namespace_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getNamespaceBoolean() {
     return namespaceBoolean;
   }
@@ -577,7 +577,7 @@ public class XmlItem {
    * @return namespaceArray
   */
   
-  @Schema(name = "namespace_array", required = false)
+  @Schema(name = "namespace_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceArray() {
     return namespaceArray;
   }
@@ -604,7 +604,7 @@ public class XmlItem {
    * @return namespaceWrappedArray
   */
   
-  @Schema(name = "namespace_wrapped_array", required = false)
+  @Schema(name = "namespace_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getNamespaceWrappedArray() {
     return namespaceWrappedArray;
   }
@@ -623,7 +623,7 @@ public class XmlItem {
    * @return prefixNsString
   */
   
-  @Schema(name = "prefix_ns_string", example = "string", required = false)
+  @Schema(name = "prefix_ns_string", example = "string", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public String getPrefixNsString() {
     return prefixNsString;
   }
@@ -642,7 +642,7 @@ public class XmlItem {
    * @return prefixNsNumber
   */
   @Valid 
-  @Schema(name = "prefix_ns_number", example = "1.234", required = false)
+  @Schema(name = "prefix_ns_number", example = "1.234", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public BigDecimal getPrefixNsNumber() {
     return prefixNsNumber;
   }
@@ -661,7 +661,7 @@ public class XmlItem {
    * @return prefixNsInteger
   */
   
-  @Schema(name = "prefix_ns_integer", example = "-2", required = false)
+  @Schema(name = "prefix_ns_integer", example = "-2", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Integer getPrefixNsInteger() {
     return prefixNsInteger;
   }
@@ -680,7 +680,7 @@ public class XmlItem {
    * @return prefixNsBoolean
   */
   
-  @Schema(name = "prefix_ns_boolean", example = "true", required = false)
+  @Schema(name = "prefix_ns_boolean", example = "true", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Boolean getPrefixNsBoolean() {
     return prefixNsBoolean;
   }
@@ -707,7 +707,7 @@ public class XmlItem {
    * @return prefixNsArray
   */
   
-  @Schema(name = "prefix_ns_array", required = false)
+  @Schema(name = "prefix_ns_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsArray() {
     return prefixNsArray;
   }
@@ -734,7 +734,7 @@ public class XmlItem {
    * @return prefixNsWrappedArray
   */
   
-  @Schema(name = "prefix_ns_wrapped_array", required = false)
+  @Schema(name = "prefix_ns_wrapped_array", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public List<Integer> getPrefixNsWrappedArray() {
     return prefixNsWrappedArray;
   }
-- 
GitLab