diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
index 76bdf64501b3af8b0dc1ca102caddd0ac1c0b5e0..206732f8d547b3b8377fbcb53b5025e2b8b54668 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
@@ -154,6 +154,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
     private CodegenProperty items;
     private CodegenProperty additionalProperties;
     private boolean isModel;
+    private boolean hasRequiredVars;
 
     public String getAdditionalPropertiesType() {
         return additionalPropertiesType;
@@ -733,6 +734,16 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
         this.hasVars = hasVars;
     }
 
+    @Override
+    public boolean getHasRequired() {
+        return this.hasRequired;
+    }
+
+    @Override
+    public void setHasRequired(boolean hasRequired) {
+        this.hasRequired = hasRequired;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java
index 6a93e266730e15051d39507879b95c9988c18ca3..326785046d9a85d68755ce25e257a47b40a2dcc2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java
@@ -104,6 +104,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
     private Integer maxProperties;
     private Integer minProperties;
     public boolean isNull;
+    private boolean hasRequired;
 
     public CodegenParameter copy() {
         CodegenParameter output = new CodegenParameter();
@@ -153,6 +154,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
         output.isNull = this.isNull;
         output.setAdditionalPropertiesIsAnyType(this.getAdditionalPropertiesIsAnyType());
         output.setHasVars(this.hasVars);
+        output.setHasRequired(this.hasRequired);
 
         if (this._enum != null) {
             output._enum = new ArrayList<String>(this._enum);
@@ -207,7 +209,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 
     @Override
     public int hashCode() {
-        return Objects.hash(isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isContainer, isCollectionFormatMulti, isPrimitiveType, isModel, isExplode, baseName, paramName, dataType, datatypeWithEnum, dataFormat, collectionFormat, description, unescapedDescription, baseType, defaultValue, enumName, style, isDeepObject, example, jsonSchema, isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isFreeFormObject, isAnyType, isArray, isMap, isFile, isEnum, _enum, allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars, vendorExtensions, hasValidation, getMaxProperties(), getMinProperties(), isNullable, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, additionalPropertiesIsAnyType, hasVars);
+        return Objects.hash(isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isContainer, isCollectionFormatMulti, isPrimitiveType, isModel, isExplode, baseName, paramName, dataType, datatypeWithEnum, dataFormat, collectionFormat, description, unescapedDescription, baseType, defaultValue, enumName, style, isDeepObject, example, jsonSchema, isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isFreeFormObject, isAnyType, isArray, isMap, isFile, isEnum, _enum, allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars, vendorExtensions, hasValidation, getMaxProperties(), getMinProperties(), isNullable, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired);
     }
 
     @Override
@@ -254,6 +256,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
                 isNull == that.isNull &&
                 getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
                 getHasVars() == that.getHasVars() &&
+                getHasRequired() == that.getHasRequired() &&
                 getExclusiveMaximum() == that.getExclusiveMaximum() &&
                 getExclusiveMinimum() == that.getExclusiveMinimum() &&
                 getUniqueItems() == that.getUniqueItems() &&
@@ -372,6 +375,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
         sb.append(", isNull=").append(isNull);
         sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
         sb.append(", getHasVars=").append(hasVars);
+        sb.append(", getHasRequired=").append(hasRequired);
         sb.append('}');
         return sb.toString();
     }
@@ -619,5 +623,15 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
     public void setHasVars(boolean hasVars) {
         this.hasVars = hasVars;
     }
+
+    @Override
+    public boolean getHasRequired() {
+        return this.hasRequired;
+    }
+
+    @Override
+    public void setHasRequired(boolean hasRequired) {
+        this.hasRequired = hasRequired;
+    }
 }
 
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
index f00ef51ffba716d75074ca2a82217269f63892c8..ce54eaea389a9b1bbcbbdfe93474e3846493cce1 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
@@ -187,6 +187,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
     public boolean isXmlWrapped = false;
     private boolean additionalPropertiesIsAnyType;
     private boolean hasVars;
+    private boolean hasRequired;
 
     public String getBaseName() {
         return baseName;
@@ -715,6 +716,16 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
         this.hasVars = hasVars;
     }
 
+    @Override
+    public boolean getHasRequired() {
+        return this.hasRequired;
+    }
+
+    @Override
+    public void setHasRequired(boolean hasRequired) {
+        this.hasRequired = hasRequired;
+    }
+
     @Override
     public String toString() {
         final StringBuilder sb = new StringBuilder("CodegenProperty{");
@@ -806,6 +817,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
         sb.append(", isNull=").append(isNull);
         sb.append(", getAdditionalPropertiesIsAnyType=").append(getAdditionalPropertiesIsAnyType());
         sb.append(", getHasVars=").append(getHasVars());
+        sb.append(", getHasRequired=").append(getHasRequired());
         sb.append('}');
         return sb.toString();
     }
@@ -857,6 +869,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
                 isNull == that.isNull &&
                 getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
                 getHasVars() == that.getHasVars() &&
+                getHasRequired() ==that.getHasRequired() &&
                 Objects.equals(openApiType, that.openApiType) &&
                 Objects.equals(baseName, that.baseName) &&
                 Objects.equals(complexType, that.complexType) &&
@@ -918,6 +931,6 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
                 items, mostInnerItems, additionalProperties, vars, requiredVars,
                 vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase,
                 nameInSnakeCase, enumName, maxItems, minItems, isXmlAttribute, xmlPrefix, xmlName,
-                xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars);
+                xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired);
     }
 }
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
index 37a21190fc5aa229cc3c2ec770b280a2e432801a..bb062c1304fc65a16216e1e34d2398873546068e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
@@ -81,6 +81,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
     private boolean hasValidation;
     private boolean additionalPropertiesIsAnyType;
     private boolean hasVars;
