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 a8107fb07d0..a53ab1b85bc 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 @@ -164,6 +164,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { private boolean hasDiscriminatorWithNonEmptyMapping; private boolean isAnyType; private boolean isUuid; + private Map requiredVarsMap; public String getAdditionalPropertiesType() { return additionalPropertiesType; @@ -928,6 +929,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { getUniqueItems() == that.getUniqueItems() && getExclusiveMinimum() == that.getExclusiveMinimum() && getExclusiveMaximum() == that.getExclusiveMaximum() && + Objects.equals(requiredVarsMap, that.getRequiredVarsMap()) && Objects.equals(composedSchemas, that.composedSchemas) && Objects.equals(parent, that.parent) && Objects.equals(parentSchema, that.parentSchema) && @@ -1000,7 +1002,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { getMinItems(), getMaxLength(), getMinLength(), getExclusiveMinimum(), getExclusiveMaximum(), getMinimum(), getMaximum(), getPattern(), getMultipleOf(), getItems(), getAdditionalProperties(), getIsModel(), getAdditionalPropertiesIsAnyType(), hasDiscriminatorWithNonEmptyMapping, - isAnyType, getComposedSchemas(), hasMultipleTypes, isDecimal, isUuid); + isAnyType, getComposedSchemas(), hasMultipleTypes, isDecimal, isUuid, requiredVarsMap); } @Override @@ -1097,6 +1099,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { sb.append(", hasMultipleTypes=").append(hasMultipleTypes); sb.append(", isDecimal=").append(isDecimal); sb.append(", isUUID=").append(isUuid); + sb.append(", requiredVarsMap=").append(requiredVarsMap); sb.append('}'); return sb.toString(); } @@ -1124,6 +1127,12 @@ public class CodegenModel implements IJsonSchemaValidationProperties { return this.items != null; } + @Override + public Map getRequiredVarsMap() { return requiredVarsMap; } + + @Override + public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } + /** * Remove duplicated properties in all variable list */ 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 af222869bfe..c69b44cefc6 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 @@ -111,6 +111,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { private CodegenComposedSchemas composedSchemas; private boolean hasMultipleTypes = false; private LinkedHashMap content; + private Map requiredVarsMap; public CodegenParameter copy() { CodegenParameter output = new CodegenParameter(); @@ -194,6 +195,9 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { if (this.vendorExtensions != null) { output.vendorExtensions = new HashMap(this.vendorExtensions); } + if (this.requiredVarsMap != null) { + output.setRequiredVarsMap(this.requiredVarsMap); + } output.hasValidation = this.hasValidation; output.isNullable = this.isNullable; output.isDeprecated = this.isDeprecated; @@ -230,7 +234,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, isAllowEmptyValue, 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, isDeprecated, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired, isShort, isUnboundedInteger, hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, schema, content); + 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, isAllowEmptyValue, 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, isDeprecated, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired, isShort, isUnboundedInteger, hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, schema, content, requiredVarsMap); } @Override @@ -286,6 +290,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { getExclusiveMaximum() == that.getExclusiveMaximum() && getExclusiveMinimum() == that.getExclusiveMinimum() && getUniqueItems() == that.getUniqueItems() && + Objects.equals(requiredVarsMap, that.getRequiredVarsMap()) && Objects.equals(content, that.getContent()) && Objects.equals(schema, that.getSchema()) && Objects.equals(composedSchemas, that.getComposedSchemas()) && @@ -415,6 +420,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { sb.append(", hasMultipleTypes=").append(hasMultipleTypes); sb.append(", schema=").append(schema); sb.append(", content=").append(content); + sb.append(", requiredVarsMap=").append(requiredVarsMap); sb.append('}'); return sb.toString(); } @@ -815,5 +821,11 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { public String getBaseType() { return baseType; } + + @Override + public Map getRequiredVarsMap() { return requiredVarsMap; } + + @Override + public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } } 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 b2eab698e12..8d92cd6a0fe 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 @@ -194,6 +194,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti private boolean hasDiscriminatorWithNonEmptyMapping; private CodegenComposedSchemas composedSchemas = null; private boolean hasMultipleTypes = false; + private Map requiredVarsMap; public String getBaseName() { return baseName; @@ -690,6 +691,9 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti if (this.composedSchemas != null) { cp.composedSchemas = this.composedSchemas; } + if (this.requiredVarsMap != null) { + cp.setRequiredVarsMap(this.requiredVarsMap); + } return cp; } catch (CloneNotSupportedException e) { @@ -867,6 +871,12 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti public void setIsUuid(boolean isUuid) { this.isUuid = isUuid; } + @Override + public Map getRequiredVarsMap() { return requiredVarsMap; } + + @Override + public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } + @Override public String toString() { final StringBuilder sb = new StringBuilder("CodegenProperty{"); @@ -966,6 +976,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti sb.append(", getHasDiscriminatorWithNonEmptyMapping=").append(hasDiscriminatorWithNonEmptyMapping); sb.append(", composedSchemas=").append(composedSchemas); sb.append(", hasMultipleTypes=").append(hasMultipleTypes); + sb.append(", requiredVarsMap=").append(requiredVarsMap); sb.append('}'); return sb.toString(); } @@ -1024,6 +1035,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() && getHasVars() == that.getHasVars() && getHasRequired() == that.getHasRequired() && + Objects.equals(requiredVarsMap, that.getRequiredVarsMap()) && Objects.equals(composedSchemas, that.composedSchemas) && Objects.equals(openApiType, that.openApiType) && Objects.equals(baseName, that.baseName) && @@ -1087,6 +1099,6 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase, nameInSnakeCase, enumName, maxItems, minItems, isXmlAttribute, xmlPrefix, xmlName, xmlNamespace, isXmlWrapped, isNull, additionalPropertiesIsAnyType, hasVars, hasRequired, - hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes); + hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, requiredVarsMap); } } 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 f27d5bb13aa..6cdcb3837bd 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 @@ -89,6 +89,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { private CodegenComposedSchemas composedSchemas; private boolean hasMultipleTypes = false; private LinkedHashMap content; + private Map requiredVarsMap; @Override public int hashCode() { @@ -100,7 +101,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { getMaxProperties(), getMinProperties(), uniqueItems, getMaxItems(), getMinItems(), getMaxLength(), getMinLength(), exclusiveMinimum, exclusiveMaximum, getMinimum(), getMaximum(), getPattern(), is1xx, is2xx, is3xx, is4xx, is5xx, additionalPropertiesIsAnyType, hasVars, hasRequired, - hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, responseHeaders, content); + hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, responseHeaders, content, + requiredVarsMap); } @Override @@ -149,6 +151,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { getAdditionalPropertiesIsAnyType() == that.getAdditionalPropertiesIsAnyType() && getHasVars() == that.getHasVars() && getHasRequired() == that.getHasRequired() && + Objects.equals(requiredVarsMap, that.getRequiredVarsMap()) && Objects.equals(content, that.getContent()) && Objects.equals(responseHeaders, that.getResponseHeaders()) && Objects.equals(composedSchemas, that.getComposedSchemas()) && @@ -538,6 +541,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { sb.append(", hasMultipleTypes=").append(hasMultipleTypes); sb.append(", responseHeaders=").append(responseHeaders); sb.append(", content=").append(content); + sb.append(", requiredVarsMap=").append(requiredVarsMap); sb.append('}'); return sb.toString(); } @@ -665,4 +669,10 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { public String getBaseType() { return baseType; } + + @Override + public Map getRequiredVarsMap() { return requiredVarsMap; } + + @Override + public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } } 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 a64b807bb2d..80672fd4ab0 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 @@ -2692,6 +2692,7 @@ public class DefaultCodegen implements CodegenConfig { } // process 'additionalProperties' setAddProps(schema, m); + addRequiredVarsMap(schema, m); } protected void updateModelForAnyType(CodegenModel m, Schema schema) { @@ -2712,6 +2713,7 @@ public class DefaultCodegen implements CodegenConfig { } // process 'additionalProperties' setAddProps(schema, m); + addRequiredVarsMap(schema, m); } protected String toTestCaseName(String specTestCaseName) { @@ -7100,11 +7102,70 @@ public class DefaultCodegen implements CodegenConfig { return codegenParameter; } + protected void addRequiredVarsMap(Schema schema, IJsonSchemaValidationProperties property) { + /* + this should be called after vars and additionalProperties are set + Features added by storing codegenProperty values: + - complexType stores reference to additionalProperties definition + - baseName stores original name (can be invalid in a programming language) + - nameInSnakeCase can store valid name for a programming language + */ + Map properties = schema.getProperties(); + Map requiredVarsMap = new HashMap<>(); + List requiredPropertyNames = schema.getRequired(); + if (requiredPropertyNames == null) { + return; + } + for (String requiredPropertyName: requiredPropertyNames) { + // required property is defined in properties, value is that CodegenProperty + String usedRequiredPropertyName = handleSpecialCharacters(requiredPropertyName); + if (properties != null && properties.containsKey(requiredPropertyName)) { + // get cp from property + boolean found = false; + for (CodegenProperty cp: property.getVars()) { + if (cp.baseName.equals(requiredPropertyName)) { + found = true; + requiredVarsMap.put(requiredPropertyName, cp); + } + } + if (found == false) { + throw new RuntimeException("Property " + requiredPropertyName + " is missing from getVars"); + } + } else if (schema.getAdditionalProperties() instanceof Boolean && Boolean.FALSE.equals(schema.getAdditionalProperties())) { + // TODO add processing for requiredPropertyName + // required property is not defined in properties, and additionalProperties is false, value is null + requiredVarsMap.put(usedRequiredPropertyName, null); + } else { + // required property is not defined in properties, and additionalProperties is true or unset value is CodegenProperty made from empty schema + // required property is not defined in properties, and additionalProperties is schema, value is CodegenProperty made from schema + if (supportsAdditionalPropertiesWithComposedSchema && !disallowAdditionalPropertiesIfNotPresent) { + if (property.getAdditionalProperties() == null) { + throw new RuntimeException("additionalProperties is unset and should be set in" + schema.toString()); + } + CodegenProperty cp; + if (schema.getAdditionalProperties() == null) { + cp = fromProperty(usedRequiredPropertyName, new Schema(), true); + } else if (schema.getAdditionalProperties() instanceof Boolean && Boolean.TRUE.equals(schema.getAdditionalProperties())) { + cp = fromProperty(requiredPropertyName, new Schema(), true); + } else { + CodegenProperty addPropsProp = property.getAdditionalProperties(); + cp = addPropsProp; + } + requiredVarsMap.put(usedRequiredPropertyName, cp); + } + } + } + if (!requiredVarsMap.isEmpty()) { + property.setRequiredVarsMap(requiredVarsMap); + } + } + protected void addVarsRequiredVarsAdditionalProps(Schema schema, IJsonSchemaValidationProperties property) { setAddProps(schema, property); Set mandatory = schema.getRequired() == null ? Collections.emptySet() : new TreeSet<>(schema.getRequired()); addVars(property, property.getVars(), schema.getProperties(), mandatory); + addRequiredVarsMap(schema, property); } private void addJsonSchemaForBodyRequestInCaseItsNotPresent(CodegenParameter codegenParameter, RequestBody body) { @@ -7666,4 +7727,11 @@ public class DefaultCodegen implements CodegenConfig { @Override public boolean getUseInlineModelResolver() { return true; } + + /* + A function to convert yaml or json ingested strings like property names + And convert special characters like newline, tab, carriage return + Into strings that can be rendered in the language that the generator will output to + */ + protected String handleSpecialCharacters(String name) { return name; } } 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 c3cf15fc36f..1bb16a6bc3a 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 @@ -3,6 +3,7 @@ package org.openapitools.codegen; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Stream; @@ -115,6 +116,17 @@ public interface IJsonSchemaValidationProperties { void setRequiredVars(List requiredVars); + Map getRequiredVarsMap(); + + // goes from required propertyName to its CodegenProperty + // Use Cases: + // 1. required property is defined in properties, value is that CodegenProperty + // 2. required property is not defined in properties, and additionalProperties is true or unset value is CodegenProperty made from empty schema + // 3. required property is not defined in properties, and additionalProperties is schema, value is CodegenProperty made from schema + // 4. required property is not defined in properties, and additionalProperties is false, value is null + void setRequiredVarsMap(Map requiredVarsMap); + + boolean getIsNull(); void setIsNull(boolean isNull); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java index 66ba6f428ad..c1b7ac66d37 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonExperimentalClientCodegen.java @@ -661,6 +661,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { } addVars(property, property.getVars(), schema.getProperties(), requiredVars); } + addRequiredVarsMap(schema, property); return; } else if (ModelUtils.isTypeObjectSchema(schema)) { HashSet requiredVars = new HashSet<>(); @@ -673,6 +674,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { property.setHasVars(true); } } + addRequiredVarsMap(schema, property); return; } @@ -997,6 +999,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { @Override public CodegenProperty fromProperty(String name, Schema p, boolean required) { CodegenProperty cp = super.fromProperty(name, p, required); + if (cp.isAnyType && cp.isNullable) { cp.isNullable = false; } @@ -1339,7 +1342,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, specTestCaseName); } - private String processStringValue(String value) { + protected String handleSpecialCharacters(String value) { // handles escape characters and the like String stringValue = value; String backslash = "\\"; @@ -1379,7 +1382,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { } else if (value instanceof Double || value instanceof Float || value instanceof Boolean){ return value; } else if (value instanceof String) { - return processStringValue((String) value); + return handleSpecialCharacters((String) value); } else if (value instanceof LinkedHashMap) { LinkedHashMap fixedValues = new LinkedHashMap(); for (Map.Entry entry: ((LinkedHashMap) value).entrySet()) { @@ -1821,7 +1824,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { return fullPrefix + example + closeChars; } else if (ModelUtils.isStringSchema(schema)) { if (example != null) { - return fullPrefix + ensureQuotes(processStringValue(example)) + closeChars; + return fullPrefix + ensureQuotes(handleSpecialCharacters(example)) + closeChars; } if (ModelUtils.isDateSchema(schema)) { if (objExample == null) { @@ -2336,6 +2339,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { @Override protected void updateModelForObject(CodegenModel m, Schema schema) { + // custom version of this method so properties are always added with addVars if (schema.getProperties() != null || schema.getRequired() != null) { // passing null to allProperties and allRequired as there's no parent addVars(m, unaliasPropertySchema(schema.getProperties()), schema.getRequired(), null, null); @@ -2344,6 +2348,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { addAdditionPropertiesToCodeGenModel(m, schema); // process 'additionalProperties' setAddProps(schema, m); + addRequiredVarsMap(schema, m); } @Override @@ -2361,6 +2366,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen { addAdditionPropertiesToCodeGenModel(m, schema); // process 'additionalProperties' setAddProps(schema, m); + addRequiredVarsMap(schema, m); } @Override diff --git a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/dict_partial.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/dict_partial.handlebars index 15338b38f1d..94eadd05472 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/dict_partial.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/dict_partial.handlebars @@ -1,9 +1,9 @@ -{{#if getHasRequired}} - _required_property_names = set(( - {{#each requiredVars}} - '{{baseName}}', +{{#if getRequiredVarsMap}} + _required_property_names = { + {{#each getRequiredVarsMap}} + "{{{@key}}}", {{/each}} - )) + } {{/if}} {{#each vars}} {{#if complexType}} diff --git a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/new.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/new.handlebars index a05493c42e3..31177f07d0c 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/new.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/new.handlebars @@ -3,10 +3,12 @@ def __new__( *args: typing.Union[{{#if isAnyType}}dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes{{/if}}{{#if isUnboundedInteger}}int, {{/if}}{{#if isNumber}}float, {{/if}}{{#if isBoolean}}bool, {{/if}}{{#if isArray}}list, tuple, {{/if}}{{#if isMap}}dict, frozendict, {{/if}}{{#if isString}}str, {{/if}}{{#if isNull}}None, {{/if}}], {{#unless isNull}} {{#if getHasRequired}} -{{#each requiredVars}} +{{#each getRequiredVarsMap}} +{{#with this}} {{#unless nameInSnakeCase}} {{baseName}}: {{baseName}}, {{/unless}} +{{/with}} {{/each}} {{/if}} {{/unless}} @@ -32,10 +34,12 @@ def __new__( *args, {{#unless isNull}} {{#if getHasRequired}} -{{#each requiredVars}} +{{#each getRequiredVarsMap}} +{{#with this}} {{#unless nameInSnakeCase}} {{baseName}}={{baseName}}, {{/unless}} +{{/with}} {{/each}} {{/if}} {{/unless}} diff --git a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/schema.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/schema.handlebars index 8b577418410..3fed0491def 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/model_templates/schema.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/model_templates/schema.handlebars @@ -7,7 +7,7 @@ {{else}} {{#or isMap isArray isAnyType}} {{#if isMap}} - {{#or hasVars hasValidation hasRequiredVars getHasDiscriminatorWithNonEmptyMapping}} + {{#or hasVars hasValidation getRequiredVarsMap getHasDiscriminatorWithNonEmptyMapping}} {{> model_templates/schema_dict }} {{else}} {{#if additionalPropertiesIsAnyType}} @@ -25,7 +25,7 @@ {{/or}} {{/if}} {{#if isAnyType}} - {{#or isEnum hasVars hasValidation hasRequiredVars getHasDiscriminatorWithNonEmptyMapping items}} + {{#or isEnum hasVars hasValidation getRequiredVarsMap getHasDiscriminatorWithNonEmptyMapping items}} {{> model_templates/schema_composed_or_anytype }} {{else}} {{> model_templates/var_equals_cls }} diff --git a/modules/openapi-generator/src/main/resources/python-experimental/schema_doc.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/schema_doc.handlebars index 5fe246825e5..38e09c2306c 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/schema_doc.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/schema_doc.handlebars @@ -7,8 +7,13 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- + {{#each getRequiredVarsMap}} +**{{{@key}}}** | {{#with this}}{{#unless complexType}}**{{dataType}}**{{/unless}}{{#if complexType}}[**{{dataType}}**]({{complexType}}.md){{/if}} | {{#if description}}{{description}}{{/if}} | {{#if isReadOnly}}[readonly] {{/if}}{{#if defaultValue}} if omitted the server will use the default value of {{{defaultValue}}}{{/if}}{{/with}} + {{/each}} {{#each vars}} + {{#unless required}} **{{baseName}}** | {{#unless complexType}}**{{dataType}}**{{/unless}}{{#if complexType}}[**{{dataType}}**]({{complexType}}.md){{/if}} | {{#if description}}{{description}}{{/if}} | {{#unless required}}[optional] {{/unless}}{{#if isReadOnly}}[readonly] {{/if}}{{#if defaultValue}} if omitted the server will use the default value of {{{defaultValue}}}{{/if}} + {{/unless}} {{/each}} {{#with additionalProperties}} **any string name** | **{{dataType}}** | any string name can be used but the value must be the correct type | [optional] diff --git a/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars b/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars index 99e0e64ef4c..d9fce78ac9a 100644 --- a/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars +++ b/modules/openapi-generator/src/main/resources/python-experimental/schemas.handlebars @@ -1061,7 +1061,7 @@ class DictBase(Discriminable): """ path_to_schemas = {} for property_name, value in arg.items(): - if property_name in cls._required_property_names or property_name in cls._property_names: + if property_name in cls._property_names: schema = getattr(cls, property_name) elif cls._additional_properties: schema = cls._additional_properties diff --git a/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/3_0_3_unit_test_spec.yaml b/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/3_0_3_unit_test_spec.yaml index 3caf4f5d042..e0c8d0a1dfe 100644 --- a/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/3_0_3_unit_test_spec.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/3_0_3_unit_test_spec.yaml @@ -2196,6 +2196,42 @@ paths: - path.post - contentType_json - oneOf + /requestBody/postOneofWithRequiredRequestBody: + post: + operationId: postOneofWithRequiredRequestBody + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OneofWithRequired' + x-schema-test-examples: + $ref: '#/components/x-schema-test-examples/OneofWithRequired' + required: true + responses: + '200': + description: success + tags: + - operation.requestBody + - path.post + - contentType_json + - oneOf + /responseBody/postOneofWithRequiredResponseBodyForContentTypes: + post: + operationId: postOneofWithRequiredResponseBodyForContentTypes + responses: + '200': + description: success + content: + application/json: + schema: + $ref: '#/components/schemas/OneofWithRequired' + x-schema-test-examples: + $ref: '#/components/x-schema-test-examples/OneofWithRequired' + tags: + - response.content.contentType.schema + - path.post + - contentType_json + - oneOf /requestBody/postNestedOneofToCheckValidationSemanticsRequestBody: post: operationId: postNestedOneofToCheckValidationSemanticsRequestBody @@ -2736,6 +2772,42 @@ paths: - path.post - contentType_json - required + /requestBody/postRequiredWithEscapedCharactersRequestBody: + post: + operationId: postRequiredWithEscapedCharactersRequestBody + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RequiredWithEscapedCharacters' + x-schema-test-examples: + $ref: '#/components/x-schema-test-examples/RequiredWithEscapedCharacters' + required: true + responses: + '200': + description: success + tags: + - operation.requestBody + - path.post + - contentType_json + - required + /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes: + post: + operationId: postRequiredWithEscapedCharactersResponseBodyForContentTypes + responses: + '200': + description: success + content: + application/json: + schema: + $ref: '#/components/schemas/RequiredWithEscapedCharacters' + x-schema-test-examples: + $ref: '#/components/x-schema-test-examples/RequiredWithEscapedCharacters' + tags: + - response.content.contentType.schema + - path.post + - contentType_json + - required /requestBody/postIntegerTypeMatchesIntegersRequestBody: post: operationId: postIntegerTypeMatchesIntegersRequestBody @@ -3316,6 +3388,15 @@ components: oneOf: - type: number - {} + OneofWithRequired: + type: object + oneOf: + - required: + - foo + - bar + - required: + - foo + - baz NestedOneofToCheckValidationSemantics: oneOf: - oneOf: @@ -3382,6 +3463,16 @@ components: properties: foo: {} required: [] + RequiredWithEscapedCharacters: + required: + - 'foo + + bar' + - foo"bar + - foo\bar + - "foo\rbar" + - "foo\tbar" + - "foo\fbar" IntegerTypeMatchesIntegers: type: integer NumberTypeMatchesNumbers: @@ -4438,6 +4529,31 @@ components: description: both valid - invalid data: 123 valid: false + OneofWithRequired: + BothInvalidInvalid: + description: both invalid - invalid + data: + bar: 2 + valid: false + FirstValidValid: + description: first valid - valid + data: + foo: 1 + bar: 2 + valid: true + SecondValidValid: + description: second valid - valid + data: + foo: 1 + baz: 3 + valid: true + BothValidInvalid: + description: both valid - invalid + data: + foo: 1 + bar: 2 + baz: 3 + valid: false NestedOneofToCheckValidationSemantics: NullIsValid: description: null is valid @@ -4658,6 +4774,29 @@ components: description: property not required data: {} valid: true + RequiredWithEscapedCharacters: + ObjectWithAllPropertiesPresentIsValid: + description: object with all properties present is valid + data: + ? 'foo + + bar' + : 1 + foo"bar: 1 + foo\bar: 1 + "foo\rbar": 1 + "foo\tbar": 1 + "foo\fbar": 1 + valid: true + ObjectWithSomePropertiesMissingIsInvalid: + description: object with some properties missing is invalid + data: + ? 'foo + + bar' + : '1' + foo"bar: '1' + valid: false IntegerTypeMatchesIntegers: AnIntegerIsAnInteger: description: an integer is an integer diff --git a/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/spec_writer.py b/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/spec_writer.py index 7261aec2075..aef9d513fc3 100644 --- a/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/spec_writer.py +++ b/modules/openapi-generator/src/test/resources/3_0/unit_test_spec/spec_writer.py @@ -100,7 +100,6 @@ class ExclusionReason: swagger_parser_anytype_bug = 'Swagger parser sets type incorrectly for this anyType schema https://github.com/swagger-api/swagger-parser/issues/1603' component_ref_component_bug = 'A component refing another component does not work, issue at https://github.com/OpenAPITools/openapi-generator/issues/12730' not_running_the_localhost_server = 'the openapo-generator is not running the localhost server needed to serve remoteRef files' - required_vars_missing_for_anytype_schema_bug = 'fails because of a bug where required vars are forgotten, see issue https://github.com/OpenAPITools/openapi-generator/issues/8906' v303_requires_that_the_default_value_is_an_allowed_type = 'v3.0.3 requires that the default value is an allowed type per the schema' not_ref_import_missing = 'this test fails because of this open issue https://github.com/OpenAPITools/openapi-generator/issues/12756' @@ -149,7 +148,6 @@ FILEPATH_TO_EXCLUDED_CASE_AND_REASON = { 'oneOf with boolean schemas, one true': ExclusionReason.v303_does_not_support_boolean_schemas_in_location, 'oneOf with boolean schemas, more than one true': ExclusionReason.v303_does_not_support_boolean_schemas_in_location, 'oneOf with boolean schemas, all false': ExclusionReason.v303_does_not_support_boolean_schemas_in_location, - 'oneOf with required': ExclusionReason.required_vars_missing_for_anytype_schema_bug, }, (json_schema_test_draft, 'properties.json'): { 'properties, patternProperties, additionalProperties interaction': ExclusionReason.v303_does_not_support_patternProperties, @@ -193,9 +191,6 @@ FILEPATH_TO_EXCLUDED_CASE_AND_REASON = { 'fragment within remote ref': ExclusionReason.not_running_the_localhost_server, 'ref within remote ref': ExclusionReason.not_running_the_localhost_server, }, - (json_schema_test_draft, 'required.json'): { - 'required with escaped characters': ExclusionReason.required_vars_missing_for_anytype_schema_bug, - }, (json_schema_test_draft, 'type.json'): { 'multiple types can be specified in an array': ExclusionReason.v303_does_not_support_array_of_types, 'type as array with one item': ExclusionReason.v303_does_not_support_array_of_types, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/.openapi-generator/FILES b/samples/openapi3/client/3_0_3_unit_test/python-experimental/.openapi-generator/FILES index 5aafcd15a2c..a2411594672 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/.openapi-generator/FILES +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/.openapi-generator/FILES @@ -92,6 +92,7 @@ docs/models/Oneof.md docs/models/OneofComplexTypes.md docs/models/OneofWithBaseSchema.md docs/models/OneofWithEmptySchema.md +docs/models/OneofWithRequired.md docs/models/PatternIsNotAnchored.md docs/models/PatternValidation.md docs/models/PropertiesWithEscapedCharacters.md @@ -105,6 +106,7 @@ docs/models/RefInProperty.md docs/models/RequiredDefaultValidation.md docs/models/RequiredValidation.md docs/models/RequiredWithEmptyArray.md +docs/models/RequiredWithEscapedCharacters.md docs/models/SimpleEnumValidation.md docs/models/StringTypeMatchesStrings.md docs/models/TheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissing.md @@ -182,6 +184,7 @@ test/test_models/test_oneof.py test/test_models/test_oneof_complex_types.py test/test_models/test_oneof_with_base_schema.py test/test_models/test_oneof_with_empty_schema.py +test/test_models/test_oneof_with_required.py test/test_models/test_pattern_is_not_anchored.py test/test_models/test_pattern_validation.py test/test_models/test_properties_with_escaped_characters.py @@ -195,6 +198,7 @@ test/test_models/test_ref_in_property.py test/test_models/test_required_default_validation.py test/test_models/test_required_validation.py test/test_models/test_required_with_empty_array.py +test/test_models/test_required_with_escaped_characters.py test/test_models/test_simple_enum_validation.py test/test_models/test_string_type_matches_strings.py test/test_models/test_the_default_keyword_does_not_do_anything_if_the_property_is_missing.py @@ -300,6 +304,7 @@ unit_test_api/model/oneof.py unit_test_api/model/oneof_complex_types.py unit_test_api/model/oneof_with_base_schema.py unit_test_api/model/oneof_with_empty_schema.py +unit_test_api/model/oneof_with_required.py unit_test_api/model/pattern_is_not_anchored.py unit_test_api/model/pattern_validation.py unit_test_api/model/properties_with_escaped_characters.py @@ -313,6 +318,7 @@ unit_test_api/model/ref_in_property.py unit_test_api/model/required_default_validation.py unit_test_api/model/required_validation.py unit_test_api/model/required_with_empty_array.py +unit_test_api/model/required_with_escaped_characters.py unit_test_api/model/simple_enum_validation.py unit_test_api/model/string_type_matches_strings.py unit_test_api/model/the_default_keyword_does_not_do_anything_if_the_property_is_missing.py diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/README.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/README.md index 97f7812b4d4..86018df9fe3 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/README.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/README.md @@ -260,6 +260,8 @@ Class | Method | HTTP request | Description *ContentTypeJsonApi* | [**post_oneof_with_base_schema_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_oneof_with_empty_schema_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | *ContentTypeJsonApi* | [**post_oneof_with_empty_schema_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +*ContentTypeJsonApi* | [**post_oneof_with_required_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +*ContentTypeJsonApi* | [**post_oneof_with_required_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_pattern_is_not_anchored_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | *ContentTypeJsonApi* | [**post_pattern_is_not_anchored_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_pattern_validation_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | @@ -286,6 +288,8 @@ Class | Method | HTTP request | Description *ContentTypeJsonApi* | [**post_required_validation_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_required_with_empty_array_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | *ContentTypeJsonApi* | [**post_required_with_empty_array_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +*ContentTypeJsonApi* | [**post_required_with_escaped_characters_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +*ContentTypeJsonApi* | [**post_required_with_escaped_characters_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_simple_enum_validation_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | *ContentTypeJsonApi* | [**post_simple_enum_validation_response_body_for_content_types**](docs/apis/tags/ContentTypeJsonApi.md#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | *ContentTypeJsonApi* | [**post_string_type_matches_strings_request_body**](docs/apis/tags/ContentTypeJsonApi.md#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | @@ -388,6 +392,8 @@ Class | Method | HTTP request | Description *OneOfApi* | [**post_oneof_with_base_schema_response_body_for_content_types**](docs/apis/tags/OneOfApi.md#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | *OneOfApi* | [**post_oneof_with_empty_schema_request_body**](docs/apis/tags/OneOfApi.md#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | *OneOfApi* | [**post_oneof_with_empty_schema_response_body_for_content_types**](docs/apis/tags/OneOfApi.md#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +*OneOfApi* | [**post_oneof_with_required_request_body**](docs/apis/tags/OneOfApi.md#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +*OneOfApi* | [**post_oneof_with_required_response_body_for_content_types**](docs/apis/tags/OneOfApi.md#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | *OperationRequestBodyApi* | [**post_additionalproperties_allows_a_schema_which_should_validate_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_additionalproperties_allows_a_schema_which_should_validate_request_body) | **post** /requestBody/postAdditionalpropertiesAllowsASchemaWhichShouldValidateRequestBody | *OperationRequestBodyApi* | [**post_additionalproperties_are_allowed_by_default_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_additionalproperties_are_allowed_by_default_request_body) | **post** /requestBody/postAdditionalpropertiesAreAllowedByDefaultRequestBody | *OperationRequestBodyApi* | [**post_additionalproperties_can_exist_by_itself_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_additionalproperties_can_exist_by_itself_request_body) | **post** /requestBody/postAdditionalpropertiesCanExistByItselfRequestBody | @@ -451,6 +457,7 @@ Class | Method | HTTP request | Description *OperationRequestBodyApi* | [**post_oneof_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_oneof_request_body) | **post** /requestBody/postOneofRequestBody | *OperationRequestBodyApi* | [**post_oneof_with_base_schema_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_oneof_with_base_schema_request_body) | **post** /requestBody/postOneofWithBaseSchemaRequestBody | *OperationRequestBodyApi* | [**post_oneof_with_empty_schema_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | +*OperationRequestBodyApi* | [**post_oneof_with_required_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | *OperationRequestBodyApi* | [**post_pattern_is_not_anchored_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | *OperationRequestBodyApi* | [**post_pattern_validation_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | *OperationRequestBodyApi* | [**post_properties_with_escaped_characters_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_properties_with_escaped_characters_request_body) | **post** /requestBody/postPropertiesWithEscapedCharactersRequestBody | @@ -464,6 +471,7 @@ Class | Method | HTTP request | Description *OperationRequestBodyApi* | [**post_required_default_validation_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_required_default_validation_request_body) | **post** /requestBody/postRequiredDefaultValidationRequestBody | *OperationRequestBodyApi* | [**post_required_validation_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_required_validation_request_body) | **post** /requestBody/postRequiredValidationRequestBody | *OperationRequestBodyApi* | [**post_required_with_empty_array_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | +*OperationRequestBodyApi* | [**post_required_with_escaped_characters_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | *OperationRequestBodyApi* | [**post_simple_enum_validation_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | *OperationRequestBodyApi* | [**post_string_type_matches_strings_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | *OperationRequestBodyApi* | [**post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_request_body**](docs/apis/tags/OperationRequestBodyApi.md#post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_request_body) | **post** /requestBody/postTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingRequestBody | @@ -598,6 +606,8 @@ Class | Method | HTTP request | Description *PathPostApi* | [**post_oneof_with_base_schema_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | *PathPostApi* | [**post_oneof_with_empty_schema_request_body**](docs/apis/tags/PathPostApi.md#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | *PathPostApi* | [**post_oneof_with_empty_schema_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +*PathPostApi* | [**post_oneof_with_required_request_body**](docs/apis/tags/PathPostApi.md#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +*PathPostApi* | [**post_oneof_with_required_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | *PathPostApi* | [**post_pattern_is_not_anchored_request_body**](docs/apis/tags/PathPostApi.md#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | *PathPostApi* | [**post_pattern_is_not_anchored_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | *PathPostApi* | [**post_pattern_validation_request_body**](docs/apis/tags/PathPostApi.md#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | @@ -624,6 +634,8 @@ Class | Method | HTTP request | Description *PathPostApi* | [**post_required_validation_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | *PathPostApi* | [**post_required_with_empty_array_request_body**](docs/apis/tags/PathPostApi.md#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | *PathPostApi* | [**post_required_with_empty_array_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +*PathPostApi* | [**post_required_with_escaped_characters_request_body**](docs/apis/tags/PathPostApi.md#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +*PathPostApi* | [**post_required_with_escaped_characters_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | *PathPostApi* | [**post_simple_enum_validation_request_body**](docs/apis/tags/PathPostApi.md#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | *PathPostApi* | [**post_simple_enum_validation_response_body_for_content_types**](docs/apis/tags/PathPostApi.md#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | *PathPostApi* | [**post_string_type_matches_strings_request_body**](docs/apis/tags/PathPostApi.md#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | @@ -654,6 +666,8 @@ Class | Method | HTTP request | Description *RequiredApi* | [**post_required_validation_response_body_for_content_types**](docs/apis/tags/RequiredApi.md#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | *RequiredApi* | [**post_required_with_empty_array_request_body**](docs/apis/tags/RequiredApi.md#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | *RequiredApi* | [**post_required_with_empty_array_response_body_for_content_types**](docs/apis/tags/RequiredApi.md#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +*RequiredApi* | [**post_required_with_escaped_characters_request_body**](docs/apis/tags/RequiredApi.md#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +*RequiredApi* | [**post_required_with_escaped_characters_response_body_for_content_types**](docs/apis/tags/RequiredApi.md#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_additionalproperties_allows_a_schema_which_should_validate_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_additionalproperties_allows_a_schema_which_should_validate_response_body_for_content_types) | **post** /responseBody/postAdditionalpropertiesAllowsASchemaWhichShouldValidateResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_additionalproperties_are_allowed_by_default_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_additionalproperties_are_allowed_by_default_response_body_for_content_types) | **post** /responseBody/postAdditionalpropertiesAreAllowedByDefaultResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_additionalproperties_can_exist_by_itself_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_additionalproperties_can_exist_by_itself_response_body_for_content_types) | **post** /responseBody/postAdditionalpropertiesCanExistByItselfResponseBodyForContentTypes | @@ -717,6 +731,7 @@ Class | Method | HTTP request | Description *ResponseContentContentTypeSchemaApi* | [**post_oneof_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_oneof_response_body_for_content_types) | **post** /responseBody/postOneofResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_oneof_with_base_schema_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_oneof_with_empty_schema_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +*ResponseContentContentTypeSchemaApi* | [**post_oneof_with_required_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_pattern_is_not_anchored_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_pattern_validation_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_pattern_validation_response_body_for_content_types) | **post** /responseBody/postPatternValidationResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_properties_with_escaped_characters_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_properties_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postPropertiesWithEscapedCharactersResponseBodyForContentTypes | @@ -730,6 +745,7 @@ Class | Method | HTTP request | Description *ResponseContentContentTypeSchemaApi* | [**post_required_default_validation_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_required_default_validation_response_body_for_content_types) | **post** /responseBody/postRequiredDefaultValidationResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_required_validation_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_required_with_empty_array_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +*ResponseContentContentTypeSchemaApi* | [**post_required_with_escaped_characters_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_simple_enum_validation_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_string_type_matches_strings_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_string_type_matches_strings_response_body_for_content_types) | **post** /responseBody/postStringTypeMatchesStringsResponseBodyForContentTypes | *ResponseContentContentTypeSchemaApi* | [**post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_response_body_for_content_types**](docs/apis/tags/ResponseContentContentTypeSchemaApi.md#post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_response_body_for_content_types) | **post** /responseBody/postTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingResponseBodyForContentTypes | @@ -821,6 +837,7 @@ Class | Method | HTTP request | Description - [OneofComplexTypes](docs/models/OneofComplexTypes.md) - [OneofWithBaseSchema](docs/models/OneofWithBaseSchema.md) - [OneofWithEmptySchema](docs/models/OneofWithEmptySchema.md) + - [OneofWithRequired](docs/models/OneofWithRequired.md) - [PatternIsNotAnchored](docs/models/PatternIsNotAnchored.md) - [PatternValidation](docs/models/PatternValidation.md) - [PropertiesWithEscapedCharacters](docs/models/PropertiesWithEscapedCharacters.md) @@ -834,6 +851,7 @@ Class | Method | HTTP request | Description - [RequiredDefaultValidation](docs/models/RequiredDefaultValidation.md) - [RequiredValidation](docs/models/RequiredValidation.md) - [RequiredWithEmptyArray](docs/models/RequiredWithEmptyArray.md) + - [RequiredWithEscapedCharacters](docs/models/RequiredWithEscapedCharacters.md) - [SimpleEnumValidation](docs/models/SimpleEnumValidation.md) - [StringTypeMatchesStrings](docs/models/StringTypeMatchesStrings.md) - [TheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissing](docs/models/TheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissing.md) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ContentTypeJsonApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ContentTypeJsonApi.md index 73f50eff73e..a4a9dddfd41 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ContentTypeJsonApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ContentTypeJsonApi.md @@ -131,6 +131,8 @@ Method | HTTP request | Description [**post_oneof_with_base_schema_response_body_for_content_types**](#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | [**post_oneof_with_empty_schema_request_body**](#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | [**post_oneof_with_empty_schema_response_body_for_content_types**](#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +[**post_oneof_with_required_request_body**](#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +[**post_oneof_with_required_response_body_for_content_types**](#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | [**post_pattern_is_not_anchored_request_body**](#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | [**post_pattern_is_not_anchored_response_body_for_content_types**](#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | [**post_pattern_validation_request_body**](#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | @@ -157,6 +159,8 @@ Method | HTTP request | Description [**post_required_validation_response_body_for_content_types**](#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | [**post_required_with_empty_array_request_body**](#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | [**post_required_with_empty_array_response_body_for_content_types**](#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +[**post_required_with_escaped_characters_request_body**](#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +[**post_required_with_escaped_characters_response_body_for_content_types**](#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | [**post_simple_enum_validation_request_body**](#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | [**post_simple_enum_validation_response_body_for_content_types**](#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | [**post_string_type_matches_strings_request_body**](#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | @@ -8815,6 +8819,143 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_oneof_with_required_request_body** + +> post_oneof_with_required_request_body(oneof_with_required) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import content_type_json_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = content_type_json_api.ContentTypeJsonApi(api_client) + + # example passing only required values which don't have defaults set + body = OneofWithRequired() + try: + api_response = api_instance.post_oneof_with_required_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling ContentTypeJsonApi->post_oneof_with_required_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_oneof_with_required_response_body_for_content_types** + +> OneofWithRequired post_oneof_with_required_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import content_type_json_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = content_type_json_api.ContentTypeJsonApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_oneof_with_required_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling ContentTypeJsonApi->post_oneof_with_required_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + + +[**OneofWithRequired**](OneofWithRequired.md) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_pattern_is_not_anchored_request_body** > post_pattern_is_not_anchored_request_body(body) @@ -10600,6 +10741,155 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_required_with_escaped_characters_request_body** + +> post_required_with_escaped_characters_request_body(body) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import content_type_json_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = content_type_json_api.ContentTypeJsonApi(api_client) + + # example passing only required values which don't have defaults set + body = None + try: + api_response = api_instance.post_required_with_escaped_characters_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling ContentTypeJsonApi->post_required_with_escaped_characters_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_required_with_escaped_characters_response_body_for_content_types** + +> bool, date, datetime, dict, float, int, list, str, none_type post_required_with_escaped_characters_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import content_type_json_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = content_type_json_api.ContentTypeJsonApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_required_with_escaped_characters_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling ContentTypeJsonApi->post_required_with_escaped_characters_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + + +**bool, date, datetime, dict, float, int, list, str, none_type** + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_simple_enum_validation_request_body** > post_simple_enum_validation_request_body(body) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OneOfApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OneOfApi.md index bd95adb06bf..bf1f1739129 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OneOfApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OneOfApi.md @@ -15,6 +15,8 @@ Method | HTTP request | Description [**post_oneof_with_base_schema_response_body_for_content_types**](#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | [**post_oneof_with_empty_schema_request_body**](#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | [**post_oneof_with_empty_schema_response_body_for_content_types**](#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +[**post_oneof_with_required_request_body**](#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +[**post_oneof_with_required_response_body_for_content_types**](#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | # **post_nested_oneof_to_check_validation_semantics_request_body** @@ -701,3 +703,140 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_oneof_with_required_request_body** + +> post_oneof_with_required_request_body(oneof_with_required) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import one_of_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = one_of_api.OneOfApi(api_client) + + # example passing only required values which don't have defaults set + body = OneofWithRequired() + try: + api_response = api_instance.post_oneof_with_required_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling OneOfApi->post_oneof_with_required_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_oneof_with_required_response_body_for_content_types** + +> OneofWithRequired post_oneof_with_required_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import one_of_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = one_of_api.OneOfApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_oneof_with_required_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling OneOfApi->post_oneof_with_required_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + + +[**OneofWithRequired**](OneofWithRequired.md) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OperationRequestBodyApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OperationRequestBodyApi.md index d1848dcf260..1609be19286 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OperationRequestBodyApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/OperationRequestBodyApi.md @@ -68,6 +68,7 @@ Method | HTTP request | Description [**post_oneof_request_body**](#post_oneof_request_body) | **post** /requestBody/postOneofRequestBody | [**post_oneof_with_base_schema_request_body**](#post_oneof_with_base_schema_request_body) | **post** /requestBody/postOneofWithBaseSchemaRequestBody | [**post_oneof_with_empty_schema_request_body**](#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | +[**post_oneof_with_required_request_body**](#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | [**post_pattern_is_not_anchored_request_body**](#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | [**post_pattern_validation_request_body**](#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | [**post_properties_with_escaped_characters_request_body**](#post_properties_with_escaped_characters_request_body) | **post** /requestBody/postPropertiesWithEscapedCharactersRequestBody | @@ -81,6 +82,7 @@ Method | HTTP request | Description [**post_required_default_validation_request_body**](#post_required_default_validation_request_body) | **post** /requestBody/postRequiredDefaultValidationRequestBody | [**post_required_validation_request_body**](#post_required_validation_request_body) | **post** /requestBody/postRequiredValidationRequestBody | [**post_required_with_empty_array_request_body**](#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | +[**post_required_with_escaped_characters_request_body**](#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | [**post_simple_enum_validation_request_body**](#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | [**post_string_type_matches_strings_request_body**](#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | [**post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_request_body**](#post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_request_body) | **post** /requestBody/postTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingRequestBody | @@ -4758,6 +4760,80 @@ body | Unset | body was not defined | headers | Unset | headers were not defined | +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_oneof_with_required_request_body** + +> post_oneof_with_required_request_body(oneof_with_required) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import operation_request_body_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = operation_request_body_api.OperationRequestBodyApi(api_client) + + # example passing only required values which don't have defaults set + body = OneofWithRequired() + try: + api_response = api_instance.post_oneof_with_required_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling OperationRequestBodyApi->post_oneof_with_required_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + void (empty response body) ### Authorization @@ -5724,6 +5800,86 @@ body | Unset | body was not defined | headers | Unset | headers were not defined | +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_required_with_escaped_characters_request_body** + +> post_required_with_escaped_characters_request_body(body) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import operation_request_body_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = operation_request_body_api.OperationRequestBodyApi(api_client) + + # example passing only required values which don't have defaults set + body = None + try: + api_response = api_instance.post_required_with_escaped_characters_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling OperationRequestBodyApi->post_required_with_escaped_characters_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + void (empty response body) ### Authorization diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/PathPostApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/PathPostApi.md index 35e1e50ebe1..5936b9a0a98 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/PathPostApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/PathPostApi.md @@ -131,6 +131,8 @@ Method | HTTP request | Description [**post_oneof_with_base_schema_response_body_for_content_types**](#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | [**post_oneof_with_empty_schema_request_body**](#post_oneof_with_empty_schema_request_body) | **post** /requestBody/postOneofWithEmptySchemaRequestBody | [**post_oneof_with_empty_schema_response_body_for_content_types**](#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +[**post_oneof_with_required_request_body**](#post_oneof_with_required_request_body) | **post** /requestBody/postOneofWithRequiredRequestBody | +[**post_oneof_with_required_response_body_for_content_types**](#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | [**post_pattern_is_not_anchored_request_body**](#post_pattern_is_not_anchored_request_body) | **post** /requestBody/postPatternIsNotAnchoredRequestBody | [**post_pattern_is_not_anchored_response_body_for_content_types**](#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | [**post_pattern_validation_request_body**](#post_pattern_validation_request_body) | **post** /requestBody/postPatternValidationRequestBody | @@ -157,6 +159,8 @@ Method | HTTP request | Description [**post_required_validation_response_body_for_content_types**](#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | [**post_required_with_empty_array_request_body**](#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | [**post_required_with_empty_array_response_body_for_content_types**](#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +[**post_required_with_escaped_characters_request_body**](#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +[**post_required_with_escaped_characters_response_body_for_content_types**](#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | [**post_simple_enum_validation_request_body**](#post_simple_enum_validation_request_body) | **post** /requestBody/postSimpleEnumValidationRequestBody | [**post_simple_enum_validation_response_body_for_content_types**](#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | [**post_string_type_matches_strings_request_body**](#post_string_type_matches_strings_request_body) | **post** /requestBody/postStringTypeMatchesStringsRequestBody | @@ -8815,6 +8819,143 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_oneof_with_required_request_body** + +> post_oneof_with_required_request_body(oneof_with_required) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import path_post_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = path_post_api.PathPostApi(api_client) + + # example passing only required values which don't have defaults set + body = OneofWithRequired() + try: + api_response = api_instance.post_oneof_with_required_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling PathPostApi->post_oneof_with_required_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_oneof_with_required_response_body_for_content_types** + +> OneofWithRequired post_oneof_with_required_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import path_post_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = path_post_api.PathPostApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_oneof_with_required_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling PathPostApi->post_oneof_with_required_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + + +[**OneofWithRequired**](OneofWithRequired.md) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_pattern_is_not_anchored_request_body** > post_pattern_is_not_anchored_request_body(body) @@ -10600,6 +10741,155 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_required_with_escaped_characters_request_body** + +> post_required_with_escaped_characters_request_body(body) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import path_post_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = path_post_api.PathPostApi(api_client) + + # example passing only required values which don't have defaults set + body = None + try: + api_response = api_instance.post_required_with_escaped_characters_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling PathPostApi->post_required_with_escaped_characters_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_required_with_escaped_characters_response_body_for_content_types** + +> bool, date, datetime, dict, float, int, list, str, none_type post_required_with_escaped_characters_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import path_post_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = path_post_api.PathPostApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_required_with_escaped_characters_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling PathPostApi->post_required_with_escaped_characters_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + + +**bool, date, datetime, dict, float, int, list, str, none_type** + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_simple_enum_validation_request_body** > post_simple_enum_validation_request_body(body) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/RequiredApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/RequiredApi.md index 7026a187a07..c6769312ecd 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/RequiredApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/RequiredApi.md @@ -11,6 +11,8 @@ Method | HTTP request | Description [**post_required_validation_response_body_for_content_types**](#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | [**post_required_with_empty_array_request_body**](#post_required_with_empty_array_request_body) | **post** /requestBody/postRequiredWithEmptyArrayRequestBody | [**post_required_with_empty_array_response_body_for_content_types**](#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +[**post_required_with_escaped_characters_request_body**](#post_required_with_escaped_characters_request_body) | **post** /requestBody/postRequiredWithEscapedCharactersRequestBody | +[**post_required_with_escaped_characters_response_body_for_content_types**](#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | # **post_required_default_validation_request_body** @@ -423,3 +425,152 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_required_with_escaped_characters_request_body** + +> post_required_with_escaped_characters_request_body(body) + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import required_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = required_api.RequiredApi(api_client) + + # example passing only required values which don't have defaults set + body = None + try: + api_response = api_instance.post_required_with_escaped_characters_request_body( + body=body, + ) + except unit_test_api.ApiException as e: + print("Exception when calling RequiredApi->post_required_with_escaped_characters_request_body: %s\n" % e) +``` +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +body | typing.Union[SchemaForRequestBodyApplicationJson] | required | +content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body +stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file +timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client +skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned + +### body + +#### SchemaForRequestBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | Unset | body was not defined | +headers | Unset | headers were not defined | + + +void (empty response body) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + +# **post_required_with_escaped_characters_response_body_for_content_types** + +> bool, date, datetime, dict, float, int, list, str, none_type post_required_with_escaped_characters_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import required_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = required_api.RequiredApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_required_with_escaped_characters_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling RequiredApi->post_required_with_escaped_characters_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + + +**bool, date, datetime, dict, float, int, list, str, none_type** + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ResponseContentContentTypeSchemaApi.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ResponseContentContentTypeSchemaApi.md index 1ea618731df..d7d4128a64c 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ResponseContentContentTypeSchemaApi.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/apis/tags/ResponseContentContentTypeSchemaApi.md @@ -68,6 +68,7 @@ Method | HTTP request | Description [**post_oneof_response_body_for_content_types**](#post_oneof_response_body_for_content_types) | **post** /responseBody/postOneofResponseBodyForContentTypes | [**post_oneof_with_base_schema_response_body_for_content_types**](#post_oneof_with_base_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithBaseSchemaResponseBodyForContentTypes | [**post_oneof_with_empty_schema_response_body_for_content_types**](#post_oneof_with_empty_schema_response_body_for_content_types) | **post** /responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes | +[**post_oneof_with_required_response_body_for_content_types**](#post_oneof_with_required_response_body_for_content_types) | **post** /responseBody/postOneofWithRequiredResponseBodyForContentTypes | [**post_pattern_is_not_anchored_response_body_for_content_types**](#post_pattern_is_not_anchored_response_body_for_content_types) | **post** /responseBody/postPatternIsNotAnchoredResponseBodyForContentTypes | [**post_pattern_validation_response_body_for_content_types**](#post_pattern_validation_response_body_for_content_types) | **post** /responseBody/postPatternValidationResponseBodyForContentTypes | [**post_properties_with_escaped_characters_response_body_for_content_types**](#post_properties_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postPropertiesWithEscapedCharactersResponseBodyForContentTypes | @@ -81,6 +82,7 @@ Method | HTTP request | Description [**post_required_default_validation_response_body_for_content_types**](#post_required_default_validation_response_body_for_content_types) | **post** /responseBody/postRequiredDefaultValidationResponseBodyForContentTypes | [**post_required_validation_response_body_for_content_types**](#post_required_validation_response_body_for_content_types) | **post** /responseBody/postRequiredValidationResponseBodyForContentTypes | [**post_required_with_empty_array_response_body_for_content_types**](#post_required_with_empty_array_response_body_for_content_types) | **post** /responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes | +[**post_required_with_escaped_characters_response_body_for_content_types**](#post_required_with_escaped_characters_response_body_for_content_types) | **post** /responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes | [**post_simple_enum_validation_response_body_for_content_types**](#post_simple_enum_validation_response_body_for_content_types) | **post** /responseBody/postSimpleEnumValidationResponseBodyForContentTypes | [**post_string_type_matches_strings_response_body_for_content_types**](#post_string_type_matches_strings_response_body_for_content_types) | **post** /responseBody/postStringTypeMatchesStringsResponseBodyForContentTypes | [**post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_response_body_for_content_types**](#post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_response_body_for_content_types) | **post** /responseBody/postTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingResponseBodyForContentTypes | @@ -4055,6 +4057,69 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_oneof_with_required_response_body_for_content_types** + +> OneofWithRequired post_oneof_with_required_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import response_content_content_type_schema_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = response_content_content_type_schema_api.ResponseContentContentTypeSchemaApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_oneof_with_required_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling ResponseContentContentTypeSchemaApi->post_oneof_with_required_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson +Type | Description | Notes +------------- | ------------- | ------------- +[**OneofWithRequired**](OneofWithRequired.md) | | + + + +[**OneofWithRequired**](OneofWithRequired.md) + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_pattern_is_not_anchored_response_body_for_content_types** > PatternIsNotAnchored post_pattern_is_not_anchored_response_body_for_content_types() @@ -4874,6 +4939,75 @@ No authorization required [[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) +# **post_required_with_escaped_characters_response_body_for_content_types** + +> bool, date, datetime, dict, float, int, list, str, none_type post_required_with_escaped_characters_response_body_for_content_types() + + + +### Example + +```python +import unit_test_api +from unit_test_api.apis.tags import response_content_content_type_schema_api +from pprint import pprint +# Defining the host is optional and defaults to https://someserver.com/v1 +# See configuration.py for a list of all supported configuration parameters. +configuration = unit_test_api.Configuration( + host = "https://someserver.com/v1" +) + +# Enter a context with an instance of the API client +with unit_test_api.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = response_content_content_type_schema_api.ResponseContentContentTypeSchemaApi(api_client) + + # example, this endpoint has no required or optional parameters + try: + api_response = api_instance.post_required_with_escaped_characters_response_body_for_content_types() + pprint(api_response) + except unit_test_api.ApiException as e: + print("Exception when calling ResponseContentContentTypeSchemaApi->post_required_with_escaped_characters_response_body_for_content_types: %s\n" % e) +``` +### Parameters +This endpoint does not need any parameter. + +### Return Types, Responses + +Code | Class | Description +------------- | ------------- | ------------- +n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned +200 | ApiResponseFor200 | success + +#### ApiResponseFor200 +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +response | urllib3.HTTPResponse | Raw response | +body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | | +headers | Unset | headers were not defined | + +#### SchemaFor200ResponseBodyApplicationJson + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + + +**bool, date, datetime, dict, float, int, list, str, none_type** + +### Authorization + +No authorization required + +[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md) + # **post_simple_enum_validation_response_body_for_content_types** > SimpleEnumValidation post_simple_enum_validation_response_body_for_content_types() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/EnumsInProperties.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/EnumsInProperties.md index 8aa25420711..322f4776069 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/EnumsInProperties.md +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/EnumsInProperties.md @@ -3,8 +3,8 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**foo** | **str** | | [optional] **bar** | **str** | | +**foo** | **str** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/OneofWithRequired.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/OneofWithRequired.md new file mode 100644 index 00000000000..5924063332f --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/OneofWithRequired.md @@ -0,0 +1,9 @@ +# unit_test_api.model.oneof_with_required.OneofWithRequired + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/RequiredWithEscapedCharacters.md b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/RequiredWithEscapedCharacters.md new file mode 100644 index 00000000000..fdbb4771151 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/docs/models/RequiredWithEscapedCharacters.md @@ -0,0 +1,15 @@ +# unit_test_api.model.required_with_escaped_characters.RequiredWithEscapedCharacters + +#### Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**foo\"bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\nbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\fbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\tbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\rbar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**foo\\bar** | **bool, date, datetime, dict, float, int, list, str, none_type** | | +**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] + +[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_oneof_with_required.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_oneof_with_required.py new file mode 100644 index 00000000000..2d534dce706 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_oneof_with_required.py @@ -0,0 +1,75 @@ +# coding: utf-8 + +""" + openapi 3.0.3 sample spec + + sample spec for testing openapi functionality, built from json schema tests for draft6 # noqa: E501 + + The version of the OpenAPI document: 0.0.1 + Generated by: https://openapi-generator.tech +""" + +import unittest + +import unit_test_api +from unit_test_api.model.oneof_with_required import OneofWithRequired +from unit_test_api import configuration + + +class TestOneofWithRequired(unittest.TestCase): + """OneofWithRequired unit test stubs""" + _configuration = configuration.Configuration() + + def test_both_valid_invalid_fails(self): + # both valid - invalid + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + OneofWithRequired._from_openapi_data( + { + "foo": + 1, + "bar": + 2, + "baz": + 3, + }, + _configuration=self._configuration + ) + + def test_both_invalid_invalid_fails(self): + # both invalid - invalid + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + OneofWithRequired._from_openapi_data( + { + "bar": + 2, + }, + _configuration=self._configuration + ) + + def test_first_valid_valid_passes(self): + # first valid - valid + OneofWithRequired._from_openapi_data( + { + "foo": + 1, + "bar": + 2, + }, + _configuration=self._configuration + ) + + def test_second_valid_valid_passes(self): + # second valid - valid + OneofWithRequired._from_openapi_data( + { + "foo": + 1, + "baz": + 3, + }, + _configuration=self._configuration + ) + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_required_with_escaped_characters.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_required_with_escaped_characters.py new file mode 100644 index 00000000000..16ae0040c10 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_models/test_required_with_escaped_characters.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + openapi 3.0.3 sample spec + + sample spec for testing openapi functionality, built from json schema tests for draft6 # noqa: E501 + + The version of the OpenAPI document: 0.0.1 + Generated by: https://openapi-generator.tech +""" + +import unittest + +import unit_test_api +from unit_test_api.model.required_with_escaped_characters import RequiredWithEscapedCharacters +from unit_test_api import configuration + + +class TestRequiredWithEscapedCharacters(unittest.TestCase): + """RequiredWithEscapedCharacters unit test stubs""" + _configuration = configuration.Configuration() + + def test_object_with_some_properties_missing_is_invalid_fails(self): + # object with some properties missing is invalid + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + RequiredWithEscapedCharacters._from_openapi_data( + { + "foo\nbar": + "1", + "foo\"bar": + "1", + }, + _configuration=self._configuration + ) + + def test_object_with_all_properties_present_is_valid_passes(self): + # object with all properties present is valid + RequiredWithEscapedCharacters._from_openapi_data( + { + "foo\nbar": + 1, + "foo\"bar": + 1, + "foo\\bar": + 1, + "foo\rbar": + 1, + "foo\tbar": + 1, + "foo\fbar": + 1, + }, + _configuration=self._configuration + ) + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_oneof_with_required_request_body/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_oneof_with_required_request_body/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_oneof_with_required_request_body/test_post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_oneof_with_required_request_body/test_post.py new file mode 100644 index 00000000000..323941253d0 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_oneof_with_required_request_body/test_post.py @@ -0,0 +1,149 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +import unittest +from unittest.mock import patch + +import urllib3 + +import unit_test_api +from unit_test_api.paths.request_body_post_oneof_with_required_request_body import post # noqa: E501 +from unit_test_api import configuration, schemas, api_client + +from .. import ApiTestMixin + + +class TestRequestBodyPostOneofWithRequiredRequestBody(ApiTestMixin, unittest.TestCase): + """ + RequestBodyPostOneofWithRequiredRequestBody unit test stubs + """ + _configuration = configuration.Configuration() + + def setUp(self): + used_api_client = api_client.ApiClient(configuration=self._configuration) + self.api = post.ApiForpost(api_client=used_api_client) # noqa: E501 + + def tearDown(self): + pass + + response_status = 200 + response_body = '' + + def test_both_valid_invalid_fails(self): + content_type = 'application/json' + # both valid - invalid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "bar": + 2, + "baz": + 3, + } + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + self.api.post(body=body) + + def test_both_invalid_invalid_fails(self): + content_type = 'application/json' + # both invalid - invalid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "bar": + 2, + } + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + self.api.post(body=body) + + def test_first_valid_valid_passes(self): + content_type = 'application/json' + # first valid - valid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "bar": + 2, + } + ) + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + mock_request.return_value = self.response( + self.json_bytes(self.response_body), + status=self.response_status + ) + api_response = self.api.post( + body=body, + content_type=content_type + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/requestBody/postOneofWithRequiredRequestBody', + method='post'.upper(), + body=self.json_bytes(payload), + content_type=content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, schemas.Unset) + + def test_second_valid_valid_passes(self): + content_type = 'application/json' + # second valid - valid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "baz": + 3, + } + ) + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + mock_request.return_value = self.response( + self.json_bytes(self.response_body), + status=self.response_status + ) + api_response = self.api.post( + body=body, + content_type=content_type + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/requestBody/postOneofWithRequiredRequestBody', + method='post'.upper(), + body=self.json_bytes(payload), + content_type=content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, schemas.Unset) + + + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_required_with_escaped_characters_request_body/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_required_with_escaped_characters_request_body/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_required_with_escaped_characters_request_body/test_post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_required_with_escaped_characters_request_body/test_post.py new file mode 100644 index 00000000000..1d8e5fd75e6 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_request_body_post_required_with_escaped_characters_request_body/test_post.py @@ -0,0 +1,103 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +import unittest +from unittest.mock import patch + +import urllib3 + +import unit_test_api +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body import post # noqa: E501 +from unit_test_api import configuration, schemas, api_client + +from .. import ApiTestMixin + + +class TestRequestBodyPostRequiredWithEscapedCharactersRequestBody(ApiTestMixin, unittest.TestCase): + """ + RequestBodyPostRequiredWithEscapedCharactersRequestBody unit test stubs + """ + _configuration = configuration.Configuration() + + def setUp(self): + used_api_client = api_client.ApiClient(configuration=self._configuration) + self.api = post.ApiForpost(api_client=used_api_client) # noqa: E501 + + def tearDown(self): + pass + + response_status = 200 + response_body = '' + + def test_object_with_some_properties_missing_is_invalid_fails(self): + content_type = 'application/json' + # object with some properties missing is invalid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo\nbar": + "1", + "foo\"bar": + "1", + } + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + self.api.post(body=body) + + def test_object_with_all_properties_present_is_valid_passes(self): + content_type = 'application/json' + # object with all properties present is valid + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo\nbar": + 1, + "foo\"bar": + 1, + "foo\\bar": + 1, + "foo\rbar": + 1, + "foo\tbar": + 1, + "foo\fbar": + 1, + } + ) + body = post.SchemaForRequestBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + mock_request.return_value = self.response( + self.json_bytes(self.response_body), + status=self.response_status + ) + api_response = self.api.post( + body=body, + content_type=content_type + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/requestBody/postRequiredWithEscapedCharactersRequestBody', + method='post'.upper(), + body=self.json_bytes(payload), + content_type=content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, schemas.Unset) + + + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_oneof_with_required_response_body_for_content_types/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_oneof_with_required_response_body_for_content_types/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_oneof_with_required_response_body_for_content_types/test_post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_oneof_with_required_response_body_for_content_types/test_post.py new file mode 100644 index 00000000000..ffe318fb037 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_oneof_with_required_response_body_for_content_types/test_post.py @@ -0,0 +1,168 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +import unittest +from unittest.mock import patch + +import urllib3 + +import unit_test_api +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types import post # noqa: E501 +from unit_test_api import configuration, schemas, api_client + +from .. import ApiTestMixin + + +class TestResponseBodyPostOneofWithRequiredResponseBodyForContentTypes(ApiTestMixin, unittest.TestCase): + """ + ResponseBodyPostOneofWithRequiredResponseBodyForContentTypes unit test stubs + """ + _configuration = configuration.Configuration() + + def setUp(self): + used_api_client = api_client.ApiClient(configuration=self._configuration) + self.api = post.ApiForpost(api_client=used_api_client) # noqa: E501 + + def tearDown(self): + pass + + response_status = 200 + + def test_both_valid_invalid_fails(self): + # both valid - invalid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "bar": + 2, + "baz": + 3, + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postOneofWithRequiredResponseBodyForContentTypes', + method='post'.upper(), + content_type=None, + accept_content_type=accept_content_type, + ) + + def test_both_invalid_invalid_fails(self): + # both invalid - invalid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "bar": + 2, + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postOneofWithRequiredResponseBodyForContentTypes', + method='post'.upper(), + content_type=None, + accept_content_type=accept_content_type, + ) + + def test_first_valid_valid_passes(self): + # first valid - valid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "bar": + 2, + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + api_response = self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postOneofWithRequiredResponseBodyForContentTypes', + method='post'.upper(), + accept_content_type=accept_content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, post.SchemaFor200ResponseBodyApplicationJson) + deserialized_response_body = post.SchemaFor200ResponseBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + assert api_response.body == deserialized_response_body + + def test_second_valid_valid_passes(self): + # second valid - valid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo": + 1, + "baz": + 3, + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + api_response = self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postOneofWithRequiredResponseBodyForContentTypes', + method='post'.upper(), + accept_content_type=accept_content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, post.SchemaFor200ResponseBodyApplicationJson) + deserialized_response_body = post.SchemaFor200ResponseBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + assert api_response.body == deserialized_response_body + + + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_required_with_escaped_characters_response_body_for_content_types/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_required_with_escaped_characters_response_body_for_content_types/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_required_with_escaped_characters_response_body_for_content_types/test_post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_required_with_escaped_characters_response_body_for_content_types/test_post.py new file mode 100644 index 00000000000..04d63624997 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/test/test_paths/test_response_body_post_required_with_escaped_characters_response_body_for_content_types/test_post.py @@ -0,0 +1,112 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +import unittest +from unittest.mock import patch + +import urllib3 + +import unit_test_api +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types import post # noqa: E501 +from unit_test_api import configuration, schemas, api_client + +from .. import ApiTestMixin + + +class TestResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes(ApiTestMixin, unittest.TestCase): + """ + ResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes unit test stubs + """ + _configuration = configuration.Configuration() + + def setUp(self): + used_api_client = api_client.ApiClient(configuration=self._configuration) + self.api = post.ApiForpost(api_client=used_api_client) # noqa: E501 + + def tearDown(self): + pass + + response_status = 200 + + def test_object_with_some_properties_missing_is_invalid_fails(self): + # object with some properties missing is invalid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo\nbar": + "1", + "foo\"bar": + "1", + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + with self.assertRaises((unit_test_api.ApiValueError, unit_test_api.ApiTypeError)): + self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes', + method='post'.upper(), + content_type=None, + accept_content_type=accept_content_type, + ) + + def test_object_with_all_properties_present_is_valid_passes(self): + # object with all properties present is valid + accept_content_type = 'application/json' + + with patch.object(urllib3.PoolManager, 'request') as mock_request: + payload = ( + { + "foo\nbar": + 1, + "foo\"bar": + 1, + "foo\\bar": + 1, + "foo\rbar": + 1, + "foo\tbar": + 1, + "foo\fbar": + 1, + } + ) + mock_request.return_value = self.response( + self.json_bytes(payload), + status=self.response_status + ) + api_response = self.api.post( + accept_content_types=(accept_content_type,) + ) + self.assert_pool_manager_request_called_with( + mock_request, + self._configuration.host + '/responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes', + method='post'.upper(), + accept_content_type=accept_content_type, + ) + + assert isinstance(api_response.response, urllib3.HTTPResponse) + assert isinstance(api_response.body, post.SchemaFor200ResponseBodyApplicationJson) + deserialized_response_body = post.SchemaFor200ResponseBodyApplicationJson._from_openapi_data( + payload, + _configuration=self._configuration + ) + assert api_response.body == deserialized_response_body + + + + +if __name__ == '__main__': + unittest.main() diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/path_to_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/path_to_api.py index 2fee42e365c..77ae7d58a3c 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/path_to_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/path_to_api.py @@ -121,6 +121,8 @@ from unit_test_api.apis.paths.request_body_post_oneof_complex_types_request_body from unit_test_api.apis.paths.response_body_post_oneof_complex_types_response_body_for_content_types import ResponseBodyPostOneofComplexTypesResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_oneof_with_empty_schema_request_body import RequestBodyPostOneofWithEmptySchemaRequestBody from unit_test_api.apis.paths.response_body_post_oneof_with_empty_schema_response_body_for_content_types import ResponseBodyPostOneofWithEmptySchemaResponseBodyForContentTypes +from unit_test_api.apis.paths.request_body_post_oneof_with_required_request_body import RequestBodyPostOneofWithRequiredRequestBody +from unit_test_api.apis.paths.response_body_post_oneof_with_required_response_body_for_content_types import ResponseBodyPostOneofWithRequiredResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_nested_oneof_to_check_validation_semantics_request_body import RequestBodyPostNestedOneofToCheckValidationSemanticsRequestBody from unit_test_api.apis.paths.response_body_post_nested_oneof_to_check_validation_semantics_response_body_for_content_types import ResponseBodyPostNestedOneofToCheckValidationSemanticsResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_pattern_validation_request_body import RequestBodyPostPatternValidationRequestBody @@ -151,6 +153,8 @@ from unit_test_api.apis.paths.request_body_post_required_default_validation_requ from unit_test_api.apis.paths.response_body_post_required_default_validation_response_body_for_content_types import ResponseBodyPostRequiredDefaultValidationResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_required_with_empty_array_request_body import RequestBodyPostRequiredWithEmptyArrayRequestBody from unit_test_api.apis.paths.response_body_post_required_with_empty_array_response_body_for_content_types import ResponseBodyPostRequiredWithEmptyArrayResponseBodyForContentTypes +from unit_test_api.apis.paths.request_body_post_required_with_escaped_characters_request_body import RequestBodyPostRequiredWithEscapedCharactersRequestBody +from unit_test_api.apis.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types import ResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_integer_type_matches_integers_request_body import RequestBodyPostIntegerTypeMatchesIntegersRequestBody from unit_test_api.apis.paths.response_body_post_integer_type_matches_integers_response_body_for_content_types import ResponseBodyPostIntegerTypeMatchesIntegersResponseBodyForContentTypes from unit_test_api.apis.paths.request_body_post_number_type_matches_numbers_request_body import RequestBodyPostNumberTypeMatchesNumbersRequestBody @@ -293,6 +297,8 @@ PathToApi = typing.TypedDict( PathValues.RESPONSE_BODY_POST_ONEOF_COMPLEX_TYPES_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofComplexTypesResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_REQUEST_BODY: RequestBodyPostOneofWithEmptySchemaRequestBody, PathValues.RESPONSE_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofWithEmptySchemaResponseBodyForContentTypes, + PathValues.REQUEST_BODY_POST_ONEOF_WITH_REQUIRED_REQUEST_BODY: RequestBodyPostOneofWithRequiredRequestBody, + PathValues.RESPONSE_BODY_POST_ONEOF_WITH_REQUIRED_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofWithRequiredResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_REQUEST_BODY: RequestBodyPostNestedOneofToCheckValidationSemanticsRequestBody, PathValues.RESPONSE_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostNestedOneofToCheckValidationSemanticsResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_PATTERN_VALIDATION_REQUEST_BODY: RequestBodyPostPatternValidationRequestBody, @@ -323,6 +329,8 @@ PathToApi = typing.TypedDict( PathValues.RESPONSE_BODY_POST_REQUIRED_DEFAULT_VALIDATION_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredDefaultValidationResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_REQUEST_BODY: RequestBodyPostRequiredWithEmptyArrayRequestBody, PathValues.RESPONSE_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredWithEmptyArrayResponseBodyForContentTypes, + PathValues.REQUEST_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_REQUEST_BODY: RequestBodyPostRequiredWithEscapedCharactersRequestBody, + PathValues.RESPONSE_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_REQUEST_BODY: RequestBodyPostIntegerTypeMatchesIntegersRequestBody, PathValues.RESPONSE_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostIntegerTypeMatchesIntegersResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_NUMBER_TYPE_MATCHES_NUMBERS_REQUEST_BODY: RequestBodyPostNumberTypeMatchesNumbersRequestBody, @@ -466,6 +474,8 @@ path_to_api = PathToApi( PathValues.RESPONSE_BODY_POST_ONEOF_COMPLEX_TYPES_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofComplexTypesResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_REQUEST_BODY: RequestBodyPostOneofWithEmptySchemaRequestBody, PathValues.RESPONSE_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofWithEmptySchemaResponseBodyForContentTypes, + PathValues.REQUEST_BODY_POST_ONEOF_WITH_REQUIRED_REQUEST_BODY: RequestBodyPostOneofWithRequiredRequestBody, + PathValues.RESPONSE_BODY_POST_ONEOF_WITH_REQUIRED_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostOneofWithRequiredResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_REQUEST_BODY: RequestBodyPostNestedOneofToCheckValidationSemanticsRequestBody, PathValues.RESPONSE_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostNestedOneofToCheckValidationSemanticsResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_PATTERN_VALIDATION_REQUEST_BODY: RequestBodyPostPatternValidationRequestBody, @@ -496,6 +506,8 @@ path_to_api = PathToApi( PathValues.RESPONSE_BODY_POST_REQUIRED_DEFAULT_VALIDATION_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredDefaultValidationResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_REQUEST_BODY: RequestBodyPostRequiredWithEmptyArrayRequestBody, PathValues.RESPONSE_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredWithEmptyArrayResponseBodyForContentTypes, + PathValues.REQUEST_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_REQUEST_BODY: RequestBodyPostRequiredWithEscapedCharactersRequestBody, + PathValues.RESPONSE_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_REQUEST_BODY: RequestBodyPostIntegerTypeMatchesIntegersRequestBody, PathValues.RESPONSE_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_RESPONSE_BODY_FOR_CONTENT_TYPES: ResponseBodyPostIntegerTypeMatchesIntegersResponseBodyForContentTypes, PathValues.REQUEST_BODY_POST_NUMBER_TYPE_MATCHES_NUMBERS_REQUEST_BODY: RequestBodyPostNumberTypeMatchesNumbersRequestBody, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_oneof_with_required_request_body.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_oneof_with_required_request_body.py new file mode 100644 index 00000000000..774cf6dc1ac --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_oneof_with_required_request_body.py @@ -0,0 +1,7 @@ +from unit_test_api.paths.request_body_post_oneof_with_required_request_body.post import ApiForpost + + +class RequestBodyPostOneofWithRequiredRequestBody( + ApiForpost, +): + pass diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_required_with_escaped_characters_request_body.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_required_with_escaped_characters_request_body.py new file mode 100644 index 00000000000..2098fa9255d --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/request_body_post_required_with_escaped_characters_request_body.py @@ -0,0 +1,7 @@ +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body.post import ApiForpost + + +class RequestBodyPostRequiredWithEscapedCharactersRequestBody( + ApiForpost, +): + pass diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_oneof_with_required_response_body_for_content_types.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_oneof_with_required_response_body_for_content_types.py new file mode 100644 index 00000000000..f5a9664a518 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_oneof_with_required_response_body_for_content_types.py @@ -0,0 +1,7 @@ +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types.post import ApiForpost + + +class ResponseBodyPostOneofWithRequiredResponseBodyForContentTypes( + ApiForpost, +): + pass diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types.py new file mode 100644 index 00000000000..50f83818f4b --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types.py @@ -0,0 +1,7 @@ +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types.post import ApiForpost + + +class ResponseBodyPostRequiredWithEscapedCharactersResponseBodyForContentTypes( + ApiForpost, +): + pass diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/content_type_json_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/content_type_json_api.py index 9fe55cb493f..074fe5d7b16 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/content_type_json_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/content_type_json_api.py @@ -135,6 +135,8 @@ from unit_test_api.paths.request_body_post_oneof_with_base_schema_request_body.p from unit_test_api.paths.response_body_post_oneof_with_base_schema_response_body_for_content_types.post import PostOneofWithBaseSchemaResponseBodyForContentTypes from unit_test_api.paths.request_body_post_oneof_with_empty_schema_request_body.post import PostOneofWithEmptySchemaRequestBody from unit_test_api.paths.response_body_post_oneof_with_empty_schema_response_body_for_content_types.post import PostOneofWithEmptySchemaResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_oneof_with_required_request_body.post import PostOneofWithRequiredRequestBody +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types.post import PostOneofWithRequiredResponseBodyForContentTypes from unit_test_api.paths.request_body_post_pattern_is_not_anchored_request_body.post import PostPatternIsNotAnchoredRequestBody from unit_test_api.paths.response_body_post_pattern_is_not_anchored_response_body_for_content_types.post import PostPatternIsNotAnchoredResponseBodyForContentTypes from unit_test_api.paths.request_body_post_pattern_validation_request_body.post import PostPatternValidationRequestBody @@ -161,6 +163,8 @@ from unit_test_api.paths.request_body_post_required_validation_request_body.post from unit_test_api.paths.response_body_post_required_validation_response_body_for_content_types.post import PostRequiredValidationResponseBodyForContentTypes from unit_test_api.paths.request_body_post_required_with_empty_array_request_body.post import PostRequiredWithEmptyArrayRequestBody from unit_test_api.paths.response_body_post_required_with_empty_array_response_body_for_content_types.post import PostRequiredWithEmptyArrayResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body.post import PostRequiredWithEscapedCharactersRequestBody +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types.post import PostRequiredWithEscapedCharactersResponseBodyForContentTypes from unit_test_api.paths.request_body_post_simple_enum_validation_request_body.post import PostSimpleEnumValidationRequestBody from unit_test_api.paths.response_body_post_simple_enum_validation_response_body_for_content_types.post import PostSimpleEnumValidationResponseBodyForContentTypes from unit_test_api.paths.request_body_post_string_type_matches_strings_request_body.post import PostStringTypeMatchesStringsRequestBody @@ -306,6 +310,8 @@ class ContentTypeJsonApi( PostOneofWithBaseSchemaResponseBodyForContentTypes, PostOneofWithEmptySchemaRequestBody, PostOneofWithEmptySchemaResponseBodyForContentTypes, + PostOneofWithRequiredRequestBody, + PostOneofWithRequiredResponseBodyForContentTypes, PostPatternIsNotAnchoredRequestBody, PostPatternIsNotAnchoredResponseBodyForContentTypes, PostPatternValidationRequestBody, @@ -332,6 +338,8 @@ class ContentTypeJsonApi( PostRequiredValidationResponseBodyForContentTypes, PostRequiredWithEmptyArrayRequestBody, PostRequiredWithEmptyArrayResponseBodyForContentTypes, + PostRequiredWithEscapedCharactersRequestBody, + PostRequiredWithEscapedCharactersResponseBodyForContentTypes, PostSimpleEnumValidationRequestBody, PostSimpleEnumValidationResponseBodyForContentTypes, PostStringTypeMatchesStringsRequestBody, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/one_of_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/one_of_api.py index f1ebdb77aa0..4582b5e30f4 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/one_of_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/one_of_api.py @@ -19,6 +19,8 @@ from unit_test_api.paths.request_body_post_oneof_with_base_schema_request_body.p from unit_test_api.paths.response_body_post_oneof_with_base_schema_response_body_for_content_types.post import PostOneofWithBaseSchemaResponseBodyForContentTypes from unit_test_api.paths.request_body_post_oneof_with_empty_schema_request_body.post import PostOneofWithEmptySchemaRequestBody from unit_test_api.paths.response_body_post_oneof_with_empty_schema_response_body_for_content_types.post import PostOneofWithEmptySchemaResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_oneof_with_required_request_body.post import PostOneofWithRequiredRequestBody +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types.post import PostOneofWithRequiredResponseBodyForContentTypes class OneOfApi( @@ -32,6 +34,8 @@ class OneOfApi( PostOneofWithBaseSchemaResponseBodyForContentTypes, PostOneofWithEmptySchemaRequestBody, PostOneofWithEmptySchemaResponseBodyForContentTypes, + PostOneofWithRequiredRequestBody, + PostOneofWithRequiredResponseBodyForContentTypes, ): """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/operation_request_body_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/operation_request_body_api.py index f84e0720041..db020cfacd6 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/operation_request_body_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/operation_request_body_api.py @@ -72,6 +72,7 @@ from unit_test_api.paths.request_body_post_oneof_complex_types_request_body.post from unit_test_api.paths.request_body_post_oneof_request_body.post import PostOneofRequestBody from unit_test_api.paths.request_body_post_oneof_with_base_schema_request_body.post import PostOneofWithBaseSchemaRequestBody from unit_test_api.paths.request_body_post_oneof_with_empty_schema_request_body.post import PostOneofWithEmptySchemaRequestBody +from unit_test_api.paths.request_body_post_oneof_with_required_request_body.post import PostOneofWithRequiredRequestBody from unit_test_api.paths.request_body_post_pattern_is_not_anchored_request_body.post import PostPatternIsNotAnchoredRequestBody from unit_test_api.paths.request_body_post_pattern_validation_request_body.post import PostPatternValidationRequestBody from unit_test_api.paths.request_body_post_properties_with_escaped_characters_request_body.post import PostPropertiesWithEscapedCharactersRequestBody @@ -85,6 +86,7 @@ from unit_test_api.paths.request_body_post_ref_in_property_request_body.post imp from unit_test_api.paths.request_body_post_required_default_validation_request_body.post import PostRequiredDefaultValidationRequestBody from unit_test_api.paths.request_body_post_required_validation_request_body.post import PostRequiredValidationRequestBody from unit_test_api.paths.request_body_post_required_with_empty_array_request_body.post import PostRequiredWithEmptyArrayRequestBody +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body.post import PostRequiredWithEscapedCharactersRequestBody from unit_test_api.paths.request_body_post_simple_enum_validation_request_body.post import PostSimpleEnumValidationRequestBody from unit_test_api.paths.request_body_post_string_type_matches_strings_request_body.post import PostStringTypeMatchesStringsRequestBody from unit_test_api.paths.request_body_post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_request_body.post import PostTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingRequestBody @@ -159,6 +161,7 @@ class OperationRequestBodyApi( PostOneofRequestBody, PostOneofWithBaseSchemaRequestBody, PostOneofWithEmptySchemaRequestBody, + PostOneofWithRequiredRequestBody, PostPatternIsNotAnchoredRequestBody, PostPatternValidationRequestBody, PostPropertiesWithEscapedCharactersRequestBody, @@ -172,6 +175,7 @@ class OperationRequestBodyApi( PostRequiredDefaultValidationRequestBody, PostRequiredValidationRequestBody, PostRequiredWithEmptyArrayRequestBody, + PostRequiredWithEscapedCharactersRequestBody, PostSimpleEnumValidationRequestBody, PostStringTypeMatchesStringsRequestBody, PostTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingRequestBody, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/path_post_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/path_post_api.py index e3ee563ffc5..de323d225d2 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/path_post_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/path_post_api.py @@ -135,6 +135,8 @@ from unit_test_api.paths.request_body_post_oneof_with_base_schema_request_body.p from unit_test_api.paths.response_body_post_oneof_with_base_schema_response_body_for_content_types.post import PostOneofWithBaseSchemaResponseBodyForContentTypes from unit_test_api.paths.request_body_post_oneof_with_empty_schema_request_body.post import PostOneofWithEmptySchemaRequestBody from unit_test_api.paths.response_body_post_oneof_with_empty_schema_response_body_for_content_types.post import PostOneofWithEmptySchemaResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_oneof_with_required_request_body.post import PostOneofWithRequiredRequestBody +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types.post import PostOneofWithRequiredResponseBodyForContentTypes from unit_test_api.paths.request_body_post_pattern_is_not_anchored_request_body.post import PostPatternIsNotAnchoredRequestBody from unit_test_api.paths.response_body_post_pattern_is_not_anchored_response_body_for_content_types.post import PostPatternIsNotAnchoredResponseBodyForContentTypes from unit_test_api.paths.request_body_post_pattern_validation_request_body.post import PostPatternValidationRequestBody @@ -161,6 +163,8 @@ from unit_test_api.paths.request_body_post_required_validation_request_body.post from unit_test_api.paths.response_body_post_required_validation_response_body_for_content_types.post import PostRequiredValidationResponseBodyForContentTypes from unit_test_api.paths.request_body_post_required_with_empty_array_request_body.post import PostRequiredWithEmptyArrayRequestBody from unit_test_api.paths.response_body_post_required_with_empty_array_response_body_for_content_types.post import PostRequiredWithEmptyArrayResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body.post import PostRequiredWithEscapedCharactersRequestBody +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types.post import PostRequiredWithEscapedCharactersResponseBodyForContentTypes from unit_test_api.paths.request_body_post_simple_enum_validation_request_body.post import PostSimpleEnumValidationRequestBody from unit_test_api.paths.response_body_post_simple_enum_validation_response_body_for_content_types.post import PostSimpleEnumValidationResponseBodyForContentTypes from unit_test_api.paths.request_body_post_string_type_matches_strings_request_body.post import PostStringTypeMatchesStringsRequestBody @@ -306,6 +310,8 @@ class PathPostApi( PostOneofWithBaseSchemaResponseBodyForContentTypes, PostOneofWithEmptySchemaRequestBody, PostOneofWithEmptySchemaResponseBodyForContentTypes, + PostOneofWithRequiredRequestBody, + PostOneofWithRequiredResponseBodyForContentTypes, PostPatternIsNotAnchoredRequestBody, PostPatternIsNotAnchoredResponseBodyForContentTypes, PostPatternValidationRequestBody, @@ -332,6 +338,8 @@ class PathPostApi( PostRequiredValidationResponseBodyForContentTypes, PostRequiredWithEmptyArrayRequestBody, PostRequiredWithEmptyArrayResponseBodyForContentTypes, + PostRequiredWithEscapedCharactersRequestBody, + PostRequiredWithEscapedCharactersResponseBodyForContentTypes, PostSimpleEnumValidationRequestBody, PostSimpleEnumValidationResponseBodyForContentTypes, PostStringTypeMatchesStringsRequestBody, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/required_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/required_api.py index 3b27b42d1d2..4ba23de087a 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/required_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/required_api.py @@ -15,6 +15,8 @@ from unit_test_api.paths.request_body_post_required_validation_request_body.post from unit_test_api.paths.response_body_post_required_validation_response_body_for_content_types.post import PostRequiredValidationResponseBodyForContentTypes from unit_test_api.paths.request_body_post_required_with_empty_array_request_body.post import PostRequiredWithEmptyArrayRequestBody from unit_test_api.paths.response_body_post_required_with_empty_array_response_body_for_content_types.post import PostRequiredWithEmptyArrayResponseBodyForContentTypes +from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body.post import PostRequiredWithEscapedCharactersRequestBody +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types.post import PostRequiredWithEscapedCharactersResponseBodyForContentTypes class RequiredApi( @@ -24,6 +26,8 @@ class RequiredApi( PostRequiredValidationResponseBodyForContentTypes, PostRequiredWithEmptyArrayRequestBody, PostRequiredWithEmptyArrayResponseBodyForContentTypes, + PostRequiredWithEscapedCharactersRequestBody, + PostRequiredWithEscapedCharactersResponseBodyForContentTypes, ): """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/response_content_content_type_schema_api.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/response_content_content_type_schema_api.py index 496c9ecca54..8c65e4ec0db 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/response_content_content_type_schema_api.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/apis/tags/response_content_content_type_schema_api.py @@ -72,6 +72,7 @@ from unit_test_api.paths.response_body_post_oneof_complex_types_response_body_fo from unit_test_api.paths.response_body_post_oneof_response_body_for_content_types.post import PostOneofResponseBodyForContentTypes from unit_test_api.paths.response_body_post_oneof_with_base_schema_response_body_for_content_types.post import PostOneofWithBaseSchemaResponseBodyForContentTypes from unit_test_api.paths.response_body_post_oneof_with_empty_schema_response_body_for_content_types.post import PostOneofWithEmptySchemaResponseBodyForContentTypes +from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types.post import PostOneofWithRequiredResponseBodyForContentTypes from unit_test_api.paths.response_body_post_pattern_is_not_anchored_response_body_for_content_types.post import PostPatternIsNotAnchoredResponseBodyForContentTypes from unit_test_api.paths.response_body_post_pattern_validation_response_body_for_content_types.post import PostPatternValidationResponseBodyForContentTypes from unit_test_api.paths.response_body_post_properties_with_escaped_characters_response_body_for_content_types.post import PostPropertiesWithEscapedCharactersResponseBodyForContentTypes @@ -85,6 +86,7 @@ from unit_test_api.paths.response_body_post_ref_in_property_response_body_for_co from unit_test_api.paths.response_body_post_required_default_validation_response_body_for_content_types.post import PostRequiredDefaultValidationResponseBodyForContentTypes from unit_test_api.paths.response_body_post_required_validation_response_body_for_content_types.post import PostRequiredValidationResponseBodyForContentTypes from unit_test_api.paths.response_body_post_required_with_empty_array_response_body_for_content_types.post import PostRequiredWithEmptyArrayResponseBodyForContentTypes +from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types.post import PostRequiredWithEscapedCharactersResponseBodyForContentTypes from unit_test_api.paths.response_body_post_simple_enum_validation_response_body_for_content_types.post import PostSimpleEnumValidationResponseBodyForContentTypes from unit_test_api.paths.response_body_post_string_type_matches_strings_response_body_for_content_types.post import PostStringTypeMatchesStringsResponseBodyForContentTypes from unit_test_api.paths.response_body_post_the_default_keyword_does_not_do_anything_if_the_property_is_missing_response_body_for_content_types.post import PostTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingResponseBodyForContentTypes @@ -159,6 +161,7 @@ class ResponseContentContentTypeSchemaApi( PostOneofResponseBodyForContentTypes, PostOneofWithBaseSchemaResponseBodyForContentTypes, PostOneofWithEmptySchemaResponseBodyForContentTypes, + PostOneofWithRequiredResponseBodyForContentTypes, PostPatternIsNotAnchoredResponseBodyForContentTypes, PostPatternValidationResponseBodyForContentTypes, PostPropertiesWithEscapedCharactersResponseBodyForContentTypes, @@ -172,6 +175,7 @@ class ResponseContentContentTypeSchemaApi( PostRequiredDefaultValidationResponseBodyForContentTypes, PostRequiredValidationResponseBodyForContentTypes, PostRequiredWithEmptyArrayResponseBodyForContentTypes, + PostRequiredWithEscapedCharactersResponseBodyForContentTypes, PostSimpleEnumValidationResponseBodyForContentTypes, PostStringTypeMatchesStringsResponseBodyForContentTypes, PostTheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissingResponseBodyForContentTypes, diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof.py index 51d4cec94c3..3a0dee40435 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof.py @@ -93,9 +93,9 @@ class Allof( class allOf_0( AnyTypeSchema ): - _required_property_names = set(( - 'bar', - )) + _required_property_names = { + "bar", + } bar = IntSchema def __new__( @@ -117,9 +117,9 @@ class Allof( class allOf_1( AnyTypeSchema ): - _required_property_names = set(( - 'foo', - )) + _required_property_names = { + "foo", + } foo = StrSchema def __new__( diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof_with_base_schema.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof_with_base_schema.py index b0a4665f9b3..408b065e352 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof_with_base_schema.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/allof_with_base_schema.py @@ -76,9 +76,9 @@ class AllofWithBaseSchema( Do not edit the class manually. """ - _required_property_names = set(( - 'bar', - )) + _required_property_names = { + "bar", + } bar = IntSchema @classmethod @@ -97,9 +97,9 @@ class AllofWithBaseSchema( class allOf_0( AnyTypeSchema ): - _required_property_names = set(( - 'foo', - )) + _required_property_names = { + "foo", + } foo = StrSchema def __new__( @@ -121,9 +121,9 @@ class AllofWithBaseSchema( class allOf_1( AnyTypeSchema ): - _required_property_names = set(( - 'baz', - )) + _required_property_names = { + "baz", + } baz = NoneSchema def __new__( diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/anyof_complex_types.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/anyof_complex_types.py index 918cb35d65c..c575ad2f2bb 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/anyof_complex_types.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/anyof_complex_types.py @@ -93,9 +93,9 @@ class AnyofComplexTypes( class anyOf_0( AnyTypeSchema ): - _required_property_names = set(( - 'bar', - )) + _required_property_names = { + "bar", + } bar = IntSchema def __new__( @@ -117,9 +117,9 @@ class AnyofComplexTypes( class anyOf_1( AnyTypeSchema ): - _required_property_names = set(( - 'foo', - )) + _required_property_names = { + "foo", + } foo = StrSchema def __new__( diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/enums_in_properties.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/enums_in_properties.py index bdaf150d826..b0503b13d05 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/enums_in_properties.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/enums_in_properties.py @@ -76,9 +76,9 @@ class EnumsInProperties( Do not edit the class manually. """ - _required_property_names = set(( - 'bar', - )) + _required_property_names = { + "bar", + } class foo( diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_complex_types.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_complex_types.py index e3c9861ad49..fe640103206 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_complex_types.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_complex_types.py @@ -93,9 +93,9 @@ class OneofComplexTypes( class oneOf_0( AnyTypeSchema ): - _required_property_names = set(( - 'bar', - )) + _required_property_names = { + "bar", + } bar = IntSchema def __new__( @@ -117,9 +117,9 @@ class OneofComplexTypes( class oneOf_1( AnyTypeSchema ): - _required_property_names = set(( - 'foo', - )) + _required_property_names = { + "foo", + } foo = StrSchema def __new__( diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_with_required.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_with_required.py new file mode 100644 index 00000000000..b03fc2d6377 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/oneof_with_required.py @@ -0,0 +1,160 @@ +# coding: utf-8 + +""" + openapi 3.0.3 sample spec + + sample spec for testing openapi functionality, built from json schema tests for draft6 # noqa: E501 + + The version of the OpenAPI document: 0.0.1 + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 +import typing # noqa: F401 +import functools # noqa: F401 + +from frozendict import frozendict # noqa: F401 + +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + + +class OneofWithRequired( + ComposedBase, + DictSchema +): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + @classmethod + @property + @functools.cache + def _composed_schemas(cls): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + + + class oneOf_0( + AnyTypeSchema + ): + _required_property_names = { + "bar", + "foo", + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'oneOf_0': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) + + + class oneOf_1( + AnyTypeSchema + ): + _required_property_names = { + "foo", + "baz", + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'oneOf_1': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) + return { + 'allOf': [ + ], + 'oneOf': [ + oneOf_0, + oneOf_1, + ], + 'anyOf': [ + ], + 'not': + None + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, ], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'OneofWithRequired': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_validation.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_validation.py index e8bb57f4fc5..9af5f5c08f2 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_validation.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_validation.py @@ -76,9 +76,9 @@ class RequiredValidation( Do not edit the class manually. """ - _required_property_names = set(( - 'foo', - )) + _required_property_names = { + "foo", + } foo = AnyTypeSchema bar = AnyTypeSchema diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_with_escaped_characters.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_with_escaped_characters.py new file mode 100644 index 00000000000..a463b8335ff --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/model/required_with_escaped_characters.py @@ -0,0 +1,99 @@ +# coding: utf-8 + +""" + openapi 3.0.3 sample spec + + sample spec for testing openapi functionality, built from json schema tests for draft6 # noqa: E501 + + The version of the OpenAPI document: 0.0.1 + Generated by: https://openapi-generator.tech +""" + +import re # noqa: F401 +import sys # noqa: F401 +import typing # noqa: F401 +import functools # noqa: F401 + +from frozendict import frozendict # noqa: F401 + +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + + +class RequiredWithEscapedCharacters( + AnyTypeSchema +): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + _required_property_names = { + "foo\"bar", + "foo\nbar", + "foo\fbar", + "foo\tbar", + "foo\rbar", + "foo\\bar", + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'RequiredWithEscapedCharacters': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/models/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/models/__init__.py index c794f6ca094..92d95b0b8ab 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/models/__init__.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/models/__init__.py @@ -73,6 +73,7 @@ from unit_test_api.model.oneof import Oneof from unit_test_api.model.oneof_complex_types import OneofComplexTypes from unit_test_api.model.oneof_with_base_schema import OneofWithBaseSchema from unit_test_api.model.oneof_with_empty_schema import OneofWithEmptySchema +from unit_test_api.model.oneof_with_required import OneofWithRequired from unit_test_api.model.pattern_is_not_anchored import PatternIsNotAnchored from unit_test_api.model.pattern_validation import PatternValidation from unit_test_api.model.properties_with_escaped_characters import PropertiesWithEscapedCharacters @@ -86,6 +87,7 @@ from unit_test_api.model.ref_in_property import RefInProperty from unit_test_api.model.required_default_validation import RequiredDefaultValidation from unit_test_api.model.required_validation import RequiredValidation from unit_test_api.model.required_with_empty_array import RequiredWithEmptyArray +from unit_test_api.model.required_with_escaped_characters import RequiredWithEscapedCharacters from unit_test_api.model.simple_enum_validation import SimpleEnumValidation from unit_test_api.model.string_type_matches_strings import StringTypeMatchesStrings from unit_test_api.model.the_default_keyword_does_not_do_anything_if_the_property_is_missing import TheDefaultKeywordDoesNotDoAnythingIfThePropertyIsMissing diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/__init__.py index 1f8978c4c1f..1de59a0d52b 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/__init__.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/__init__.py @@ -126,6 +126,8 @@ class PathValues(str, enum.Enum): RESPONSE_BODY_POST_ONEOF_COMPLEX_TYPES_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postOneofComplexTypesResponseBodyForContentTypes" REQUEST_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_REQUEST_BODY = "/requestBody/postOneofWithEmptySchemaRequestBody" RESPONSE_BODY_POST_ONEOF_WITH_EMPTY_SCHEMA_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postOneofWithEmptySchemaResponseBodyForContentTypes" + REQUEST_BODY_POST_ONEOF_WITH_REQUIRED_REQUEST_BODY = "/requestBody/postOneofWithRequiredRequestBody" + RESPONSE_BODY_POST_ONEOF_WITH_REQUIRED_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postOneofWithRequiredResponseBodyForContentTypes" REQUEST_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_REQUEST_BODY = "/requestBody/postNestedOneofToCheckValidationSemanticsRequestBody" RESPONSE_BODY_POST_NESTED_ONEOF_TO_CHECK_VALIDATION_SEMANTICS_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postNestedOneofToCheckValidationSemanticsResponseBodyForContentTypes" REQUEST_BODY_POST_PATTERN_VALIDATION_REQUEST_BODY = "/requestBody/postPatternValidationRequestBody" @@ -156,6 +158,8 @@ class PathValues(str, enum.Enum): RESPONSE_BODY_POST_REQUIRED_DEFAULT_VALIDATION_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postRequiredDefaultValidationResponseBodyForContentTypes" REQUEST_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_REQUEST_BODY = "/requestBody/postRequiredWithEmptyArrayRequestBody" RESPONSE_BODY_POST_REQUIRED_WITH_EMPTY_ARRAY_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postRequiredWithEmptyArrayResponseBodyForContentTypes" + REQUEST_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_REQUEST_BODY = "/requestBody/postRequiredWithEscapedCharactersRequestBody" + RESPONSE_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postRequiredWithEscapedCharactersResponseBodyForContentTypes" REQUEST_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_REQUEST_BODY = "/requestBody/postIntegerTypeMatchesIntegersRequestBody" RESPONSE_BODY_POST_INTEGER_TYPE_MATCHES_INTEGERS_RESPONSE_BODY_FOR_CONTENT_TYPES = "/responseBody/postIntegerTypeMatchesIntegersResponseBodyForContentTypes" REQUEST_BODY_POST_NUMBER_TYPE_MATCHES_NUMBERS_REQUEST_BODY = "/requestBody/postNumberTypeMatchesNumbersRequestBody" diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/__init__.py new file mode 100644 index 00000000000..748f67c50b3 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/__init__.py @@ -0,0 +1,7 @@ +# do not import all endpoints into this module because that uses a lot of memory and stack frames +# if you need the ability to import all endpoints from this module, import them with +# from unit_test_api.paths.request_body_post_oneof_with_required_request_body import Api + +from unit_test_api.paths import PathValues + +path = PathValues.REQUEST_BODY_POST_ONEOF_WITH_REQUIRED_REQUEST_BODY \ No newline at end of file diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/post.py new file mode 100644 index 00000000000..db316375fab --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_oneof_with_required_request_body/post.py @@ -0,0 +1,205 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +from dataclasses import dataclass +import re # noqa: F401 +import sys # noqa: F401 +import typing +import urllib3 +import functools # noqa: F401 +from urllib3._collections import HTTPHeaderDict + +from unit_test_api import api_client, exceptions +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + +from unit_test_api.model.oneof_with_required import OneofWithRequired + +from . import path + +# body param +SchemaForRequestBodyApplicationJson = OneofWithRequired + + +request_body_oneof_with_required = api_client.RequestBody( + content={ + 'application/json': api_client.MediaType( + schema=SchemaForRequestBodyApplicationJson), + }, + required=True, +) + + +@dataclass +class ApiResponseFor200(api_client.ApiResponse): + response: urllib3.HTTPResponse + body: Unset = unset + headers: Unset = unset + + +_response_for_200 = api_client.OpenApiResponse( + response_cls=ApiResponseFor200, +) +_status_code_to_response = { + '200': _response_for_200, +} + + +class BaseApi(api_client.Api): + + def _post_oneof_with_required_request_body( + self: api_client.Api, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + """ + :param skip_deserialization: If true then api_response.response will be set but + api_response.body and api_response.headers will not be deserialized into schema + class instances + """ + used_path = path.value + + _headers = HTTPHeaderDict() + # TODO add cookie handling + + if body is unset: + raise exceptions.ApiValueError( + 'The required body parameter has an invalid value of: unset. Set a valid value instead') + _fields = None + _body = None + serialized_data = request_body_oneof_with_required.serialize(body, content_type) + _headers.add('Content-Type', content_type) + if 'fields' in serialized_data: + _fields = serialized_data['fields'] + elif 'body' in serialized_data: + _body = serialized_data['body'] + response = self.api_client.call_api( + resource_path=used_path, + method='post'.upper(), + headers=_headers, + fields=_fields, + body=_body, + stream=stream, + timeout=timeout, + ) + + if skip_deserialization: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + else: + response_for_status = _status_code_to_response.get(str(response.status)) + if response_for_status: + api_response = response_for_status.deserialize(response, self.api_client.configuration) + else: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + + if not 200 <= response.status <= 299: + raise exceptions.ApiException(api_response=api_response) + + return api_response + + +class PostOneofWithRequiredRequestBody(BaseApi): + # this class is used by api classes that refer to endpoints with operationId fn names + + def post_oneof_with_required_request_body( + self: BaseApi, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_oneof_with_required_request_body( + body=body, + content_type=content_type, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + +class ApiForpost(BaseApi): + # this class is used by api classes that refer to endpoints by path and http method names + + def post( + self: BaseApi, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_oneof_with_required_request_body( + body=body, + content_type=content_type, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/__init__.py new file mode 100644 index 00000000000..84963ff8819 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/__init__.py @@ -0,0 +1,7 @@ +# do not import all endpoints into this module because that uses a lot of memory and stack frames +# if you need the ability to import all endpoints from this module, import them with +# from unit_test_api.paths.request_body_post_required_with_escaped_characters_request_body import Api + +from unit_test_api.paths import PathValues + +path = PathValues.REQUEST_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_REQUEST_BODY \ No newline at end of file diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/post.py new file mode 100644 index 00000000000..73d3dd4ce64 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/request_body_post_required_with_escaped_characters_request_body/post.py @@ -0,0 +1,228 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +from dataclasses import dataclass +import re # noqa: F401 +import sys # noqa: F401 +import typing +import urllib3 +import functools # noqa: F401 +from urllib3._collections import HTTPHeaderDict + +from unit_test_api import api_client, exceptions +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + +from . import path + +# body param + + +class SchemaForRequestBodyApplicationJson( + AnyTypeSchema +): + _required_property_names = { + "foo\"bar", + "foo\nbar", + "foo\fbar", + "foo\tbar", + "foo\rbar", + "foo\\bar", + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'SchemaForRequestBodyApplicationJson': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) + + +request_body_body = api_client.RequestBody( + content={ + 'application/json': api_client.MediaType( + schema=SchemaForRequestBodyApplicationJson), + }, + required=True, +) + + +@dataclass +class ApiResponseFor200(api_client.ApiResponse): + response: urllib3.HTTPResponse + body: Unset = unset + headers: Unset = unset + + +_response_for_200 = api_client.OpenApiResponse( + response_cls=ApiResponseFor200, +) +_status_code_to_response = { + '200': _response_for_200, +} + + +class BaseApi(api_client.Api): + + def _post_required_with_escaped_characters_request_body( + self: api_client.Api, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + """ + :param skip_deserialization: If true then api_response.response will be set but + api_response.body and api_response.headers will not be deserialized into schema + class instances + """ + used_path = path.value + + _headers = HTTPHeaderDict() + # TODO add cookie handling + + if body is unset: + raise exceptions.ApiValueError( + 'The required body parameter has an invalid value of: unset. Set a valid value instead') + _fields = None + _body = None + serialized_data = request_body_body.serialize(body, content_type) + _headers.add('Content-Type', content_type) + if 'fields' in serialized_data: + _fields = serialized_data['fields'] + elif 'body' in serialized_data: + _body = serialized_data['body'] + response = self.api_client.call_api( + resource_path=used_path, + method='post'.upper(), + headers=_headers, + fields=_fields, + body=_body, + stream=stream, + timeout=timeout, + ) + + if skip_deserialization: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + else: + response_for_status = _status_code_to_response.get(str(response.status)) + if response_for_status: + api_response = response_for_status.deserialize(response, self.api_client.configuration) + else: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + + if not 200 <= response.status <= 299: + raise exceptions.ApiException(api_response=api_response) + + return api_response + + +class PostRequiredWithEscapedCharactersRequestBody(BaseApi): + # this class is used by api classes that refer to endpoints with operationId fn names + + def post_required_with_escaped_characters_request_body( + self: BaseApi, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_required_with_escaped_characters_request_body( + body=body, + content_type=content_type, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + +class ApiForpost(BaseApi): + # this class is used by api classes that refer to endpoints by path and http method names + + def post( + self: BaseApi, + body: typing.Union[SchemaForRequestBodyApplicationJson], + content_type: str = 'application/json', + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_required_with_escaped_characters_request_body( + body=body, + content_type=content_type, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/__init__.py new file mode 100644 index 00000000000..1439a56296e --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/__init__.py @@ -0,0 +1,7 @@ +# do not import all endpoints into this module because that uses a lot of memory and stack frames +# if you need the ability to import all endpoints from this module, import them with +# from unit_test_api.paths.response_body_post_oneof_with_required_response_body_for_content_types import Api + +from unit_test_api.paths import PathValues + +path = PathValues.RESPONSE_BODY_POST_ONEOF_WITH_REQUIRED_RESPONSE_BODY_FOR_CONTENT_TYPES \ No newline at end of file diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/post.py new file mode 100644 index 00000000000..c160e6b2473 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_oneof_with_required_response_body_for_content_types/post.py @@ -0,0 +1,189 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +from dataclasses import dataclass +import re # noqa: F401 +import sys # noqa: F401 +import typing +import urllib3 +import functools # noqa: F401 +from urllib3._collections import HTTPHeaderDict + +from unit_test_api import api_client, exceptions +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + +from unit_test_api.model.oneof_with_required import OneofWithRequired + +from . import path + +SchemaFor200ResponseBodyApplicationJson = OneofWithRequired + + +@dataclass +class ApiResponseFor200(api_client.ApiResponse): + response: urllib3.HTTPResponse + body: typing.Union[ + SchemaFor200ResponseBodyApplicationJson, + ] + headers: Unset = unset + + +_response_for_200 = api_client.OpenApiResponse( + response_cls=ApiResponseFor200, + content={ + 'application/json': api_client.MediaType( + schema=SchemaFor200ResponseBodyApplicationJson), + }, +) +_status_code_to_response = { + '200': _response_for_200, +} +_all_accept_content_types = ( + 'application/json', +) + + +class BaseApi(api_client.Api): + + def _post_oneof_with_required_response_body_for_content_types( + self: api_client.Api, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + """ + :param skip_deserialization: If true then api_response.response will be set but + api_response.body and api_response.headers will not be deserialized into schema + class instances + """ + used_path = path.value + + _headers = HTTPHeaderDict() + # TODO add cookie handling + if accept_content_types: + for accept_content_type in accept_content_types: + _headers.add('Accept', accept_content_type) + + response = self.api_client.call_api( + resource_path=used_path, + method='post'.upper(), + headers=_headers, + stream=stream, + timeout=timeout, + ) + + if skip_deserialization: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + else: + response_for_status = _status_code_to_response.get(str(response.status)) + if response_for_status: + api_response = response_for_status.deserialize(response, self.api_client.configuration) + else: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + + if not 200 <= response.status <= 299: + raise exceptions.ApiException(api_response=api_response) + + return api_response + + +class PostOneofWithRequiredResponseBodyForContentTypes(BaseApi): + # this class is used by api classes that refer to endpoints with operationId fn names + + def post_oneof_with_required_response_body_for_content_types( + self: BaseApi, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_oneof_with_required_response_body_for_content_types( + accept_content_types=accept_content_types, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + +class ApiForpost(BaseApi): + # this class is used by api classes that refer to endpoints by path and http method names + + def post( + self: BaseApi, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_oneof_with_required_response_body_for_content_types( + accept_content_types=accept_content_types, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/__init__.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/__init__.py new file mode 100644 index 00000000000..b9fb929544f --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/__init__.py @@ -0,0 +1,7 @@ +# do not import all endpoints into this module because that uses a lot of memory and stack frames +# if you need the ability to import all endpoints from this module, import them with +# from unit_test_api.paths.response_body_post_required_with_escaped_characters_response_body_for_content_types import Api + +from unit_test_api.paths import PathValues + +path = PathValues.RESPONSE_BODY_POST_REQUIRED_WITH_ESCAPED_CHARACTERS_RESPONSE_BODY_FOR_CONTENT_TYPES \ No newline at end of file diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/post.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/post.py new file mode 100644 index 00000000000..7f3c87f7534 --- /dev/null +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/paths/response_body_post_required_with_escaped_characters_response_body_for_content_types/post.py @@ -0,0 +1,212 @@ +# coding: utf-8 + +""" + + + Generated by: https://openapi-generator.tech +""" + +from dataclasses import dataclass +import re # noqa: F401 +import sys # noqa: F401 +import typing +import urllib3 +import functools # noqa: F401 +from urllib3._collections import HTTPHeaderDict + +from unit_test_api import api_client, exceptions +import decimal # noqa: F401 +from datetime import date, datetime # noqa: F401 +from frozendict import frozendict # noqa: F401 + +from unit_test_api.schemas import ( # noqa: F401 + AnyTypeSchema, + ComposedSchema, + DictSchema, + ListSchema, + StrSchema, + IntSchema, + Int32Schema, + Int64Schema, + Float32Schema, + Float64Schema, + NumberSchema, + UUIDSchema, + DateSchema, + DateTimeSchema, + DecimalSchema, + BoolSchema, + BinarySchema, + NoneSchema, + none_type, + Configuration, + Unset, + unset, + ComposedBase, + ListBase, + DictBase, + NoneBase, + StrBase, + IntBase, + Int32Base, + Int64Base, + Float32Base, + Float64Base, + NumberBase, + UUIDBase, + DateBase, + DateTimeBase, + BoolBase, + BinaryBase, + Schema, + NoneClass, + BoolClass, + _SchemaValidator, + _SchemaTypeChecker, + _SchemaEnumMaker +) + +from . import path + + + +class SchemaFor200ResponseBodyApplicationJson( + AnyTypeSchema +): + _required_property_names = { + "foo\"bar", + "foo\nbar", + "foo\fbar", + "foo\tbar", + "foo\rbar", + "foo\\bar", + } + + def __new__( + cls, + *args: typing.Union[dict, frozendict, str, date, datetime, int, float, decimal.Decimal, None, list, tuple, bytes], + _configuration: typing.Optional[Configuration] = None, + **kwargs: typing.Type[Schema], + ) -> 'SchemaFor200ResponseBodyApplicationJson': + return super().__new__( + cls, + *args, + _configuration=_configuration, + **kwargs, + ) + + +@dataclass +class ApiResponseFor200(api_client.ApiResponse): + response: urllib3.HTTPResponse + body: typing.Union[ + SchemaFor200ResponseBodyApplicationJson, + ] + headers: Unset = unset + + +_response_for_200 = api_client.OpenApiResponse( + response_cls=ApiResponseFor200, + content={ + 'application/json': api_client.MediaType( + schema=SchemaFor200ResponseBodyApplicationJson), + }, +) +_status_code_to_response = { + '200': _response_for_200, +} +_all_accept_content_types = ( + 'application/json', +) + + +class BaseApi(api_client.Api): + + def _post_required_with_escaped_characters_response_body_for_content_types( + self: api_client.Api, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + """ + :param skip_deserialization: If true then api_response.response will be set but + api_response.body and api_response.headers will not be deserialized into schema + class instances + """ + used_path = path.value + + _headers = HTTPHeaderDict() + # TODO add cookie handling + if accept_content_types: + for accept_content_type in accept_content_types: + _headers.add('Accept', accept_content_type) + + response = self.api_client.call_api( + resource_path=used_path, + method='post'.upper(), + headers=_headers, + stream=stream, + timeout=timeout, + ) + + if skip_deserialization: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + else: + response_for_status = _status_code_to_response.get(str(response.status)) + if response_for_status: + api_response = response_for_status.deserialize(response, self.api_client.configuration) + else: + api_response = api_client.ApiResponseWithoutDeserialization(response=response) + + if not 200 <= response.status <= 299: + raise exceptions.ApiException(api_response=api_response) + + return api_response + + +class PostRequiredWithEscapedCharactersResponseBodyForContentTypes(BaseApi): + # this class is used by api classes that refer to endpoints with operationId fn names + + def post_required_with_escaped_characters_response_body_for_content_types( + self: BaseApi, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_required_with_escaped_characters_response_body_for_content_types( + accept_content_types=accept_content_types, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + +class ApiForpost(BaseApi): + # this class is used by api classes that refer to endpoints by path and http method names + + def post( + self: BaseApi, + accept_content_types: typing.Tuple[str] = _all_accept_content_types, + stream: bool = False, + timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None, + skip_deserialization: bool = False, + ) -> typing.Union[ + ApiResponseFor200, + api_client.ApiResponseWithoutDeserialization + ]: + return self._post_required_with_escaped_characters_response_body_for_content_types( + accept_content_types=accept_content_types, + stream=stream, + timeout=timeout, + skip_deserialization=skip_deserialization + ) + + diff --git a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/schemas.py b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/schemas.py index 5bcef725e3c..ea23eb54fef 100644 --- a/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/schemas.py +++ b/samples/openapi3/client/3_0_3_unit_test/python-experimental/unit_test_api/schemas.py @@ -1068,7 +1068,7 @@ class DictBase(Discriminable): """ path_to_schemas = {} for property_name, value in arg.items(): - if property_name in cls._required_property_names or property_name in cls._property_names: + if property_name in cls._property_names: schema = getattr(cls, property_name) elif cls._additional_properties: schema = cls._additional_properties diff --git a/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/FakeApi.md b/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/FakeApi.md index 918dd2360a8..e79f69d9f9d 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/FakeApi.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/FakeApi.md @@ -1005,15 +1005,15 @@ skip_deserialization | bool | default is False | when True, headers and body wil #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**number** | **int, float** | None | +**pattern_without_delimiter** | **str** | None | +**byte** | **str** | None | +**double** | **int, float** | None | **integer** | **int** | None | [optional] **int32** | **int** | None | [optional] **int64** | **int** | None | [optional] -**number** | **int, float** | None | **float** | **int, float** | None | [optional] -**double** | **int, float** | None | **string** | **str** | None | [optional] -**pattern_without_delimiter** | **str** | None | -**byte** | **str** | None | **binary** | **file_type** | None | [optional] **date** | **date** | None | [optional] **dateTime** | **datetime** | None | [optional] if omitted the server will use the default value of 2010-02-01T10:20:10.11111+01:00 @@ -3040,8 +3040,8 @@ skip_deserialization | bool | default is False | when True, headers and body wil #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**additionalMetadata** | **str** | Additional data to pass to server | [optional] **file** | **file_type** | file to upload | +**additionalMetadata** | **str** | Additional data to pass to server | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] ### Return Types, Responses diff --git a/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/PetApi.md b/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/PetApi.md index 2415cec7c04..d4820de6abf 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/PetApi.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/apis/tags/PetApi.md @@ -1193,8 +1193,8 @@ skip_deserialization | bool | default is False | when True, headers and body wil #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**additionalMetadata** | **str** | Additional data to pass to server | [optional] **requiredFile** | **file_type** | file to upload | +**additionalMetadata** | **str** | Additional data to pass to server | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] ### path_params diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/Category.md b/samples/openapi3/client/petstore/python-experimental/docs/models/Category.md index d5d2346f80c..609dc7536a2 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/Category.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/Category.md @@ -3,8 +3,8 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **int** | | [optional] **name** | **str** | | if omitted the server will use the default value of "default-name" +**id** | **int** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/EnumTest.md b/samples/openapi3/client/petstore/python-experimental/docs/models/EnumTest.md index f2786c4d0a4..b6e4302edfc 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/EnumTest.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/EnumTest.md @@ -3,8 +3,8 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**enum_string** | **str** | | [optional] **enum_string_required** | **str** | | +**enum_string** | **str** | | [optional] **enum_integer** | **int** | | [optional] **enum_number** | **int, float** | | [optional] **stringEnum** | [**StringEnum**](StringEnum.md) | | [optional] diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/FormatTest.md b/samples/openapi3/client/petstore/python-experimental/docs/models/FormatTest.md index 603652cf7ac..5b9e7ad4ce1 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/FormatTest.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/FormatTest.md @@ -3,24 +3,24 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**date** | **date** | | +**number** | **int, float** | | +**password** | **str** | | +**byte** | **str** | | **integer** | **int** | | [optional] **int32** | **int** | | [optional] **int32withValidations** | **int** | | [optional] **int64** | **int** | | [optional] -**number** | **int, float** | | **float** | **int, float** | this is a reserved python keyword | [optional] **float32** | **int, float** | | [optional] **double** | **int, float** | | [optional] **float64** | **int, float** | | [optional] **arrayWithUniqueItems** | **[int, float]** | | [optional] **string** | **str** | | [optional] -**byte** | **str** | | **binary** | **file_type** | | [optional] -**date** | **date** | | **dateTime** | **datetime** | | [optional] **uuid** | **str** | | [optional] **uuidNoExample** | **str** | | [optional] -**password** | **str** | | **pattern_with_digits** | **str** | A string that is a 10 digit number. Can have leading zeros. | [optional] **pattern_with_digits_and_delimiter** | **str** | A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01. | [optional] **noneProp** | **none_type** | | [optional] diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/ObjectWithDifficultlyNamedProps.md b/samples/openapi3/client/petstore/python-experimental/docs/models/ObjectWithDifficultlyNamedProps.md index 2a0370851a7..9382861b9ec 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/ObjectWithDifficultlyNamedProps.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/ObjectWithDifficultlyNamedProps.md @@ -5,8 +5,8 @@ model with properties that have invalid names for python #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**$special[property.name]** | **int** | | [optional] **123-list** | **str** | | +**$special[property.name]** | **int** | | [optional] **123Number** | **int** | | [optional] [readonly] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/Pet.md b/samples/openapi3/client/petstore/python-experimental/docs/models/Pet.md index be055f2bf3f..5449d61dc21 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/Pet.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/Pet.md @@ -5,10 +5,10 @@ Pet object that needs to be added to the store #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**photoUrls** | **[str]** | | +**name** | **str** | | **id** | **int** | | [optional] **category** | [**Category**](Category.md) | | [optional] -**name** | **str** | | -**photoUrls** | **[str]** | | **tags** | **[Tag]** | | [optional] **status** | **str** | pet status in the store | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/Whale.md b/samples/openapi3/client/petstore/python-experimental/docs/models/Whale.md index 7c4339383f6..2bdabf23ae8 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/Whale.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/Whale.md @@ -3,9 +3,9 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**className** | **str** | | **hasBaleen** | **bool** | | [optional] **hasTeeth** | **bool** | | [optional] -**className** | **str** | | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) diff --git a/samples/openapi3/client/petstore/python-experimental/docs/models/Zebra.md b/samples/openapi3/client/petstore/python-experimental/docs/models/Zebra.md index 6c4a40b2c0d..49d9f67926f 100644 --- a/samples/openapi3/client/petstore/python-experimental/docs/models/Zebra.md +++ b/samples/openapi3/client/petstore/python-experimental/docs/models/Zebra.md @@ -3,8 +3,8 @@ #### Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**type** | **str** | | [optional] **className** | **str** | | +**type** | **str** | | [optional] **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional] [[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md) diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/animal.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/animal.py index 8081aca81d7..a217e8dd00b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/animal.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/animal.py @@ -76,9 +76,9 @@ class Animal( Do not edit the class manually. """ - _required_property_names = set(( - 'className', - )) + _required_property_names = { + "className", + } className = StrSchema color = StrSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple.py index f0ca74fc195..2adc8424cf1 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple.py @@ -79,9 +79,9 @@ class Apple( Do not edit the class manually. """ - _required_property_names = set(( - 'cultivar', - )) + _required_property_names = { + "cultivar", + } class cultivar( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple_req.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple_req.py index bb6ec8503fb..a0e8fc08228 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple_req.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/apple_req.py @@ -76,9 +76,9 @@ class AppleReq( Do not edit the class manually. """ - _required_property_names = set(( - 'cultivar', - )) + _required_property_names = { + "cultivar", + } cultivar = StrSchema mealy = BoolSchema _additional_properties = None diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana.py index 2dd4fbc2d12..c5161b5ff0a 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana.py @@ -76,9 +76,9 @@ class Banana( Do not edit the class manually. """ - _required_property_names = set(( - 'lengthCm', - )) + _required_property_names = { + "lengthCm", + } lengthCm = NumberSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana_req.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana_req.py index b77c7566e73..802bc131716 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana_req.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/banana_req.py @@ -76,9 +76,9 @@ class BananaReq( Do not edit the class manually. """ - _required_property_names = set(( - 'lengthCm', - )) + _required_property_names = { + "lengthCm", + } lengthCm = NumberSchema sweet = BoolSchema _additional_properties = None diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/basque_pig.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/basque_pig.py index 16d29d3a097..2ea340b0d62 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/basque_pig.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/basque_pig.py @@ -76,9 +76,9 @@ class BasquePig( Do not edit the class manually. """ - _required_property_names = set(( - 'className', - )) + _required_property_names = { + "className", + } class className( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/category.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/category.py index ef727200727..43fc31b9963 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/category.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/category.py @@ -76,9 +76,9 @@ class Category( Do not edit the class manually. """ - _required_property_names = set(( - 'name', - )) + _required_property_names = { + "name", + } id = Int64Schema name = StrSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/danish_pig.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/danish_pig.py index 34efcb87c22..bc5ffc28d53 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/danish_pig.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/danish_pig.py @@ -76,9 +76,9 @@ class DanishPig( Do not edit the class manually. """ - _required_property_names = set(( - 'className', - )) + _required_property_names = { + "className", + } class className( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/enum_test.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/enum_test.py index 319b0282de4..bd2dfb95b93 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/enum_test.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/enum_test.py @@ -76,9 +76,9 @@ class EnumTest( Do not edit the class manually. """ - _required_property_names = set(( - 'enum_string_required', - )) + _required_property_names = { + "enum_string_required", + } class enum_string( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/format_test.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/format_test.py index 28fb00bce84..e8e97880008 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/format_test.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/format_test.py @@ -76,12 +76,12 @@ class FormatTest( Do not edit the class manually. """ - _required_property_names = set(( - 'number', - 'byte', - 'date', - 'password', - )) + _required_property_names = { + "date", + "number", + "password", + "byte", + } class integer( @@ -210,10 +210,10 @@ class FormatTest( def __new__( cls, *args: typing.Union[dict, frozendict, ], - number: number, - byte: byte, date: date, + number: number, password: password, + byte: byte, integer: typing.Union[integer, Unset] = unset, int32: typing.Union[int32, Unset] = unset, int32withValidations: typing.Union[int32withValidations, Unset] = unset, @@ -236,10 +236,10 @@ class FormatTest( return super().__new__( cls, *args, - number=number, - byte=byte, date=date, + number=number, password=password, + byte=byte, integer=integer, int32=int32, int32withValidations=int32withValidations, diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/grandparent_animal.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/grandparent_animal.py index 7b6a7464095..cf3394375a2 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/grandparent_animal.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/grandparent_animal.py @@ -76,9 +76,9 @@ class GrandparentAnimal( Do not edit the class manually. """ - _required_property_names = set(( - 'pet_type', - )) + _required_property_names = { + "pet_type", + } pet_type = StrSchema @classmethod diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/money.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/money.py index fc48f495a69..2a01c981b5f 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/money.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/money.py @@ -76,10 +76,10 @@ class Money( Do not edit the class manually. """ - _required_property_names = set(( - 'amount', - 'currency', - )) + _required_property_names = { + "amount", + "currency", + } amount = DecimalSchema @classmethod diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/name.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/name.py index f70569b177d..7a0de5a3cb6 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/name.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/name.py @@ -78,9 +78,9 @@ class Name( Model for testing model name same as property name """ - _required_property_names = set(( - 'name', - )) + _required_property_names = { + "name", + } name = Int32Schema snake_case = Int32Schema _property = StrSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/no_additional_properties.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/no_additional_properties.py index a54984228a0..fc1acc5a062 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/no_additional_properties.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/no_additional_properties.py @@ -76,9 +76,9 @@ class NoAdditionalProperties( Do not edit the class manually. """ - _required_property_names = set(( - 'id', - )) + _required_property_names = { + "id", + } id = Int64Schema petId = Int64Schema _additional_properties = None diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_difficultly_named_props.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_difficultly_named_props.py index f4e66878f9e..9a3dd40e835 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_difficultly_named_props.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/object_with_difficultly_named_props.py @@ -78,9 +78,9 @@ class ObjectWithDifficultlyNamedProps( model with properties that have invalid names for python """ - _required_property_names = set(( - '123-list', - )) + _required_property_names = { + "123-list", + } special_property_name = Int64Schema locals()["$special[property.name]"] = special_property_name del locals()['special_property_name'] diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pet.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pet.py index 6b1cd00870b..c81afee4f72 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pet.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/pet.py @@ -78,10 +78,10 @@ class Pet( Pet object that needs to be added to the store """ - _required_property_names = set(( - 'name', - 'photoUrls', - )) + _required_property_names = { + "photoUrls", + "name", + } id = Int64Schema @classmethod @@ -137,8 +137,8 @@ class Pet( def __new__( cls, *args: typing.Union[dict, frozendict, ], - name: name, photoUrls: photoUrls, + name: name, id: typing.Union[id, Unset] = unset, category: typing.Union['Category', Unset] = unset, tags: typing.Union[tags, Unset] = unset, @@ -149,8 +149,8 @@ class Pet( return super().__new__( cls, *args, - name=name, photoUrls=photoUrls, + name=name, id=id, category=category, tags=tags, diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral_interface.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral_interface.py index bd28482b08c..ed64e8ca026 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral_interface.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/quadrilateral_interface.py @@ -76,10 +76,10 @@ class QuadrilateralInterface( Do not edit the class manually. """ - _required_property_names = set(( - 'shapeType', - 'quadrilateralType', - )) + _required_property_names = { + "shapeType", + "quadrilateralType", + } class shapeType( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle_interface.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle_interface.py index 07fae72e4ef..d7be2c2b55b 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle_interface.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/triangle_interface.py @@ -76,10 +76,10 @@ class TriangleInterface( Do not edit the class manually. """ - _required_property_names = set(( - 'shapeType', - 'triangleType', - )) + _required_property_names = { + "shapeType", + "triangleType", + } class shapeType( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/whale.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/whale.py index 4bcb2f0e3b6..2f0798f0a09 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/whale.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/whale.py @@ -76,9 +76,9 @@ class Whale( Do not edit the class manually. """ - _required_property_names = set(( - 'className', - )) + _required_property_names = { + "className", + } hasBaleen = BoolSchema hasTeeth = BoolSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/zebra.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/zebra.py index 51220d56536..9a179381ac9 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/model/zebra.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/model/zebra.py @@ -76,9 +76,9 @@ class Zebra( Do not edit the class manually. """ - _required_property_names = set(( - 'className', - )) + _required_property_names = { + "className", + } class type( diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_1/post.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_1/post.py index e481be98655..fb9922425e0 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_1/post.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_1/post.py @@ -74,12 +74,12 @@ from . import path class SchemaForRequestBodyApplicationXWwwFormUrlencoded( DictSchema ): - _required_property_names = set(( - 'number', - 'double', - 'pattern_without_delimiter', - 'byte', - )) + _required_property_names = { + "number", + "pattern_without_delimiter", + "byte", + "double", + } class integer( @@ -178,9 +178,9 @@ class SchemaForRequestBodyApplicationXWwwFormUrlencoded( cls, *args: typing.Union[dict, frozendict, ], number: number, - double: double, pattern_without_delimiter: pattern_without_delimiter, byte: byte, + double: double, integer: typing.Union[integer, Unset] = unset, int32: typing.Union[int32, Unset] = unset, int64: typing.Union[int64, Unset] = unset, @@ -197,9 +197,9 @@ class SchemaForRequestBodyApplicationXWwwFormUrlencoded( cls, *args, number=number, - double=double, pattern_without_delimiter=pattern_without_delimiter, byte=byte, + double=double, integer=integer, int32=int32, int64=int64, diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_json_form_data/get.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_json_form_data/get.py index 623e1b5f8f9..929801a1881 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_json_form_data/get.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_json_form_data/get.py @@ -74,10 +74,10 @@ from . import path class SchemaForRequestBodyApplicationXWwwFormUrlencoded( DictSchema ): - _required_property_names = set(( - 'param', - 'param2', - )) + _required_property_names = { + "param", + "param2", + } param = StrSchema param2 = StrSchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_pet_id_upload_image_with_required_file/post.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_pet_id_upload_image_with_required_file/post.py index 31398dfc915..e2de1c3f69c 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_pet_id_upload_image_with_required_file/post.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_pet_id_upload_image_with_required_file/post.py @@ -102,9 +102,9 @@ request_path_pet_id = api_client.PathParameter( class SchemaForRequestBodyMultipartFormData( DictSchema ): - _required_property_names = set(( - 'requiredFile', - )) + _required_property_names = { + "requiredFile", + } additionalMetadata = StrSchema requiredFile = BinarySchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_upload_file/post.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_upload_file/post.py index b0a0c7e59b7..1fd71b845fb 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_upload_file/post.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/paths/fake_upload_file/post.py @@ -76,9 +76,9 @@ from . import path class SchemaForRequestBodyMultipartFormData( DictSchema ): - _required_property_names = set(( - 'file', - )) + _required_property_names = { + "file", + } additionalMetadata = StrSchema file = BinarySchema diff --git a/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py b/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py index 236dc390c67..c9915c8474f 100644 --- a/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py +++ b/samples/openapi3/client/petstore/python-experimental/petstore_api/schemas.py @@ -1068,7 +1068,7 @@ class DictBase(Discriminable): """ path_to_schemas = {} for property_name, value in arg.items(): - if property_name in cls._required_property_names or property_name in cls._property_names: + if property_name in cls._property_names: schema = getattr(cls, property_name) elif cls._additional_properties: schema = cls._additional_properties diff --git a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_configuration.py b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_configuration.py index c85acab7dd0..d0d1e9348f2 100644 --- a/samples/openapi3/client/petstore/python-experimental/tests_manual/test_configuration.py +++ b/samples/openapi3/client/petstore/python-experimental/tests_manual/test_configuration.py @@ -48,7 +48,7 @@ class ConfigurationTests(unittest.TestCase): 'User-Agent': 'OpenAPI-Generator/1.0.0/python' }), fields=None, - body=b'{"name":"pet","photoUrls":[]}', + body=b'{"photoUrls":[],"name":"pet"}', stream=False, timeout=None, ) 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 324b70df06e..0216276e546 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 @@ -539,10 +539,10 @@ public interface PathHandlerInterface { *

Response headers: [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, isShort=true, isLong=false, isUnboundedInteger=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, isInnerEnum=false, isAnyType=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, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token 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 token 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, isShort=true, isLong=false, isUnboundedInteger=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, isInnerEnum=false, isAnyType=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, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token 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 token 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, isShort=false, isLong=false, isUnboundedInteger=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, isInnerEnum=false, isAnyType=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, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}]

+}', 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, isShort=false, isLong=false, isUnboundedInteger=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, isInnerEnum=false, isAnyType=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, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null}]

* *

Produces: [{mediaType=application/xml}, {mediaType=application/json}]

*

Returns: {@link String}