mirror of
				https://github.com/OpenAPITools/openapi-generator.git
				synced 2025-11-04 02:33:54 +00:00 
			
		
		
		
	Adds hasRequired to all Java schema classes (#8962)
* Adds getHasRequiredVars + setHasRequiredVars to IJsonSchemaValidationProperties * CHanges to getHasRequired and setHasRequired and implements in CodegenModel * Updates CodegenProperty * Updates codegenparameter * Updates codegenresponse * Uses setHasRequired in model/prop/parameter/response * Adds issue spec 8906 * Adds testHasRequiredInModel * Adds testHasRequiredInProperties * Fixes issue spec errors * Adds sample endpoint with schemas in patch parameter * Adds testHasRequiredInParameters * Adds response schemas in issue spec * Samples and docs regenerated
This commit is contained in:
		
							parent
							
								
									2367460fef
								
							
						
					
					
						commit
						a925c76561
					
				@ -154,6 +154,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
    private CodegenProperty items;
 | 
					    private CodegenProperty items;
 | 
				
			||||||
    private CodegenProperty additionalProperties;
 | 
					    private CodegenProperty additionalProperties;
 | 
				
			||||||
    private boolean isModel;
 | 
					    private boolean isModel;
 | 
				
			||||||
 | 
					    private boolean hasRequiredVars;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getAdditionalPropertiesType() {
 | 
					    public String getAdditionalPropertiesType() {
 | 
				
			||||||
        return additionalPropertiesType;
 | 
					        return additionalPropertiesType;
 | 
				
			||||||
@ -733,6 +734,16 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
        this.hasVars = hasVars;
 | 
					        this.hasVars = hasVars;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean getHasRequired() {
 | 
				
			||||||
 | 
					        return this.hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setHasRequired(boolean hasRequired) {
 | 
				
			||||||
 | 
					        this.hasRequired = hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean equals(Object o) {
 | 
					    public boolean equals(Object o) {
 | 
				
			||||||
        if (this == o) return true;
 | 
					        if (this == o) return true;
 | 
				
			||||||
 | 
				
			|||||||
@ -104,6 +104,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
    private Integer maxProperties;
 | 
					    private Integer maxProperties;
 | 
				
			||||||
    private Integer minProperties;
 | 
					    private Integer minProperties;
 | 
				
			||||||
    public boolean isNull;
 | 
					    public boolean isNull;
 | 
				
			||||||
 | 
					    private boolean hasRequired;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public CodegenParameter copy() {
 | 
					    public CodegenParameter copy() {
 | 
				
			||||||
        CodegenParameter output = new CodegenParameter();
 | 
					        CodegenParameter output = new CodegenParameter();
 | 
				
			||||||
@ -153,6 +154,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
        output.isNull = this.isNull;
 | 
					        output.isNull = this.isNull;
 | 
				
			||||||
        output.setAdditionalPropertiesIsAnyType(this.getAdditionalPropertiesIsAnyType());
 | 
					        output.setAdditionalPropertiesIsAnyType(this.getAdditionalPropertiesIsAnyType());
 | 
				
			||||||
        output.setHasVars(this.hasVars);
 | 
					        output.setHasVars(this.hasVars);
 | 
				
			||||||
 | 
					        output.setHasRequired(this.hasRequired);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (this._enum != null) {
 | 
					        if (this._enum != null) {
 | 
				
			||||||
            output._enum = new ArrayList<String>(this._enum);
 | 
					            output._enum = new ArrayList<String>(this._enum);
 | 
				
			||||||
@ -207,7 +209,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int hashCode() {
 | 
					    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
 | 
					    @Override
 | 
				
			||||||
@ -254,6 +256,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
                isNull == that.isNull &&
 | 
					                isNull == that.isNull &&
 | 
				
			||||||
                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
					                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
				
			||||||
                getHasVars() == that.getHasVars() &&
 | 
					                getHasVars() == that.getHasVars() &&
 | 
				
			||||||
 | 
					                getHasRequired() == that.getHasRequired() &&
 | 
				
			||||||
                getExclusiveMaximum() == that.getExclusiveMaximum() &&
 | 
					                getExclusiveMaximum() == that.getExclusiveMaximum() &&
 | 
				
			||||||
                getExclusiveMinimum() == that.getExclusiveMinimum() &&
 | 
					                getExclusiveMinimum() == that.getExclusiveMinimum() &&
 | 
				
			||||||
                getUniqueItems() == that.getUniqueItems() &&
 | 
					                getUniqueItems() == that.getUniqueItems() &&
 | 
				
			||||||
@ -372,6 +375,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
        sb.append(", isNull=").append(isNull);
 | 
					        sb.append(", isNull=").append(isNull);
 | 
				
			||||||
        sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
 | 
					        sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
 | 
				
			||||||
        sb.append(", getHasVars=").append(hasVars);
 | 
					        sb.append(", getHasVars=").append(hasVars);
 | 
				
			||||||
 | 
					        sb.append(", getHasRequired=").append(hasRequired);
 | 
				
			||||||
        sb.append('}');
 | 
					        sb.append('}');
 | 
				
			||||||
        return sb.toString();
 | 
					        return sb.toString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -619,5 +623,15 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
    public void setHasVars(boolean hasVars) {
 | 
					    public void setHasVars(boolean hasVars) {
 | 
				
			||||||
        this.hasVars = hasVars;
 | 
					        this.hasVars = hasVars;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean getHasRequired() {
 | 
				
			||||||
 | 
					        return this.hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setHasRequired(boolean hasRequired) {
 | 
				
			||||||
 | 
					        this.hasRequired = hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -187,6 +187,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
 | 
				
			|||||||
    public boolean isXmlWrapped = false;
 | 
					    public boolean isXmlWrapped = false;
 | 
				
			||||||
    private boolean additionalPropertiesIsAnyType;
 | 
					    private boolean additionalPropertiesIsAnyType;
 | 
				
			||||||
    private boolean hasVars;
 | 
					    private boolean hasVars;
 | 
				
			||||||
 | 
					    private boolean hasRequired;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getBaseName() {
 | 
					    public String getBaseName() {
 | 
				
			||||||
        return baseName;
 | 
					        return baseName;
 | 
				
			||||||
@ -715,6 +716,16 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
 | 
				
			|||||||
        this.hasVars = hasVars;
 | 
					        this.hasVars = hasVars;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean getHasRequired() {
 | 
				
			||||||
 | 
					        return this.hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setHasRequired(boolean hasRequired) {
 | 
				
			||||||
 | 
					        this.hasRequired = hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String toString() {
 | 
					    public String toString() {
 | 
				
			||||||
        final StringBuilder sb = new StringBuilder("CodegenProperty{");
 | 
					        final StringBuilder sb = new StringBuilder("CodegenProperty{");
 | 
				
			||||||
@ -806,6 +817,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
 | 
				
			|||||||
        sb.append(", isNull=").append(isNull);
 | 
					        sb.append(", isNull=").append(isNull);
 | 
				
			||||||
        sb.append(", getAdditionalPropertiesIsAnyType=").append(getAdditionalPropertiesIsAnyType());
 | 
					        sb.append(", getAdditionalPropertiesIsAnyType=").append(getAdditionalPropertiesIsAnyType());
 | 
				
			||||||
        sb.append(", getHasVars=").append(getHasVars());
 | 
					        sb.append(", getHasVars=").append(getHasVars());
 | 
				
			||||||
 | 
					        sb.append(", getHasRequired=").append(getHasRequired());
 | 
				
			||||||
        sb.append('}');
 | 
					        sb.append('}');
 | 
				
			||||||
        return sb.toString();
 | 
					        return sb.toString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -857,6 +869,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
 | 
				
			|||||||
                isNull == that.isNull &&
 | 
					                isNull == that.isNull &&
 | 
				
			||||||
                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
					                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
				
			||||||
                getHasVars() == that.getHasVars() &&
 | 
					                getHasVars() == that.getHasVars() &&
 | 
				
			||||||
 | 
					                getHasRequired() ==that.getHasRequired() &&
 | 
				
			||||||
                Objects.equals(openApiType, that.openApiType) &&
 | 
					                Objects.equals(openApiType, that.openApiType) &&
 | 
				
			||||||
                Objects.equals(baseName, that.baseName) &&
 | 
					                Objects.equals(baseName, that.baseName) &&
 | 
				
			||||||
                Objects.equals(complexType, that.complexType) &&
 | 
					                Objects.equals(complexType, that.complexType) &&
 | 
				
			||||||
@ -918,6 +931,6 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
 | 
				
			|||||||
                items, mostInnerItems, additionalProperties, vars, requiredVars,
 | 
					                items, mostInnerItems, additionalProperties, vars, requiredVars,
 | 
				
			||||||
                vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase,
 | 
					                vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase,
 | 
				
			||||||
                nameInSnakeCase, enumName, maxItems, minItems, isXmlAttribute, xmlPrefix, xmlName,
 | 
					                nameInSnakeCase, enumName, maxItems, minItems, isXmlAttribute, xmlPrefix, xmlName,
 | 
				
			||||||
                xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars);
 | 
					                xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -81,6 +81,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
    private boolean hasValidation;
 | 
					    private boolean hasValidation;
 | 
				
			||||||
    private boolean additionalPropertiesIsAnyType;
 | 
					    private boolean additionalPropertiesIsAnyType;
 | 
				
			||||||
    private boolean hasVars;
 | 
					    private boolean hasVars;
 | 
				
			||||||
 | 
					    private boolean hasRequired;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public int hashCode() {
 | 
					    public int hashCode() {
 | 
				
			||||||
@ -91,7 +92,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
                vars, requiredVars, isNull, hasValidation,
 | 
					                vars, requiredVars, isNull, hasValidation,
 | 
				
			||||||
                getMaxProperties(), getMinProperties(), uniqueItems, getMaxItems(), getMinItems(), getMaxLength(),
 | 
					                getMaxProperties(), getMinProperties(), uniqueItems, getMaxItems(), getMinItems(), getMaxLength(),
 | 
				
			||||||
                getMinLength(), exclusiveMinimum, exclusiveMaximum, getMinimum(), getMaximum(), getPattern(),
 | 
					                getMinLength(), exclusiveMinimum, exclusiveMaximum, getMinimum(), getMaximum(), getPattern(),
 | 
				
			||||||
                is1xx, is2xx, is3xx, is4xx, is5xx, additionalPropertiesIsAnyType, hasVars);
 | 
					                is1xx, is2xx, is3xx, is4xx, is5xx, additionalPropertiesIsAnyType, hasVars, hasRequired);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@ -135,6 +136,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
                is5xx == that.is5xx &&
 | 
					                is5xx == that.is5xx &&
 | 
				
			||||||
                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
					                getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() &&
 | 
				
			||||||
                getHasVars() == that.getHasVars() &&
 | 
					                getHasVars() == that.getHasVars() &&
 | 
				
			||||||
 | 
					                getHasRequired() == that.getHasRequired() &&
 | 
				
			||||||
                Objects.equals(vars, that.vars) &&
 | 
					                Objects.equals(vars, that.vars) &&
 | 
				
			||||||
                Objects.equals(requiredVars, that.requiredVars) &&
 | 
					                Objects.equals(requiredVars, that.requiredVars) &&
 | 
				
			||||||
                Objects.equals(headers, that.headers) &&
 | 
					                Objects.equals(headers, that.headers) &&
 | 
				
			||||||
@ -371,6 +373,16 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
        this.requiredVars = requiredVars;
 | 
					        this.requiredVars = requiredVars;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean getHasRequired() {
 | 
				
			||||||
 | 
					        return this.hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setHasRequired(boolean hasRequired) {
 | 
				
			||||||
 | 
					        this.hasRequired = hasRequired;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String toString() {
 | 
					    public String toString() {
 | 
				
			||||||
        final StringBuilder sb = new StringBuilder("CodegenResponse{");
 | 
					        final StringBuilder sb = new StringBuilder("CodegenResponse{");
 | 
				
			||||||
@ -435,6 +447,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
 | 
				
			|||||||
        sb.append(", hasValidation='").append(hasValidation);
 | 
					        sb.append(", hasValidation='").append(hasValidation);
 | 
				
			||||||
        sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
 | 
					        sb.append(", getAdditionalPropertiesIsAnyType=").append(additionalPropertiesIsAnyType);
 | 
				
			||||||
        sb.append(", getHasVars=").append(hasVars);
 | 
					        sb.append(", getHasVars=").append(hasVars);
 | 
				
			||||||
 | 
					        sb.append(", getHasRequired=").append(hasRequired);
 | 
				
			||||||
        sb.append('}');
 | 
					        sb.append('}');
 | 
				
			||||||
        return sb.toString();
 | 
					        return sb.toString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -2579,6 +2579,10 @@ public class DefaultCodegen implements CodegenConfig {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (m.requiredVars != null && m.requiredVars.size() > 0){
 | 
				
			||||||
 | 
					            m.setHasRequired(true);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (sortModelPropertiesByRequiredFlag) {
 | 
					        if (sortModelPropertiesByRequiredFlag) {
 | 
				
			||||||
            Comparator<CodegenProperty> comparator = new Comparator<CodegenProperty>() {
 | 
					            Comparator<CodegenProperty> comparator = new Comparator<CodegenProperty>() {
 | 
				
			||||||
                @Override
 | 
					                @Override
 | 
				
			||||||
@ -6170,6 +6174,9 @@ public class DefaultCodegen implements CodegenConfig {
 | 
				
			|||||||
                    .stream()
 | 
					                    .stream()
 | 
				
			||||||
                    .filter(p -> Boolean.TRUE.equals(p.required)).collect(Collectors.toList());
 | 
					                    .filter(p -> Boolean.TRUE.equals(p.required)).collect(Collectors.toList());
 | 
				
			||||||
            property.setRequiredVars(requireCpVars);
 | 
					            property.setRequiredVars(requireCpVars);
 | 
				
			||||||
 | 
					            if (property.getRequiredVars() != null && property.getRequiredVars().size() > 0) {
 | 
				
			||||||
 | 
					                property.setHasRequired(true);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        setAddProps(schema, property);
 | 
					        setAddProps(schema, property);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -105,5 +105,9 @@ public interface IJsonSchemaValidationProperties {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    boolean getHasVars();
 | 
					    boolean getHasVars();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void setHasVars(boolean hasVars);
 | 
					    void setHasVars(boolean hasRequiredVars);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    boolean getHasRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setHasRequired(boolean hasRequired);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -3075,4 +3075,203 @@ public class DefaultCodegenTest {
 | 
				
			|||||||
        // does not have vars because the inline schema was extracted into a component ref
 | 
					        // does not have vars because the inline schema was extracted into a component ref
 | 
				
			||||||
        assertEquals(co.responses.get(0).getHasVars(), false);
 | 
					        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);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										586
									
								
								modules/openapi-generator/src/test/resources/3_0/issue_8906.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										586
									
								
								modules/openapi-generator/src/test/resources/3_0/issue_8906.yaml
									
									
									
									
									
										Normal file
									
								
							@ -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: {}
 | 
				
			||||||
@ -539,10 +539,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='{
 | 
					     * <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",
 | 
					  "type" : "integer",
 | 
				
			||||||
  "format" : "int32"
 | 
					  "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",
 | 
					  "type" : "string",
 | 
				
			||||||
  "format" : "date-time"
 | 
					  "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>Produces</b>: [{mediaType=application/xml}, {mediaType=application/json}]</p>
 | 
				
			||||||
     * <p><b>Returns</b>: {@link String}</p>
 | 
					     * <p><b>Returns</b>: {@link String}</p>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user