+    private boolean hasRequired;
 
     @Override
     public int hashCode() {
@@ -91,7 +92,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
                 vars, requiredVars, isNull, hasValidation,
                 getMaxProperties(), getMinProperties(), uniqueItems, getMaxItems(), getMinItems(), getMaxLength(),
                 getMinLength(), exclusiveMinimum, exclusiveMaximum, getMinimum(), getMaximum(), getPattern(),
-                is1xx, is2xx, is3xx, is4xx, is5xx, additionalPropertiesIsAnyType, hasVars);
+                is1xx, is2xx, is3xx, is4xx, is5xx, additionalPropertiesIsAnyType, hasVars, hasRequired);
     }
 
     @Override
@@ -135,6 +136,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
                 is5xx == that.is5xx &&
                 getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
                 getHasVars() == that.getHasVars() &&
+                getHasRequired() == that.getHasRequired() &&
                 Objects.equals(vars, that.vars) &&
                 Objects.equals(requiredVars, that.requiredVars) &&
                 Objects.equals(headers, that.headers) &&
@@ -371,6 +373,16 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
         this.requiredVars = requiredVars;
     }
 
+    @Override
+    public boolean getHasRequired() {
+        return this.hasRequired;
+    }
+
+    @Override
+    public void setHasRequired(boolean hasRequired) {
+        this.hasRequired = hasRequired;
+    }
+
     @Override
     public String toString() {
         final StringBuilder sb = new StringBuilder("CodegenResponse{");
@@ -435,6 +447,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
         sb.append(", hasValidation='").append(hasValidation);
         sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
         sb.append(", getHasVars=").append(hasVars);
+        sb.append(", getHasRequired=").append(hasRequired);
         sb.append('}');
         return sb.toString();
     }
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index a5fce66d29c0d49635ab89b9b6d76bc1e02a7b99..1fb9fef9af591c16014c8c924670ab5a47784372 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -2565,6 +2565,10 @@ public class DefaultCodegen implements CodegenConfig {
             }
         }
 
+        if (m.requiredVars != null && m.requiredVars.size() > 0){
+            m.setHasRequired(true);
+        }
+
         if (sortModelPropertiesByRequiredFlag) {
             Comparator<CodegenProperty> comparator = new Comparator<CodegenProperty>() {
                 @Override
@@ -6149,6 +6153,9 @@ public class DefaultCodegen implements CodegenConfig {
                     .stream()
                     .filter(p -> Boolean.TRUE.equals(p.required)).collect(Collectors.toList());
             property.setRequiredVars(requireCpVars);
+            if (property.getRequiredVars() != null && property.getRequiredVars().size() > 0) {
+                property.setHasRequired(true);
+            }
         }
         setAddProps(schema, property);
     }
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java
index fa9c8f535976431cb6f80ffbcf990eccaf8fc9b6..4eb567b6cdc36b9835bc22cf1cec6af87cc6fea6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java
@@ -105,5 +105,9 @@ public interface IJsonSchemaValidationProperties {
 
     boolean getHasVars();
 
-    void setHasVars(boolean hasVars);
+    void setHasVars(boolean hasRequiredVars);
+
+    boolean getHasRequired();
+
+    void setHasRequired(boolean hasRequired);
 }
\ No newline at end of file
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index f103f744f0a2689bdfbc08d25624614ae072d785..17c5864fe008bc58a2f437be4d7254fb76b2fac5 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -3075,4 +3075,203 @@ public class DefaultCodegenTest {
         // does not have vars because the inline schema was extracted into a component ref
         assertEquals(co.responses.get(0).getHasVars(), false);
     }
+
+    @Test
+    public void testHasRequiredInModel() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_8906.yaml");
+        final DefaultCodegen codegen = new DefaultCodegen();
+        codegen.setOpenAPI(openAPI);
+        codegen.setDisallowAdditionalPropertiesIfNotPresent(false);
+
+        Schema sc;
+        CodegenModel cm;
+
+        List<String> modelNamesWithoutRequired = Arrays.asList(
+                "EmptyObject",
+                "ObjectWithOptionalB",
+                "AnyTypeNoPropertiesNoRequired",
+                "AnyTypeHasPropertiesNoRequired",
+                "AnyTypeNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectNoPropertiesNoRequired",
+                "ObjectHasPropertiesNoRequired",
+                "ObjectNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedNoAllofPropsNoPropertiesNoRequired",
+                "ComposedNoAllofPropsHasPropertiesNoRequired",
+                "ComposedNoAllofPropsNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofOptPropNoPropertiesNoRequired",
+                "ComposedHasAllofOptPropHasPropertiesNoRequired",
+                "ComposedHasAllofOptPropNoPropertiesHasRequired"  // TODO: hasRequired should be true, fix this
+        );
+        for (String modelName : modelNamesWithoutRequired) {
+            sc = openAPI.getComponents().getSchemas().get(modelName);
+            cm = codegen.fromModel(modelName, sc);
+            assertEquals(cm.getHasRequired(), false);
+        }
+
+        List<String> modelNamesWithRequired = Arrays.asList(
+                "AnyTypeHasPropertiesHasRequired",
+                "ObjectHasPropertiesHasRequired",
+                "ComposedNoAllofPropsHasPropertiesHasRequired",
+                "ComposedHasAllofOptPropHasPropertiesHasRequired",
+                "ComposedHasAllofReqPropNoPropertiesNoRequired",  // TODO: hasRequired should be false, fix this
+                "ComposedHasAllofReqPropHasPropertiesNoRequired",  // TODO: hasRequired should be false, fix this
+                "ComposedHasAllofReqPropNoPropertiesHasRequired",
+                "ComposedHasAllofReqPropHasPropertiesHasRequired"
+        );
+        for (String modelName : modelNamesWithRequired) {
+            sc = openAPI.getComponents().getSchemas().get(modelName);
+            cm = codegen.fromModel(modelName, sc);
+            assertEquals(cm.getHasRequired(), true);
+        }
+    }
+
+    @Test
+    public void testHasRequiredInProperties() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_8906.yaml");
+        final DefaultCodegen codegen = new DefaultCodegen();
+        codegen.setOpenAPI(openAPI);
+        codegen.setDisallowAdditionalPropertiesIfNotPresent(false);
+
+        String modelName = "CodegenPropertiesModel";
+        Schema sc = openAPI.getComponents().getSchemas().get(modelName);
+        CodegenModel cm = codegen.fromModel(modelName, sc);
+
+        HashSet<String> modelNamesWithoutRequired = new HashSet(Arrays.asList(
+                "EmptyObject",
+                "ObjectWithOptionalB",
+                "AnyTypeNoPropertiesNoRequired",
+                "AnyTypeHasPropertiesNoRequired",
+                "AnyTypeNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "AnyTypeHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectNoPropertiesNoRequired",
+                "ObjectHasPropertiesNoRequired", // Note: this is extracted into another component and is a ref
+                "ObjectNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedNoAllofPropsNoPropertiesNoRequired",
+                "ComposedNoAllofPropsHasPropertiesNoRequired",
+                "ComposedNoAllofPropsNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofOptPropNoPropertiesNoRequired",
+                "ComposedHasAllofOptPropHasPropertiesNoRequired",
+                "ComposedHasAllofOptPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedNoAllofPropsHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedHasAllofOptPropHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropNoPropertiesNoRequired",
+                "ComposedHasAllofReqPropHasPropertiesNoRequired",
+                "ComposedHasAllofReqPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropHasPropertiesHasRequired"  // TODO: hasRequired should be true, fix this
+        ));
+        HashSet<String> modelNamesWithRequired = new HashSet(Arrays.asList(
+        ));
+        for (CodegenProperty var : cm.getVars()) {
+            boolean hasRequired = var.getHasRequired();
+            if (modelNamesWithoutRequired.contains(var.name)) {
+                assertEquals(hasRequired, false);
+            } else if (modelNamesWithRequired.contains(var.name)) {
+                assertEquals(hasRequired, true);
+            } else {
+                // All variables must be in the above sets
+                 assertEquals(true, false);
+            }
+        }
+    }
+
+    @Test
+    public void testHasRequiredInParameters() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_8906.yaml");
+        final DefaultCodegen codegen = new DefaultCodegen();
+        codegen.setOpenAPI(openAPI);
+        codegen.setDisallowAdditionalPropertiesIfNotPresent(false);
+
+        String path = "/schemasInQueryParamsAndResponses";
+        Operation operation = openAPI.getPaths().get(path).getPost();
+        CodegenOperation co = codegen.fromOperation(path, "POST", operation, null);
+
+        HashSet<String> modelNamesWithoutRequired = new HashSet(Arrays.asList(
+                "EmptyObject",
+                "ObjectWithOptionalB",
+                "AnyTypeNoPropertiesNoRequired",
+                "AnyTypeHasPropertiesNoRequired",
+                "AnyTypeNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "AnyTypeHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectNoPropertiesNoRequired",
+                "ObjectHasPropertiesNoRequired", // Note: this is extracted into another component and is a ref
+                "ObjectNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedNoAllofPropsNoPropertiesNoRequired",
+                "ComposedNoAllofPropsHasPropertiesNoRequired",
+                "ComposedNoAllofPropsNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofOptPropNoPropertiesNoRequired",
+                "ComposedHasAllofOptPropHasPropertiesNoRequired",
+                "ComposedHasAllofOptPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedNoAllofPropsHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedHasAllofOptPropHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropNoPropertiesNoRequired",
+                "ComposedHasAllofReqPropHasPropertiesNoRequired",
+                "ComposedHasAllofReqPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropHasPropertiesHasRequired"  // TODO: hasRequired should be true, fix this
+        ));
+        HashSet<String> modelNamesWithRequired = new HashSet(Arrays.asList(
+        ));
+        for (CodegenParameter param : co.pathParams) {
+            boolean hasRequired = param.getHasRequired();
+            if (modelNamesWithoutRequired.contains(param.baseName)) {
+                assertEquals(hasRequired, false);
+            } else if (modelNamesWithRequired.contains(param.baseName)) {
+                assertEquals(hasRequired, true);
+            } else {
+                // All variables must be in the above sets
+                assertEquals(true, false);
+            }
+        }
+    }
+
+    @Test
+    public void testHasRequiredInResponses() {
+        final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_8906.yaml");
+        final DefaultCodegen codegen = new DefaultCodegen();
+        codegen.setOpenAPI(openAPI);
+        codegen.setDisallowAdditionalPropertiesIfNotPresent(false);
+
+        String path = "/schemasInQueryParamsAndResponses";
+        Operation operation = openAPI.getPaths().get(path).getPost();
+        CodegenOperation co = codegen.fromOperation(path, "POST", operation, null);
+
+        HashSet<String> modelNamesWithoutRequired = new HashSet(Arrays.asList(
+                "EmptyObject",
+                "ObjectWithOptionalB",
+                "AnyTypeNoPropertiesNoRequired",
+                "AnyTypeHasPropertiesNoRequired",
+                "AnyTypeNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "AnyTypeHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectNoPropertiesNoRequired",
+                "ObjectHasPropertiesNoRequired", // Note: this is extracted into another component and is a ref
+                "ObjectNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedNoAllofPropsNoPropertiesNoRequired",
+                "ComposedNoAllofPropsHasPropertiesNoRequired",
+                "ComposedNoAllofPropsNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofOptPropNoPropertiesNoRequired",
+                "ComposedHasAllofOptPropHasPropertiesNoRequired",
+                "ComposedHasAllofOptPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ObjectHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedNoAllofPropsHasPropertiesHasRequired", // False because this is extracted into another component and is a ref
+                "ComposedHasAllofOptPropHasPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropNoPropertiesNoRequired",
+                "ComposedHasAllofReqPropHasPropertiesNoRequired",
+                "ComposedHasAllofReqPropNoPropertiesHasRequired",  // TODO: hasRequired should be true, fix this
+                "ComposedHasAllofReqPropHasPropertiesHasRequired"  // TODO: hasRequired should be true, fix this
+        ));
+        HashSet<String> modelNamesWithRequired = new HashSet(Arrays.asList(
+        ));
+        for (CodegenResponse cr : co.responses) {
+            boolean hasRequired = cr.getHasRequired();
+            if (modelNamesWithoutRequired.contains(cr.message)) {
+                assertEquals(hasRequired, false);
+            } else if (modelNamesWithRequired.contains(cr.message)) {
+                assertEquals(hasRequired, true);
+            } else {
+                // All variables must be in the above sets
+                assertEquals(true, false);
+            }
+        }
+    }
 }
diff --git a/modules/openapi-generator/src/test/resources/3_0/issue_8906.yaml b/modules/openapi-generator/src/test/resources/3_0/issue_8906.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..10056087574c71a5fc59de767895d5d84a6aef6b
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/issue_8906.yaml
@@ -0,0 +1,586 @@
+openapi: 3.0.1
+info:
+  title: OpenAPI Petstore
+  description: "for schemas with properties and required ensure correct hasVars, hasRequired, vars, and requiredVars"
+  license:
+    name: Apache-2.0
+    url: https://www.apache.org/licenses/LICENSE-2.0.html
+  version: 1.0.0
+servers:
+  - url: http://petstore.swagger.io:80/v2
+tags: []
+paths:
+  /schemasInQueryParamsAndResponses:
+    post:
+      operationId: schemasInQueryParams
+      parameters:
+        - name: AnyTypeNoPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            description: "NoPropertiesNoRequired"
+        - name: AnyTypeHasPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            properties:
+              a:
+                type: string
+        - name: AnyTypeNoPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            required:
+              - a
+        - name: AnyTypeHasPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            required:
+              - a
+            properties:
+              a:
+                type: string
+        - name: ObjectNoPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            type: object
+        - name: ObjectHasPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            type: object
+            properties:
+              a:
+                type: string
+        - name: ObjectNoPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            type: object
+            required:
+              - a
+        - name: ObjectHasPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            type: object
+            required:
+              - a
+            properties:
+              a:
+                type: string
+        - name: ComposedNoAllofPropsNoPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/EmptyObject'
+        - name: ComposedNoAllofPropsHasPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/EmptyObject'
+            properties:
+              a:
+                type: string
+        - name: ComposedNoAllofPropsNoPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/EmptyObject'
+            required:
+              - a
+        - name: ComposedNoAllofPropsHasPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/EmptyObject'
+            required:
+              - a
+            properties:
+              a:
+                type: string
+        - name: ComposedHasAllofOptPropNoPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithOptionalB'
+        - name: ComposedHasAllofOptPropHasPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithOptionalB'
+            properties:
+              a:
+                type: string
+        - name: ComposedHasAllofOptPropNoPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithOptionalB'
+            required:
+              - a
+        - name: ComposedHasAllofOptPropHasPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithOptionalB'
+            required:
+              - a
+            properties:
+              a:
+                type: string
+        - name: ComposedHasAllofReqPropNoPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithRequiredB'
+        - name: ComposedHasAllofReqPropHasPropertiesNoRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithRequiredB'
+            properties:
+              a:
+                type: string
+        - name: ComposedHasAllofReqPropNoPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithRequiredB'
+            required:
+              - a
+        - name: ComposedHasAllofReqPropHasPropertiesHasRequired
+          in: query
+          required: true
+          schema:
+            allOf:
+              - $ref: '#/components/schemas/ObjectWithRequiredB'
+            required:
+              - a
+            properties:
+              a:
+                type: string
+      requestBody:
+        content:
+          application/json:
+            schema:
+              type: string
+        required: true
+      responses:
+        200:
+          description: AnyTypeNoPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                description: "NoPropertiesNoRequired"
+        201:
+          description: AnyTypeHasPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                properties:
+                  a:
+                    type: string
+        202:
+          description: AnyTypeNoPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                required:
+                  - a
+        203:
+          description: AnyTypeHasPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                required:
+                  - a
+                properties:
+                  a:
+                    type: string
+        210:
+          description: ObjectNoPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                type: object
+        211:
+          description: ObjectHasPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                type: object
+                properties:
+                  a:
+                    type: string
+        212:
+          description: ObjectNoPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                type: object
+                required:
+                  - a
+        213:
+          description: ObjectHasPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                type: object
+                required:
+                  - a
+                properties:
+                  a:
+                    type: string
+        220:
+          description: ComposedNoAllofPropsNoPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/EmptyObject'
+        221:
+          description: ComposedNoAllofPropsHasPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/EmptyObject'
+                properties:
+                  a:
+                    type: string
+        222:
+          description: ComposedNoAllofPropsNoPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/EmptyObject'
+                required:
+                  - a
+        223:
+          description: ComposedNoAllofPropsHasPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/EmptyObject'
+                required:
+                  - a
+                properties:
+                  a:
+                    type: string
+        230:
+          description: ComposedHasAllofOptPropNoPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithOptionalB'
+        231:
+          description: ComposedHasAllofOptPropHasPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithOptionalB'
+                properties:
+                  a:
+                    type: string
+        232:
+          description: ComposedHasAllofOptPropNoPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithOptionalB'
+                required:
+                  - a
+        233:
+          description: ComposedHasAllofOptPropHasPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithOptionalB'
+                required:
+                  - a
+                properties:
+                  a:
+                    type: string
+        240:
+          description: ComposedHasAllofReqPropNoPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithRequiredB'
+        241:
+          description: ComposedHasAllofReqPropHasPropertiesNoRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithRequiredB'
+                properties:
+                  a:
+                    type: string
+        242:
+          description: ComposedHasAllofReqPropNoPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithRequiredB'
+                required:
+                  - a
+        243:
+          description: ComposedHasAllofReqPropHasPropertiesHasRequired
+          content:
+            application/json:
+              schema:
+                allOf:
+                  - $ref: '#/components/schemas/ObjectWithRequiredB'
+                required:
+                  - a
+                properties:
+                  a:
+                    type: string
+components:
+  schemas:
+    EmptyObject:
+      type: object
+    ObjectWithOptionalB:
+      type: object
+      properties:
+        b:
+          type: string
+    ObjectWithRequiredB:
+      type: object
+      properties:
+        b:
+          type: string
+      required:
+        - b
+    AnyTypeNoPropertiesNoRequired:
+      description: "NoPropertiesNoRequired"
+    AnyTypeHasPropertiesNoRequired:
+      properties:
+        a:
+          type: string
+    AnyTypeNoPropertiesHasRequired:
+      required:
+        - a
+    AnyTypeHasPropertiesHasRequired:
+      required:
+        - a
+      properties:
+        a:
+          type: string
+    ObjectNoPropertiesNoRequired:
+      type: object
+    ObjectHasPropertiesNoRequired:
+      type: object
+      properties:
+        a:
+          type: string
+    ObjectNoPropertiesHasRequired:
+      type: object
+      required:
+        - a
+    ObjectHasPropertiesHasRequired:
+      type: object
+      required:
+        - a
+      properties:
+        a:
+          type: string
+    ComposedNoAllofPropsNoPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/EmptyObject'
+    ComposedNoAllofPropsHasPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/EmptyObject'
+      properties:
+        a:
+          type: string
+    ComposedNoAllofPropsNoPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/EmptyObject'
+      required:
+        - a
+    ComposedNoAllofPropsHasPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/EmptyObject'
+      type: object
+      required:
+        - a
+      properties:
+        a:
+          type: string
+    ComposedHasAllofOptPropNoPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithOptionalB'
+    ComposedHasAllofOptPropHasPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithOptionalB'
+      properties:
+        a:
+          type: string
+    ComposedHasAllofOptPropNoPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithOptionalB'
+      required:
+        - a
+    ComposedHasAllofOptPropHasPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithOptionalB'
+      type: object
+      required:
+        - a
+      properties:
+        a:
+          type: string
+    ComposedHasAllofReqPropNoPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithRequiredB'
+    ComposedHasAllofReqPropHasPropertiesNoRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithRequiredB'
+      properties:
+        a:
+          type: string
+    ComposedHasAllofReqPropNoPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithRequiredB'
+      required:
+        - a
+    ComposedHasAllofReqPropHasPropertiesHasRequired:
+      allOf:
+        - $ref: '#/components/schemas/ObjectWithRequiredB'
+      type: object
+      required:
+        - a
+      properties:
+        a:
+          type: string
+    CodegenPropertiesModel:
+      description: "this model lets us check CodegenProperty.vars/requiredVars/hasVars/hasRequired"
+      type: object
+      properties:
+        AnyTypeNoPropertiesNoRequired:
+          description: "NoPropertiesNoRequired"
+        AnyTypeHasPropertiesNoRequired:
+          properties:
+            a:
+              type: string
+        AnyTypeNoPropertiesHasRequired:
+          required:
+            - a
+        AnyTypeHasPropertiesHasRequired:
+          required:
+            - a
+          properties:
+            a:
+              type: string
+        ObjectNoPropertiesNoRequired:
+          type: object
+        ObjectHasPropertiesNoRequired:
+          type: object
+          properties:
+            a:
+              type: string
+        ObjectNoPropertiesHasRequired:
+          type: object
+          required:
+            - a
+        ObjectHasPropertiesHasRequired:
+          type: object
+          required:
+            - a
+          properties:
+            a:
+              type: string
+        ComposedNoAllofPropsNoPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/EmptyObject'
+        ComposedNoAllofPropsHasPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/EmptyObject'
+          properties:
+            a:
+              type: string
+        ComposedNoAllofPropsNoPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/EmptyObject'
+          required:
+            - a
+        ComposedNoAllofPropsHasPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/EmptyObject'
+          type: object
+          required:
+            - a
+          properties:
+            a:
+              type: string
+        ComposedHasAllofOptPropNoPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithOptionalB'
+        ComposedHasAllofOptPropHasPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithOptionalB'
+          properties:
+            a:
+              type: string
+        ComposedHasAllofOptPropNoPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithOptionalB'
+          required:
+            - a
+        ComposedHasAllofOptPropHasPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithOptionalB'
+          type: object
+          required:
+            - a
+          properties:
+            a:
+              type: string
+        ComposedHasAllofReqPropNoPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithRequiredB'
+        ComposedHasAllofReqPropHasPropertiesNoRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithRequiredB'
+          properties:
+            a:
+              type: string
+        ComposedHasAllofReqPropNoPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithRequiredB'
+          required:
+            - a
+        ComposedHasAllofReqPropHasPropertiesHasRequired:
+          allOf:
+            - $ref: '#/components/schemas/ObjectWithRequiredB'
+          type: object
+          required:
+            - a
+          properties:
+            a:
+              type: string
+  securitySchemes: {}
\ No newline at end of file
diff --git a/samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java b/samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java
index c8a8a1bf671f9ce8d1448f991b38204e18e467ad..a0611c04be5e32bdc610c3b5cd360502a320b4f9 100644
--- a/samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java
+++ b/samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java
@@ -541,10 +541,10 @@ public interface PathHandlerInterface {
      * <p><b>Response headers</b>: [CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
   "type" : "integer",
   "format" : "int32"
-}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isLong=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when toekn expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when toekn expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
+}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isLong=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when toekn expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when toekn expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
   "type" : "string",
   "format" : "date-time"
-}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isLong=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false}]</p>
+}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isLong=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false}]</p>
      *
      * <p><b>Produces</b>: [{mediaType=application/xml}, {mediaType=application/json}]</p>
      * <p><b>Returns</b>: {@link String}</p>