forked from loafle/openapi-generator-original
Add support for multiple inheritance (#1664)
* add all parent names * clean up supportsInheritance * fix npe * fix allVars, fix test cases * add more tests, remove comments * update docker m2 cache dir, add more tests, fix mandatory * update samples * regenerate js spec files * add logic to detect self reference * add isSelfReference flag to codegen property * add ruby tests for cat model * remove debugging info * fix JS allvars not have x-js-doctype * update samples * update js samples
This commit is contained in:
parent
587bd56655
commit
8c599ebf12
@ -171,6 +171,8 @@ public interface CodegenConfig {
|
|||||||
|
|
||||||
void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map<String, List<CodegenOperation>> operations);
|
void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map<String, List<CodegenOperation>> operations);
|
||||||
|
|
||||||
|
Map<String, Object> updateAllModels(Map<String, Object> objs);
|
||||||
|
|
||||||
Map<String, Object> postProcessAllModels(Map<String, Object> objs);
|
Map<String, Object> postProcessAllModels(Map<String, Object> objs);
|
||||||
|
|
||||||
Map<String, Object> postProcessModels(Map<String, Object> objs);
|
Map<String, Object> postProcessModels(Map<String, Object> objs);
|
||||||
|
@ -22,11 +22,13 @@ import io.swagger.v3.oas.models.ExternalDocumentation;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
|
||||||
@JsonIgnoreProperties({"parentModel", "interfaceModels"})
|
@JsonIgnoreProperties({"parentModel", "interfaceModels"})
|
||||||
public class CodegenModel {
|
public class CodegenModel {
|
||||||
public String parent, parentSchema;
|
public String parent, parentSchema;
|
||||||
public List<String> interfaces;
|
public List<String> interfaces;
|
||||||
|
public List<String> allParents;
|
||||||
|
|
||||||
// References to parent and interface CodegenModels. Only set when code generator supports inheritance.
|
// References to parent and interface CodegenModels. Only set when code generator supports inheritance.
|
||||||
public CodegenModel parentModel;
|
public CodegenModel parentModel;
|
||||||
@ -46,18 +48,18 @@ public class CodegenModel {
|
|||||||
public String arrayModelType;
|
public String arrayModelType;
|
||||||
public boolean isAlias; // Is this effectively an alias of another simple type
|
public boolean isAlias; // Is this effectively an alias of another simple type
|
||||||
public boolean isString, isInteger;
|
public boolean isString, isInteger;
|
||||||
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>();
|
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>(); // all properties (without parent's properties)
|
||||||
|
public List<CodegenProperty> allVars = new ArrayList<CodegenProperty>(); // all properties (with parent's properties)
|
||||||
public List<CodegenProperty> requiredVars = new ArrayList<CodegenProperty>(); // a list of required properties
|
public List<CodegenProperty> requiredVars = new ArrayList<CodegenProperty>(); // a list of required properties
|
||||||
public List<CodegenProperty> optionalVars = new ArrayList<CodegenProperty>(); // a list of optional properties
|
public List<CodegenProperty> optionalVars = new ArrayList<CodegenProperty>(); // a list of optional properties
|
||||||
public List<CodegenProperty> readOnlyVars = new ArrayList<CodegenProperty>(); // a list of read-only properties
|
public List<CodegenProperty> readOnlyVars = new ArrayList<CodegenProperty>(); // a list of read-only properties
|
||||||
public List<CodegenProperty> readWriteVars = new ArrayList<CodegenProperty>(); // a list of properties for read, write
|
public List<CodegenProperty> readWriteVars = new ArrayList<CodegenProperty>(); // a list of properties for read, write
|
||||||
public List<CodegenProperty> allVars = new ArrayList<CodegenProperty>();
|
|
||||||
public List<CodegenProperty> parentVars = new ArrayList<CodegenProperty>();
|
public List<CodegenProperty> parentVars = new ArrayList<CodegenProperty>();
|
||||||
public Map<String, Object> allowableValues;
|
public Map<String, Object> allowableValues;
|
||||||
|
|
||||||
// Sorted sets of required parameters.
|
// Sorted sets of required parameters.
|
||||||
public Set<String> mandatory = new TreeSet<String>();
|
public Set<String> mandatory = new TreeSet<String>(); // without parent's required properties
|
||||||
public Set<String> allMandatory;
|
public Set<String> allMandatory = new TreeSet<String>(); // with parent's required properties
|
||||||
|
|
||||||
public Set<String> imports = new TreeSet<String>();
|
public Set<String> imports = new TreeSet<String>();
|
||||||
public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, hasRequired, hasOptional, isArrayModel, hasChildren, isMapModel;
|
public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, hasRequired, hasOptional, isArrayModel, hasChildren, isMapModel;
|
||||||
@ -69,16 +71,59 @@ public class CodegenModel {
|
|||||||
//The type of the value from additional properties. Used in map like objects.
|
//The type of the value from additional properties. Used in map like objects.
|
||||||
public String additionalPropertiesType;
|
public String additionalPropertiesType;
|
||||||
|
|
||||||
{
|
|
||||||
// By default these are the same collections. Where the code generator supports inheritance, composed models
|
|
||||||
// store the complete closure of owned and inherited properties in allVars and allMandatory.
|
|
||||||
allVars = vars;
|
|
||||||
allMandatory = mandatory;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(Locale.ROOT, "%s(%s)", name, classname);
|
return new ToStringBuilder(this)
|
||||||
|
.append("parent", parent)
|
||||||
|
.append("parentSchema", parentSchema)
|
||||||
|
.append("interfaces", interfaces)
|
||||||
|
.append("parentModel", parentModel)
|
||||||
|
.append("interfaceModels", interfaceModels)
|
||||||
|
.append("children", children)
|
||||||
|
.append("name", name)
|
||||||
|
.append("classname", classname)
|
||||||
|
.append("title", title)
|
||||||
|
.append("description", description)
|
||||||
|
.append("classVarName", classVarName)
|
||||||
|
.append("modelJson", modelJson)
|
||||||
|
.append("dataType", dataType)
|
||||||
|
.append("xmlPrefix", xmlPrefix)
|
||||||
|
.append("xmlNamespace", xmlNamespace)
|
||||||
|
.append("xmlName", xmlName)
|
||||||
|
.append("classFilename", classFilename)
|
||||||
|
.append("unescapedDescription", unescapedDescription)
|
||||||
|
.append("discriminator", discriminator)
|
||||||
|
.append("defaultValue", defaultValue)
|
||||||
|
.append("arrayModelType", arrayModelType)
|
||||||
|
.append("isAlias", isAlias)
|
||||||
|
.append("isString", isString)
|
||||||
|
.append("isInteger", isInteger)
|
||||||
|
.append("vars", vars)
|
||||||
|
.append("requiredVars", requiredVars)
|
||||||
|
.append("optionalVars", optionalVars)
|
||||||
|
.append("readOnlyVars", readOnlyVars)
|
||||||
|
.append("readWriteVars", readWriteVars)
|
||||||
|
.append("allVars", allVars)
|
||||||
|
.append("parentVars", parentVars)
|
||||||
|
.append("allowableValues", allowableValues)
|
||||||
|
.append("mandatory", mandatory)
|
||||||
|
.append("allMandatory", allMandatory)
|
||||||
|
.append("imports", imports)
|
||||||
|
.append("hasVars", hasVars)
|
||||||
|
.append("emptyVars", emptyVars)
|
||||||
|
.append("hasMoreModels", hasMoreModels)
|
||||||
|
.append("hasEnums", hasEnums)
|
||||||
|
.append("isEnum", isEnum)
|
||||||
|
.append("hasRequired", hasRequired)
|
||||||
|
.append("hasOptional", hasOptional)
|
||||||
|
.append("isArrayModel", isArrayModel)
|
||||||
|
.append("hasChildren", hasChildren)
|
||||||
|
.append("isMapModel", isMapModel)
|
||||||
|
.append("hasOnlyReadOnly", hasOnlyReadOnly)
|
||||||
|
.append("externalDocumentation", externalDocumentation)
|
||||||
|
.append("vendorExtensions", vendorExtensions)
|
||||||
|
.append("additionalPropertiesType", additionalPropertiesType)
|
||||||
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -94,6 +139,8 @@ public class CodegenModel {
|
|||||||
return false;
|
return false;
|
||||||
if (interfaces != null ? !interfaces.equals(that.interfaces) : that.interfaces != null)
|
if (interfaces != null ? !interfaces.equals(that.interfaces) : that.interfaces != null)
|
||||||
return false;
|
return false;
|
||||||
|
if (allParents != null ? !allParents.equals(that.allParents) : that.allParents != null)
|
||||||
|
return false;
|
||||||
if (parentModel != null ? !parentModel.equals(that.parentModel) : that.parentModel != null)
|
if (parentModel != null ? !parentModel.equals(that.parentModel) : that.parentModel != null)
|
||||||
return false;
|
return false;
|
||||||
if (interfaceModels != null ? !interfaceModels.equals(that.interfaceModels) : that.interfaceModels != null)
|
if (interfaceModels != null ? !interfaceModels.equals(that.interfaceModels) : that.interfaceModels != null)
|
||||||
@ -169,6 +216,7 @@ public class CodegenModel {
|
|||||||
int result = parent != null ? parent.hashCode() : 0;
|
int result = parent != null ? parent.hashCode() : 0;
|
||||||
result = 31 * result + (parentSchema != null ? parentSchema.hashCode() : 0);
|
result = 31 * result + (parentSchema != null ? parentSchema.hashCode() : 0);
|
||||||
result = 31 * result + (interfaces != null ? interfaces.hashCode() : 0);
|
result = 31 * result + (interfaces != null ? interfaces.hashCode() : 0);
|
||||||
|
result = 31 * result + (allParents != null ? allParents.hashCode() : 0);
|
||||||
result = 31 * result + (parentModel != null ? parentModel.hashCode() : 0);
|
result = 31 * result + (parentModel != null ? parentModel.hashCode() : 0);
|
||||||
result = 31 * result + (interfaceModels != null ? interfaceModels.hashCode() : 0);
|
result = 31 * result + (interfaceModels != null ? interfaceModels.hashCode() : 0);
|
||||||
result = 31 * result + (name != null ? name.hashCode() : 0);
|
result = 31 * result + (name != null ? name.hashCode() : 0);
|
||||||
@ -226,10 +274,18 @@ public class CodegenModel {
|
|||||||
return interfaces;
|
return interfaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getAllParents() {
|
||||||
|
return allParents;
|
||||||
|
}
|
||||||
|
|
||||||
public void setInterfaces(List<String> interfaces) {
|
public void setInterfaces(List<String> interfaces) {
|
||||||
this.interfaces = interfaces;
|
this.interfaces = interfaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setAllParents(List<String> allParents) {
|
||||||
|
this.allParents = allParents;
|
||||||
|
}
|
||||||
|
|
||||||
public CodegenModel getParentModel() {
|
public CodegenModel getParentModel() {
|
||||||
return parentModel;
|
return parentModel;
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ public class CodegenProperty implements Cloneable {
|
|||||||
public boolean isReadOnly;
|
public boolean isReadOnly;
|
||||||
public boolean isWriteOnly;
|
public boolean isWriteOnly;
|
||||||
public boolean isNullable;
|
public boolean isNullable;
|
||||||
|
public boolean isSelfReference;
|
||||||
public List<String> _enum;
|
public List<String> _enum;
|
||||||
public Map<String, Object> allowableValues;
|
public Map<String, Object> allowableValues;
|
||||||
public CodegenProperty items;
|
public CodegenProperty items;
|
||||||
@ -439,6 +440,7 @@ public class CodegenProperty implements Cloneable {
|
|||||||
result = prime * result + ((isReadOnly ? 13 : 31));
|
result = prime * result + ((isReadOnly ? 13 : 31));
|
||||||
result = prime * result + ((isWriteOnly ? 13 : 31));
|
result = prime * result + ((isWriteOnly ? 13 : 31));
|
||||||
result = prime * result + ((isNullable ? 13 : 31));
|
result = prime * result + ((isNullable ? 13 : 31));
|
||||||
|
result = prime * result + ((isSelfReference ? 13 : 31));
|
||||||
result = prime * result + ((items == null) ? 0 : items.hashCode());
|
result = prime * result + ((items == null) ? 0 : items.hashCode());
|
||||||
result = prime * result + ((mostInnerItems == null) ? 0 : mostInnerItems.hashCode());
|
result = prime * result + ((mostInnerItems == null) ? 0 : mostInnerItems.hashCode());
|
||||||
result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode());
|
result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode());
|
||||||
@ -597,6 +599,9 @@ public class CodegenProperty implements Cloneable {
|
|||||||
if (this.isNullable != other.isNullable) {
|
if (this.isNullable != other.isNullable) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (this.isSelfReference != other.isSelfReference ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (this._enum != other._enum && (this._enum == null || !this._enum.equals(other._enum))) {
|
if (this._enum != other._enum && (this._enum == null || !this._enum.equals(other._enum))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -790,6 +795,7 @@ public class CodegenProperty implements Cloneable {
|
|||||||
", isReadOnly=" + isReadOnly +
|
", isReadOnly=" + isReadOnly +
|
||||||
", isWriteOnly=" + isWriteOnly +
|
", isWriteOnly=" + isWriteOnly +
|
||||||
", isNullable=" + isNullable +
|
", isNullable=" + isNullable +
|
||||||
|
", isSelfReference=" + isSelfReference +
|
||||||
", _enum=" + _enum +
|
", _enum=" + _enum +
|
||||||
", allowableValues=" + allowableValues +
|
", allowableValues=" + allowableValues +
|
||||||
", items=" + items +
|
", items=" + items +
|
||||||
|
@ -115,6 +115,7 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
protected List<CliOption> cliOptions = new ArrayList<CliOption>();
|
protected List<CliOption> cliOptions = new ArrayList<CliOption>();
|
||||||
protected boolean skipOverwrite;
|
protected boolean skipOverwrite;
|
||||||
protected boolean removeOperationIdPrefix;
|
protected boolean removeOperationIdPrefix;
|
||||||
|
protected boolean supportsMultipleInheritance;
|
||||||
protected boolean supportsInheritance;
|
protected boolean supportsInheritance;
|
||||||
protected boolean supportsMixins;
|
protected boolean supportsMixins;
|
||||||
protected Map<String, String> supportedLibraries = new LinkedHashMap<String, String>();
|
protected Map<String, String> supportedLibraries = new LinkedHashMap<String, String>();
|
||||||
@ -212,53 +213,79 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
// override with any special post-processing for all models
|
// override with any special post-processing for all models
|
||||||
@SuppressWarnings({"static-method", "unchecked"})
|
@SuppressWarnings({"static-method", "unchecked"})
|
||||||
public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
|
public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
|
||||||
if (supportsInheritance) {
|
return objs;
|
||||||
// Index all CodegenModels by model name.
|
}
|
||||||
Map<String, CodegenModel> allModels = new HashMap<String, CodegenModel>();
|
|
||||||
for (Entry<String, Object> entry : objs.entrySet()) {
|
/**
|
||||||
String modelName = toModelName(entry.getKey());
|
* Loop through all models to update different flags (e.g. isSelfReference), children models, etc
|
||||||
Map<String, Object> inner = (Map<String, Object>) entry.getValue();
|
*
|
||||||
List<Map<String, Object>> models = (List<Map<String, Object>>) inner.get("models");
|
* @param objs Map of models
|
||||||
for (Map<String, Object> mo : models) {
|
* @return maps of models with various updates
|
||||||
CodegenModel cm = (CodegenModel) mo.get("model");
|
*/
|
||||||
allModels.put(modelName, cm);
|
public Map<String, Object> updateAllModels(Map<String, Object> objs) {
|
||||||
}
|
// Index all CodegenModels by model name.
|
||||||
|
Map<String, CodegenModel> allModels = new HashMap<String, CodegenModel>();
|
||||||
|
for (Entry<String, Object> entry : objs.entrySet()) {
|
||||||
|
String modelName = toModelName(entry.getKey());
|
||||||
|
Map<String, Object> inner = (Map<String, Object>) entry.getValue();
|
||||||
|
List<Map<String, Object>> models = (List<Map<String, Object>>) inner.get("models");
|
||||||
|
for (Map<String, Object> mo : models) {
|
||||||
|
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||||
|
allModels.put(modelName, cm);
|
||||||
}
|
}
|
||||||
// Fix up all parent and interface CodegenModel references.
|
}
|
||||||
for (CodegenModel cm : allModels.values()) {
|
// Fix up all parent and interface CodegenModel references.
|
||||||
if (cm.getParent() != null) {
|
for (CodegenModel cm : allModels.values()) {
|
||||||
cm.setParentModel(allModels.get(cm.getParent()));
|
if (cm.getParent() != null) {
|
||||||
}
|
cm.setParentModel(allModels.get(cm.getParent()));
|
||||||
if (cm.getInterfaces() != null && !cm.getInterfaces().isEmpty()) {
|
|
||||||
cm.setInterfaceModels(new ArrayList<CodegenModel>(cm.getInterfaces().size()));
|
|
||||||
for (String intf : cm.getInterfaces()) {
|
|
||||||
CodegenModel intfModel = allModels.get(intf);
|
|
||||||
if (intfModel != null) {
|
|
||||||
cm.getInterfaceModels().add(intfModel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Let parent know about all its children
|
if (cm.getInterfaces() != null && !cm.getInterfaces().isEmpty()) {
|
||||||
for (String name : allModels.keySet()) {
|
cm.setInterfaceModels(new ArrayList<CodegenModel>(cm.getInterfaces().size()));
|
||||||
CodegenModel cm = allModels.get(name);
|
for (String intf : cm.getInterfaces()) {
|
||||||
CodegenModel parent = allModels.get(cm.getParent());
|
CodegenModel intfModel = allModels.get(intf);
|
||||||
// if a discriminator exists on the parent, don't add this child to the inheritance hierarchy
|
if (intfModel != null) {
|
||||||
// TODO Determine what to do if the parent discriminator name == the grandparent discriminator name
|
cm.getInterfaceModels().add(intfModel);
|
||||||
while (parent != null) {
|
|
||||||
if (parent.getChildren() == null) {
|
|
||||||
parent.setChildren(new ArrayList<CodegenModel>());
|
|
||||||
}
|
|
||||||
parent.getChildren().add(cm);
|
|
||||||
parent.hasChildren = true;
|
|
||||||
if (parent.getDiscriminator() == null) {
|
|
||||||
parent = allModels.get(parent.getParent());
|
|
||||||
} else {
|
|
||||||
parent = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Let parent know about all its children
|
||||||
|
for (String name : allModels.keySet()) {
|
||||||
|
CodegenModel cm = allModels.get(name);
|
||||||
|
CodegenModel parent = allModels.get(cm.getParent());
|
||||||
|
// if a discriminator exists on the parent, don't add this child to the inheritance hierarchy
|
||||||
|
// TODO Determine what to do if the parent discriminator name == the grandparent discriminator name
|
||||||
|
while (parent != null) {
|
||||||
|
if (parent.getChildren() == null) {
|
||||||
|
parent.setChildren(new ArrayList<CodegenModel>());
|
||||||
|
}
|
||||||
|
parent.getChildren().add(cm);
|
||||||
|
parent.hasChildren = true;
|
||||||
|
if (parent.getDiscriminator() == null) {
|
||||||
|
parent = allModels.get(parent.getParent());
|
||||||
|
} else {
|
||||||
|
parent = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// loop through properties of each model to detect self-reference
|
||||||
|
for (Map.Entry<String, Object> entry : objs.entrySet()) {
|
||||||
|
Map<String, Object> inner = (Map<String, Object>) entry.getValue();
|
||||||
|
List<Map<String, Object>> models = (List<Map<String, Object>>) inner.get("models");
|
||||||
|
for (Map<String, Object> mo : models) {
|
||||||
|
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||||
|
for (CodegenProperty cp : cm.allVars) {
|
||||||
|
// detect self import
|
||||||
|
if (cp.dataType.equals(cm.classname) ||
|
||||||
|
(cp.isContainer && cp.items.dataType.equals(cm.classname))) {
|
||||||
|
cm.imports.remove(cm.classname); // remove self import
|
||||||
|
cp.isSelfReference = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return objs;
|
return objs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1618,6 +1645,7 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
|
|
||||||
// parent model
|
// parent model
|
||||||
final String parentName = ModelUtils.getParentName(composed, allDefinitions);
|
final String parentName = ModelUtils.getParentName(composed, allDefinitions);
|
||||||
|
final List<String> allParents = ModelUtils.getAllParentsName(composed, allDefinitions);
|
||||||
final Schema parent = StringUtils.isBlank(parentName) || allDefinitions == null ? null : allDefinitions.get(parentName);
|
final Schema parent = StringUtils.isBlank(parentName) || allDefinitions == null ? null : allDefinitions.get(parentName);
|
||||||
final boolean hasParent = StringUtils.isNotBlank(parentName);
|
final boolean hasParent = StringUtils.isNotBlank(parentName);
|
||||||
|
|
||||||
@ -1666,19 +1694,16 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
m.interfaces.add(modelName);
|
m.interfaces.add(modelName);
|
||||||
addImport(m, modelName);
|
addImport(m, modelName);
|
||||||
if (allDefinitions != null && refSchema != null) {
|
if (allDefinitions != null && refSchema != null) {
|
||||||
if (hasParent || supportsInheritance) {
|
if (allParents.contains(modelName) && supportsMultipleInheritance) {
|
||||||
if (supportsInheritance || parentName.equals(modelName)) {
|
// multiple inheritance
|
||||||
// inheritance
|
addProperties(allProperties, allRequired, refSchema, allDefinitions);
|
||||||
addProperties(allProperties, allRequired, refSchema, allDefinitions);
|
} else if (parentName != null && parentName.equals(modelName) && supportsInheritance) {
|
||||||
} else {
|
// single inheritance
|
||||||
// composition
|
addProperties(allProperties, allRequired, refSchema, allDefinitions);
|
||||||
//LOGGER.debug("Parent {} not set to model name {}", parentName, modelName);
|
} else {
|
||||||
addProperties(properties, required, refSchema, allDefinitions);
|
// composition
|
||||||
}
|
|
||||||
} else if (!supportsMixins && !supportsInheritance) {
|
|
||||||
addProperties(properties, required, refSchema, allDefinitions);
|
addProperties(properties, required, refSchema, allDefinitions);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (composed.getAnyOf() != null) {
|
if (composed.getAnyOf() != null) {
|
||||||
@ -1696,13 +1721,16 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
m.parentSchema = parentName;
|
m.parentSchema = parentName;
|
||||||
m.parent = toModelName(parentName);
|
m.parent = toModelName(parentName);
|
||||||
addImport(m, m.parent);
|
|
||||||
if (allDefinitions != null && !allDefinitions.isEmpty()) {
|
if (supportsMultipleInheritance) {
|
||||||
if (hasParent || supportsInheritance) {
|
m.allParents = new ArrayList<String>();
|
||||||
addProperties(allProperties, allRequired, parent, allDefinitions);
|
for (String pname : allParents) {
|
||||||
} else {
|
String pModelName = toModelName(pname);
|
||||||
addProperties(properties, required, parent, allDefinitions);
|
m.allParents.add(pModelName);
|
||||||
|
addImport(m, pModelName);
|
||||||
}
|
}
|
||||||
|
} else { // single inheritance
|
||||||
|
addImport(m, m.parent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1713,15 +1741,14 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
// component is the child schema
|
// component is the child schema
|
||||||
addProperties(properties, required, component, allDefinitions);
|
addProperties(properties, required, component, allDefinitions);
|
||||||
|
|
||||||
if (hasParent || supportsInheritance) {
|
// includes child's properties (all, required) in allProperties, allRequired
|
||||||
addProperties(allProperties, allRequired, component, allDefinitions);
|
addProperties(allProperties, allRequired, component, allDefinitions);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break; // at most one schema not using $ref
|
break; // at most one child only
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addVars(m, unaliasPropertySchema(allDefinitions, properties), required, allProperties, allRequired);
|
addVars(m, unaliasPropertySchema(allDefinitions, properties), required, unaliasPropertySchema(allDefinitions, allProperties), allRequired);
|
||||||
|
|
||||||
// end of code block for composed schema
|
// end of code block for composed schema
|
||||||
} else {
|
} else {
|
||||||
@ -1745,7 +1772,8 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
m.isString = Boolean.TRUE;
|
m.isString = Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
addVars(m, unaliasPropertySchema(allDefinitions, schema.getProperties()), schema.getRequired());
|
// passing null to allProperties and allRequired as there's no parent
|
||||||
|
addVars(m, unaliasPropertySchema(allDefinitions, schema.getProperties()), schema.getRequired(), null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove duplicated properties
|
// remove duplicated properties
|
||||||
@ -1797,9 +1825,19 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
addParentContainer(codegenModel, codegenModel.name, schema);
|
addParentContainer(codegenModel, codegenModel.name, schema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add schema's properties to "properties" and "required" list
|
||||||
|
*
|
||||||
|
* @param properties all properties
|
||||||
|
* @param required required property only
|
||||||
|
* @param schema schema in which the properties will be added to the lists
|
||||||
|
* @param allSchemas all schemas
|
||||||
|
*/
|
||||||
protected void addProperties(Map<String, Schema> properties, List<String> required, Schema
|
protected void addProperties(Map<String, Schema> properties, List<String> required, Schema
|
||||||
schema, Map<String, Schema> allSchemas) {
|
schema, Map<String, Schema> allSchemas) {
|
||||||
if (schema instanceof ComposedSchema) {
|
if (schema instanceof ComposedSchema) {
|
||||||
|
throw new RuntimeException("Please report the issue: Cannot process Composed Schema in addProperties: " + schema);
|
||||||
|
/*
|
||||||
ComposedSchema composedSchema = (ComposedSchema) schema;
|
ComposedSchema composedSchema = (ComposedSchema) schema;
|
||||||
if (composedSchema.getAllOf() == null) {
|
if (composedSchema.getAllOf() == null) {
|
||||||
return;
|
return;
|
||||||
@ -1809,8 +1847,11 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
addProperties(properties, required, component, allSchemas);
|
addProperties(properties, required, component, allSchemas);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Schema unaliasSchema = ModelUtils.unaliasSchema(globalSchemas, schema);
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(schema.get$ref())) {
|
if (StringUtils.isNotBlank(schema.get$ref())) {
|
||||||
Schema interfaceSchema = allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref()));
|
Schema interfaceSchema = allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref()));
|
||||||
addProperties(properties, required, interfaceSchema, allSchemas);
|
addProperties(properties, required, interfaceSchema, allSchemas);
|
||||||
@ -3425,49 +3466,69 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addVars(CodegenModel model, Map<String, Schema> properties, List<String> required) {
|
|
||||||
addVars(model, properties, required, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addVars(CodegenModel m, Map<String, Schema> properties, List<String> required,
|
private void addVars(CodegenModel m, Map<String, Schema> properties, List<String> required,
|
||||||
Map<String, Schema> allProperties, List<String> allRequired) {
|
Map<String, Schema> allProperties, List<String> allRequired) {
|
||||||
|
|
||||||
m.hasRequired = false;
|
m.hasRequired = false;
|
||||||
if (properties != null && !properties.isEmpty()) {
|
if (properties != null && !properties.isEmpty()) {
|
||||||
m.hasVars = true;
|
m.hasVars = true;
|
||||||
m.hasEnums = false;
|
m.hasEnums = false; // TODO need to fix as its false in both cases
|
||||||
|
|
||||||
Set<String> mandatory = required == null ? Collections.<String>emptySet()
|
Set<String> mandatory = required == null ? Collections.<String>emptySet()
|
||||||
: new TreeSet<String>(required);
|
: new TreeSet<String>(required);
|
||||||
|
|
||||||
|
// update "vars" without parent's properties (all, required)
|
||||||
addVars(m, m.vars, properties, mandatory);
|
addVars(m, m.vars, properties, mandatory);
|
||||||
m.allMandatory = m.mandatory = mandatory;
|
m.allMandatory = m.mandatory = mandatory;
|
||||||
} else {
|
} else {
|
||||||
m.emptyVars = true;
|
m.emptyVars = true;
|
||||||
m.hasVars = false;
|
m.hasVars = false;
|
||||||
m.hasEnums = false;
|
m.hasEnums = false; // TODO need to fix as its false in both cases
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allProperties != null) {
|
if (allProperties != null) {
|
||||||
Set<String> allMandatory = allRequired == null ? Collections.<String>emptySet()
|
Set<String> allMandatory = allRequired == null ? Collections.<String>emptySet()
|
||||||
: new TreeSet<String>(allRequired);
|
: new TreeSet<String>(allRequired);
|
||||||
|
// update "vars" with parent's properties (all, required)
|
||||||
addVars(m, m.allVars, allProperties, allMandatory);
|
addVars(m, m.allVars, allProperties, allMandatory);
|
||||||
m.allMandatory = allMandatory;
|
m.allMandatory = allMandatory;
|
||||||
|
} else { // without parent, allVars and vars are the same
|
||||||
|
m.allVars = m.vars;
|
||||||
|
m.allMandatory = m.mandatory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// loop through list to update property name with toVarName
|
||||||
|
Set<String> renamedMandatory = new TreeSet<String>();
|
||||||
|
Iterator<String> mandatoryIterator = m.mandatory.iterator();
|
||||||
|
while (mandatoryIterator.hasNext()) {
|
||||||
|
renamedMandatory.add(toVarName(mandatoryIterator.next()));
|
||||||
|
}
|
||||||
|
m.mandatory = renamedMandatory;
|
||||||
|
|
||||||
|
Set<String> renamedAllMandatory = new TreeSet<String>();
|
||||||
|
Iterator<String> allMandatoryIterator = m.allMandatory.iterator();
|
||||||
|
while (allMandatoryIterator.hasNext()) {
|
||||||
|
renamedAllMandatory.add(toVarName(allMandatoryIterator.next()));
|
||||||
|
}
|
||||||
|
m.allMandatory = renamedAllMandatory;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addVars(CodegenModel
|
/**
|
||||||
m, List<CodegenProperty> vars, Map<String, Schema> properties, Set<String> mandatory) {
|
* Add variables (properties) to codegen model (list of properties, various flags, etc)
|
||||||
// convert set to list so that we can access the next entry in the loop
|
*
|
||||||
List<Map.Entry<String, Schema>> propertyList = new ArrayList<Map.Entry<String, Schema>>(properties.entrySet());
|
* @param m Codegen model
|
||||||
final int totalCount = propertyList.size();
|
* @param vars list of codegen properties (e.g. vars, allVars) to be updated with the new properties
|
||||||
for (int i = 0; i < totalCount; i++) {
|
* @param properties a map of properties (schema)
|
||||||
Map.Entry<String, Schema> entry = propertyList.get(i);
|
* @param mandatory a set of required properties' name
|
||||||
|
*/
|
||||||
|
private void addVars(CodegenModel m, List<CodegenProperty> vars, Map<String, Schema> properties, Set<String> mandatory) {
|
||||||
|
for (Map.Entry<String, Schema> entry : properties.entrySet()) {
|
||||||
|
|
||||||
final String key = entry.getKey();
|
final String key = entry.getKey();
|
||||||
final Schema prop = entry.getValue();
|
final Schema prop = entry.getValue();
|
||||||
|
|
||||||
if (prop == null) {
|
if (prop == null) {
|
||||||
LOGGER.warn("null property for " + key);
|
LOGGER.warn("Please report the issue. There shouldn't be null property for " + key);
|
||||||
} else {
|
} else {
|
||||||
final CodegenProperty cp = fromProperty(key, prop);
|
final CodegenProperty cp = fromProperty(key, prop);
|
||||||
cp.required = mandatory.contains(key);
|
cp.required = mandatory.contains(key);
|
||||||
@ -3484,14 +3545,7 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
m.hasOnlyReadOnly = false;
|
m.hasOnlyReadOnly = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i + 1 != totalCount) {
|
// TODO revise the logic to include map
|
||||||
cp.hasMore = true;
|
|
||||||
// check the next entry to see if it's read only
|
|
||||||
if (!Boolean.TRUE.equals(propertyList.get(i + 1).getValue().getReadOnly())) {
|
|
||||||
cp.hasMoreNonReadOnly = true; // next entry is not ready only
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cp.isContainer) {
|
if (cp.isContainer) {
|
||||||
addImport(m, typeMapping.get("array"));
|
addImport(m, typeMapping.get("array"));
|
||||||
}
|
}
|
||||||
@ -3515,7 +3569,7 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
if (Boolean.TRUE.equals(cp.isReadOnly)) {
|
if (Boolean.TRUE.equals(cp.isReadOnly)) {
|
||||||
m.readOnlyVars.add(cp);
|
m.readOnlyVars.add(cp);
|
||||||
} else { // else add to readWriteVars (list of properties)
|
} else { // else add to readWriteVars (list of properties)
|
||||||
// FIXME: readWriteVars can contain duplicated properties. Debug/breakpoint here while running C# generator (Dog and Cat models)
|
// duplicated properties will be removed by removeAllDuplicatedProperty later
|
||||||
m.readWriteVars.add(cp);
|
m.readWriteVars.add(cp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -458,6 +458,9 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// loop through all models to update children models, isSelfReference, isCircularReference, etc
|
||||||
|
allProcessedModels = config.updateAllModels(allProcessedModels);
|
||||||
|
|
||||||
// post process all processed models
|
// post process all processed models
|
||||||
allProcessedModels = config.postProcessAllModels(allProcessedModels);
|
allProcessedModels = config.postProcessAllModels(allProcessedModels);
|
||||||
|
|
||||||
|
@ -54,6 +54,9 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
|
|||||||
|
|
||||||
supportsInheritance = true;
|
supportsInheritance = true;
|
||||||
|
|
||||||
|
// to support multiple inheritance e.g. export interface ModelC extends ModelA, ModelB
|
||||||
|
//supportsMultipleInheritance = true;
|
||||||
|
|
||||||
// NOTE: TypeScript uses camel cased reserved words, while models are title cased. We don't want lowercase comparisons.
|
// NOTE: TypeScript uses camel cased reserved words, while models are title cased. We don't want lowercase comparisons.
|
||||||
reservedWords.addAll(Arrays.asList(
|
reservedWords.addAll(Arrays.asList(
|
||||||
// local variable names used in API methods (endpoints)
|
// local variable names used in API methods (endpoints)
|
||||||
|
@ -1046,6 +1046,16 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (CodegenProperty var : cm.allVars) {
|
||||||
|
// Add JSDoc @type value for this property.
|
||||||
|
String jsDocType = getJSDocType(cm, var);
|
||||||
|
var.vendorExtensions.put("x-jsdoc-type", jsDocType);
|
||||||
|
|
||||||
|
if (Boolean.TRUE.equals(var.required)) {
|
||||||
|
required.add(var);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (supportsInheritance || supportsMixins) {
|
if (supportsInheritance || supportsMixins) {
|
||||||
for (CodegenProperty var : cm.allVars) {
|
for (CodegenProperty var : cm.allVars) {
|
||||||
if (Boolean.TRUE.equals(var.required)) {
|
if (Boolean.TRUE.equals(var.required)) {
|
||||||
|
@ -762,5 +762,4 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,8 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
|
|||||||
public RubyClientCodegen() {
|
public RubyClientCodegen() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
supportsInheritance = true;
|
||||||
|
|
||||||
// clear import mapping (from default generator) as ruby does not use it
|
// clear import mapping (from default generator) as ruby does not use it
|
||||||
// at the moment
|
// at the moment
|
||||||
importMapping.clear();
|
importMapping.clear();
|
||||||
@ -112,6 +114,7 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
|
|||||||
itr.remove();
|
itr.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cliOptions.add(new CliOption(GEM_NAME, "gem name (convention: underscore_case).").
|
cliOptions.add(new CliOption(GEM_NAME, "gem name (convention: underscore_case).").
|
||||||
defaultValue("openapi_client"));
|
defaultValue("openapi_client"));
|
||||||
cliOptions.add(new CliOption(MODULE_NAME, "top module name (convention: CamelCase, usually corresponding" +
|
cliOptions.add(new CliOption(MODULE_NAME, "top module name (convention: CamelCase, usually corresponding" +
|
||||||
|
@ -877,6 +877,35 @@ public class ModelUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<String> getAllParentsName(ComposedSchema composedSchema, Map<String, Schema> allSchemas) {
|
||||||
|
List<Schema> interfaces = getInterfaces(composedSchema);
|
||||||
|
List<String> names = new ArrayList<String>();
|
||||||
|
|
||||||
|
if (interfaces != null && !interfaces.isEmpty()) {
|
||||||
|
for (Schema schema : interfaces) {
|
||||||
|
// get the actual schema
|
||||||
|
if (StringUtils.isNotEmpty(schema.get$ref())) {
|
||||||
|
String parentName = getSimpleRef(schema.get$ref());
|
||||||
|
Schema s = allSchemas.get(parentName);
|
||||||
|
if (s == null) {
|
||||||
|
LOGGER.error("Failed to obtain schema from {}", parentName);
|
||||||
|
names.add("UNKNOWN_PARENT_NAME");
|
||||||
|
} else if (s.getDiscriminator() != null && StringUtils.isNotEmpty(s.getDiscriminator().getPropertyName())) {
|
||||||
|
// discriminator.propertyName is used
|
||||||
|
names.add(parentName);
|
||||||
|
} else {
|
||||||
|
LOGGER.debug("Not a parent since discriminator.propertyName is not set {}", s.get$ref());
|
||||||
|
// not a parent since discriminator.propertyName is not set
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// not a ref, doing nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isNullable(Schema schema) {
|
public static boolean isNullable(Schema schema) {
|
||||||
if (schema == null) {
|
if (schema == null) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ {{>modelGenericAdditionalProperties}}
|
export interface {{classname}}{{#allParents}}{{#-first}} extends {{/-first}}{{{.}}}{{^-last}}, {{/-last}}{{/allParents}} { {{>modelGenericAdditionalProperties}}
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
{{#description}}
|
{{#description}}
|
||||||
/**
|
/**
|
||||||
@ -7,4 +7,4 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ {{>m
|
|||||||
{{/description}}
|
{{/description}}
|
||||||
{{#isReadOnly}}readonly {{/isReadOnly}}{{{name}}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}};
|
{{#isReadOnly}}readonly {{/isReadOnly}}{{{name}}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}};
|
||||||
{{/vars}}
|
{{/vars}}
|
||||||
}{{>modelGenericEnums}}
|
}{{>modelGenericEnums}}
|
||||||
|
@ -208,23 +208,80 @@ public class RubyClientCodegenTest {
|
|||||||
|
|
||||||
final Schema schema = openAPI.getComponents().getSchemas().get("Pet");
|
final Schema schema = openAPI.getComponents().getSchemas().get("Pet");
|
||||||
CodegenModel nullablePet = codegen.fromModel("Pet", schema, openAPI.getComponents().getSchemas());
|
CodegenModel nullablePet = codegen.fromModel("Pet", schema, openAPI.getComponents().getSchemas());
|
||||||
|
|
||||||
|
Assert.assertNotNull(nullablePet);
|
||||||
|
Assert.assertEquals(nullablePet.getVars().size(), 6);
|
||||||
CodegenProperty cp0 = nullablePet.getVars().get(0);
|
CodegenProperty cp0 = nullablePet.getVars().get(0);
|
||||||
Assert.assertFalse(cp0.isNullable);
|
Assert.assertFalse(cp0.isNullable);
|
||||||
|
Assert.assertEquals(cp0.name, "id");
|
||||||
|
|
||||||
CodegenProperty cp1 = nullablePet.getVars().get(1);
|
CodegenProperty cp1 = nullablePet.getVars().get(1);
|
||||||
Assert.assertFalse(cp1.isNullable);
|
Assert.assertFalse(cp1.isNullable);
|
||||||
|
Assert.assertEquals(cp1.name, "category");
|
||||||
|
|
||||||
CodegenProperty cp2 = nullablePet.getVars().get(2);
|
CodegenProperty cp2 = nullablePet.getVars().get(2);
|
||||||
Assert.assertFalse(cp2.isNullable);
|
Assert.assertFalse(cp2.isNullable);
|
||||||
|
Assert.assertEquals(cp2.name, "name");
|
||||||
|
|
||||||
CodegenProperty cp3 = nullablePet.getVars().get(3);
|
CodegenProperty cp3 = nullablePet.getVars().get(3);
|
||||||
Assert.assertFalse(cp3.isNullable);
|
Assert.assertFalse(cp3.isNullable);
|
||||||
|
Assert.assertEquals(cp3.name, "photo_urls");
|
||||||
|
|
||||||
CodegenProperty cp4 = nullablePet.getVars().get(4);
|
CodegenProperty cp4 = nullablePet.getVars().get(4);
|
||||||
Assert.assertFalse(cp4.isNullable);
|
Assert.assertFalse(cp4.isNullable);
|
||||||
|
Assert.assertEquals(cp4.name, "tags");
|
||||||
|
|
||||||
CodegenProperty cp5 = nullablePet.getVars().get(5);
|
CodegenProperty cp5 = nullablePet.getVars().get(5);
|
||||||
Assert.assertFalse(cp5.isNullable);
|
Assert.assertFalse(cp5.isNullable);
|
||||||
|
Assert.assertEquals(cp5.name, "status");
|
||||||
|
|
||||||
|
// test allVars
|
||||||
|
Assert.assertEquals(nullablePet.getAllVars().size(), 6);
|
||||||
|
cp0 = nullablePet.getVars().get(0);
|
||||||
|
Assert.assertFalse(cp0.isNullable);
|
||||||
|
Assert.assertEquals(cp0.name, "id");
|
||||||
|
|
||||||
|
cp1 = nullablePet.getVars().get(1);
|
||||||
|
Assert.assertFalse(cp1.isNullable);
|
||||||
|
Assert.assertEquals(cp1.name, "category");
|
||||||
|
|
||||||
|
cp2 = nullablePet.getVars().get(2);
|
||||||
|
Assert.assertFalse(cp2.isNullable);
|
||||||
|
Assert.assertEquals(cp2.name, "name");
|
||||||
|
|
||||||
|
cp3 = nullablePet.getVars().get(3);
|
||||||
|
Assert.assertFalse(cp3.isNullable);
|
||||||
|
Assert.assertEquals(cp3.name, "photo_urls");
|
||||||
|
|
||||||
|
cp4 = nullablePet.getVars().get(4);
|
||||||
|
Assert.assertFalse(cp4.isNullable);
|
||||||
|
Assert.assertEquals(cp4.name, "tags");
|
||||||
|
|
||||||
|
cp5 = nullablePet.getVars().get(5);
|
||||||
|
Assert.assertFalse(cp5.isNullable);
|
||||||
|
Assert.assertEquals(cp5.name, "status");
|
||||||
|
|
||||||
|
// test requiredVars
|
||||||
|
Assert.assertEquals(nullablePet.getRequiredVars().size(), 2);
|
||||||
|
cp0 = nullablePet.getRequiredVars().get(0);
|
||||||
|
Assert.assertFalse(cp0.isNullable);
|
||||||
|
Assert.assertEquals(cp0.name, "name");
|
||||||
|
|
||||||
|
cp1 = nullablePet.getRequiredVars().get(1);
|
||||||
|
Assert.assertFalse(cp1.isNullable);
|
||||||
|
Assert.assertEquals(cp1.name, "photo_urls");
|
||||||
|
|
||||||
|
// test mandatory
|
||||||
|
Set<String> mandatory = new TreeSet<String>();
|
||||||
|
mandatory.add("name");
|
||||||
|
mandatory.add("photo_urls");
|
||||||
|
Assert.assertEquals(nullablePet.getMandatory(), mandatory);
|
||||||
|
|
||||||
|
// test allMandatory
|
||||||
|
Set<String> allMandatory = new TreeSet<String>();
|
||||||
|
allMandatory.add("name");
|
||||||
|
allMandatory.add("photo_urls");
|
||||||
|
Assert.assertEquals(nullablePet.getAllMandatory(), allMandatory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(description = "test nullable for parameters (OAS3)")
|
@Test(description = "test nullable for parameters (OAS3)")
|
||||||
@ -349,8 +406,8 @@ public class RubyClientCodegenTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test(description = "test allOf with discriminator and duplicated properties(OAS3)")
|
@Test(description = "test allOf with discriminator and duplicated properties(OAS3) for Child model")
|
||||||
public void allOfMappingDuplicatedPropertiesTest() {
|
public void allOfMappingDuplicatedPropertiesTestForChild() {
|
||||||
final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/allOfMappingDuplicatedProperties.yaml", null, new ParseOptions()).getOpenAPI();
|
final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/allOfMappingDuplicatedProperties.yaml", null, new ParseOptions()).getOpenAPI();
|
||||||
final RubyClientCodegen codegen = new RubyClientCodegen();
|
final RubyClientCodegen codegen = new RubyClientCodegen();
|
||||||
codegen.setModuleName("OnlinePetstore");
|
codegen.setModuleName("OnlinePetstore");
|
||||||
@ -358,25 +415,108 @@ public class RubyClientCodegenTest {
|
|||||||
final Schema schema = openAPI.getComponents().getSchemas().get("Child");
|
final Schema schema = openAPI.getComponents().getSchemas().get("Child");
|
||||||
CodegenModel child = codegen.fromModel("Child", schema, openAPI.getComponents().getSchemas());
|
CodegenModel child = codegen.fromModel("Child", schema, openAPI.getComponents().getSchemas());
|
||||||
Assert.assertNotNull(child);
|
Assert.assertNotNull(child);
|
||||||
Assert.assertEquals(child.getVars().size(), 6);
|
|
||||||
|
|
||||||
CodegenProperty cp0 = child.getVars().get(0);
|
// to test allVars (without parent's properties)
|
||||||
|
Assert.assertEquals(child.getAllVars().size(), 7);
|
||||||
|
|
||||||
|
CodegenProperty cp0 = child.getAllVars().get(0);
|
||||||
|
Assert.assertEquals(cp0.name, "_type");
|
||||||
|
|
||||||
|
CodegenProperty cp1 = child.getAllVars().get(1);
|
||||||
|
Assert.assertEquals(cp1.name, "last_name");
|
||||||
|
|
||||||
|
CodegenProperty cp2 = child.getAllVars().get(2);
|
||||||
|
Assert.assertEquals(cp2.name, "first_name");
|
||||||
|
|
||||||
|
CodegenProperty cp3 = child.getAllVars().get(3);
|
||||||
|
Assert.assertEquals(cp3.name, "duplicated_optional");
|
||||||
|
|
||||||
|
CodegenProperty cp4 = child.getAllVars().get(4);
|
||||||
|
Assert.assertEquals(cp4.name, "duplicated_required");
|
||||||
|
|
||||||
|
CodegenProperty cp5 = child.getAllVars().get(5);
|
||||||
|
Assert.assertEquals(cp5.name, "person_required");
|
||||||
|
|
||||||
|
CodegenProperty cp6 = child.getAllVars().get(6);
|
||||||
|
Assert.assertEquals(cp6.name, "age");
|
||||||
|
|
||||||
|
// to test vars (without parent's properties)
|
||||||
|
Assert.assertEquals(child.getVars().size(), 2);
|
||||||
|
|
||||||
|
cp0 = child.getVars().get(0);
|
||||||
Assert.assertEquals(cp0.name, "age");
|
Assert.assertEquals(cp0.name, "age");
|
||||||
|
|
||||||
CodegenProperty cp1 = child.getVars().get(1);
|
cp1 = child.getVars().get(1);
|
||||||
Assert.assertEquals(cp1.name, "first_name");
|
Assert.assertEquals(cp1.name, "first_name");
|
||||||
|
|
||||||
CodegenProperty cp2 = child.getVars().get(2);
|
// to test requiredVars
|
||||||
Assert.assertEquals(cp2.name, "_type");
|
Assert.assertEquals(child.getRequiredVars().size(), 2);
|
||||||
|
|
||||||
CodegenProperty cp3 = child.getVars().get(3);
|
cp0 = child.getRequiredVars().get(0);
|
||||||
Assert.assertEquals(cp3.name, "last_name");
|
Assert.assertEquals(cp0.name, "duplicated_required");
|
||||||
|
|
||||||
CodegenProperty cp4 = child.getVars().get(4);
|
cp1 = child.getRequiredVars().get(1);
|
||||||
Assert.assertEquals(cp4.name, "duplicated_optional");
|
Assert.assertEquals(cp1.name, "person_required");
|
||||||
|
|
||||||
CodegenProperty cp5 = child.getVars().get(5);
|
}
|
||||||
Assert.assertEquals(cp5.name, "duplicated_required");
|
|
||||||
|
@Test(description = "test allOf with discriminator and duplicated properties(OAS3) for Adult model")
|
||||||
|
public void allOfMappingDuplicatedPropertiesTestForAdult() {
|
||||||
|
final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/allOfMappingDuplicatedProperties.yaml", null, new ParseOptions()).getOpenAPI();
|
||||||
|
final RubyClientCodegen codegen = new RubyClientCodegen();
|
||||||
|
codegen.setModuleName("OnlinePetstore");
|
||||||
|
|
||||||
|
final Schema schema = openAPI.getComponents().getSchemas().get("Adult");
|
||||||
|
CodegenModel adult = codegen.fromModel("Adult", schema, openAPI.getComponents().getSchemas());
|
||||||
|
Assert.assertNotNull(adult);
|
||||||
|
|
||||||
|
// to test allVars (without parent's properties)
|
||||||
|
Assert.assertEquals(adult.getAllVars().size(), 8);
|
||||||
|
|
||||||
|
CodegenProperty cp0 = adult.getAllVars().get(0);
|
||||||
|
Assert.assertEquals(cp0.name, "_type");
|
||||||
|
|
||||||
|
CodegenProperty cp1 = adult.getAllVars().get(1);
|
||||||
|
Assert.assertEquals(cp1.name, "last_name");
|
||||||
|
|
||||||
|
CodegenProperty cp2 = adult.getAllVars().get(2);
|
||||||
|
Assert.assertEquals(cp2.name, "first_name");
|
||||||
|
|
||||||
|
CodegenProperty cp3 = adult.getAllVars().get(3);
|
||||||
|
Assert.assertEquals(cp3.name, "duplicated_optional");
|
||||||
|
|
||||||
|
CodegenProperty cp4 = adult.getAllVars().get(4);
|
||||||
|
Assert.assertEquals(cp4.name, "duplicated_required");
|
||||||
|
|
||||||
|
CodegenProperty cp5 = adult.getAllVars().get(5);
|
||||||
|
Assert.assertEquals(cp5.name, "person_required");
|
||||||
|
|
||||||
|
CodegenProperty cp6 = adult.getAllVars().get(6);
|
||||||
|
Assert.assertEquals(cp6.name, "children");
|
||||||
|
|
||||||
|
CodegenProperty cp7 = adult.getAllVars().get(7);
|
||||||
|
Assert.assertEquals(cp7.name, "adult_required");
|
||||||
|
|
||||||
|
// to test vars (without parent's properties)
|
||||||
|
Assert.assertEquals(adult.getVars().size(), 4);
|
||||||
|
|
||||||
|
cp0 = adult.getVars().get(0);
|
||||||
|
Assert.assertEquals(cp0.name, "duplicated_optional");
|
||||||
|
|
||||||
|
cp1 = adult.getVars().get(1);
|
||||||
|
Assert.assertEquals(cp1.name, "duplicated_required");
|
||||||
|
|
||||||
|
cp2 = adult.getVars().get(2);
|
||||||
|
Assert.assertEquals(cp2.name, "children");
|
||||||
|
|
||||||
|
// to test requiredVars
|
||||||
|
Assert.assertEquals(adult.getRequiredVars().size(), 2);
|
||||||
|
|
||||||
|
cp0 = adult.getRequiredVars().get(0);
|
||||||
|
Assert.assertEquals(cp0.name, "duplicated_required");
|
||||||
|
|
||||||
|
cp1 = adult.getRequiredVars().get(1);
|
||||||
|
Assert.assertEquals(cp1.name, "person_required");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(description = "test example string imported from x-example parameterr (OAS2)")
|
@Test(description = "test example string imported from x-example parameterr (OAS2)")
|
||||||
@ -410,9 +550,9 @@ public class RubyClientCodegenTest {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* We want to make sure that all Regex patterns:
|
* We want to make sure that all Regex patterns:
|
||||||
* - Start with / so Ruby know this is a regex pattern
|
* - Start with / so Ruby know this is a regex pattern
|
||||||
* - Have a second / that may be added to end if only 1 exists at start
|
* - Have a second / that may be added to end if only 1 exists at start
|
||||||
* - If there are 2 / in pattern then don't add any more
|
* - If there are 2 / in pattern then don't add any more
|
||||||
*/
|
*/
|
||||||
@Test(description = "test regex patterns")
|
@Test(description = "test regex patterns")
|
||||||
public void exampleRegexParameterValidationOAS3Test() {
|
public void exampleRegexParameterValidationOAS3Test() {
|
||||||
|
@ -29,6 +29,7 @@ components:
|
|||||||
Person:
|
Person:
|
||||||
required:
|
required:
|
||||||
- duplicated_required
|
- duplicated_required
|
||||||
|
- person_required
|
||||||
type: object
|
type: object
|
||||||
discriminator:
|
discriminator:
|
||||||
propertyName: $_type
|
propertyName: $_type
|
||||||
@ -46,6 +47,9 @@ components:
|
|||||||
type: string
|
type: string
|
||||||
duplicated_required:
|
duplicated_required:
|
||||||
type: string
|
type: string
|
||||||
|
person_required:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
Adult:
|
Adult:
|
||||||
description: A representation of an adult
|
description: A representation of an adult
|
||||||
allOf:
|
allOf:
|
||||||
@ -53,6 +57,7 @@ components:
|
|||||||
- type: object
|
- type: object
|
||||||
required:
|
required:
|
||||||
- duplicated_required
|
- duplicated_required
|
||||||
|
- child_required
|
||||||
properties:
|
properties:
|
||||||
duplicated_optional:
|
duplicated_optional:
|
||||||
type: integer
|
type: integer
|
||||||
@ -62,6 +67,8 @@ components:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: "#/components/schemas/Child"
|
$ref: "#/components/schemas/Child"
|
||||||
|
adult_required:
|
||||||
|
type: boolean
|
||||||
Child:
|
Child:
|
||||||
description: A representation of a child
|
description: A representation of a child
|
||||||
allOf:
|
allOf:
|
||||||
|
@ -0,0 +1,94 @@
|
|||||||
|
openapi: 3.0.1
|
||||||
|
info:
|
||||||
|
version: 1.0.0
|
||||||
|
title: Example
|
||||||
|
license:
|
||||||
|
name: MIT
|
||||||
|
servers:
|
||||||
|
- url: http://api.example.xyz/v1
|
||||||
|
paths:
|
||||||
|
/person/display/{personId}:
|
||||||
|
get:
|
||||||
|
parameters:
|
||||||
|
- name: personId
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
description: The id of the person to retrieve
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
operationId: list
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/Person"
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
Person:
|
||||||
|
required:
|
||||||
|
- duplicated_required
|
||||||
|
- person_required
|
||||||
|
type: object
|
||||||
|
discriminator:
|
||||||
|
propertyName: $_type
|
||||||
|
mapping:
|
||||||
|
a: '#/components/schemas/Adult'
|
||||||
|
c: '#/components/schemas/Child'
|
||||||
|
properties:
|
||||||
|
$_type:
|
||||||
|
type: string
|
||||||
|
lastName:
|
||||||
|
type: string
|
||||||
|
firstName:
|
||||||
|
type: string
|
||||||
|
duplicated_optional:
|
||||||
|
type: string
|
||||||
|
duplicated_required:
|
||||||
|
type: string
|
||||||
|
person_required:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
Human:
|
||||||
|
required:
|
||||||
|
- body
|
||||||
|
type: object
|
||||||
|
discriminator:
|
||||||
|
propertyName: $_type
|
||||||
|
properties:
|
||||||
|
$_type:
|
||||||
|
type: string
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
Adult:
|
||||||
|
description: A representation of an adult
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/components/schemas/Person'
|
||||||
|
- $ref: '#/components/schemas/Human'
|
||||||
|
- type: object
|
||||||
|
required:
|
||||||
|
- duplicated_required
|
||||||
|
- child_required
|
||||||
|
properties:
|
||||||
|
duplicated_optional:
|
||||||
|
type: integer
|
||||||
|
duplicated_required:
|
||||||
|
type: integer
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Child"
|
||||||
|
adult_required:
|
||||||
|
type: boolean
|
||||||
|
Child:
|
||||||
|
description: A representation of a child
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
age:
|
||||||
|
type: integer
|
||||||
|
format: int32
|
||||||
|
firstName:
|
||||||
|
type: string
|
||||||
|
- $ref: '#/components/schemas/Person'
|
@ -13,6 +13,6 @@ docker run --rm -it \
|
|||||||
-e MAVEN_CONFIG=/var/maven/.m2 \
|
-e MAVEN_CONFIG=/var/maven/.m2 \
|
||||||
-u "$(id -u):$(id -g)" \
|
-u "$(id -u):$(id -g)" \
|
||||||
-v "${PWD}:/gen" \
|
-v "${PWD}:/gen" \
|
||||||
-v "${maven_cache_repo}:/var/maven/.m2/repository" \
|
-v "$HOME/.m2":/root/.m2 \
|
||||||
--entrypoint /gen/docker-entrypoint.sh \
|
--entrypoint /gen/docker-entrypoint.sh \
|
||||||
maven:3-jdk-8 "$@"
|
maven:3-jdk-8 "$@"
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
## Properties
|
## Properties
|
||||||
Name | Type | Description | Notes
|
Name | Type | Description | Notes
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
**Declawed** | **bool** | | [optional]
|
|
||||||
**ClassName** | **string** | |
|
**ClassName** | **string** | |
|
||||||
**Color** | **string** | | [optional] [default to red]
|
**Color** | **string** | | [optional] [default to red]
|
||||||
|
**Declawed** | **bool** | | [optional]
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
## Properties
|
## Properties
|
||||||
Name | Type | Description | Notes
|
Name | Type | Description | Notes
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
**Breed** | **string** | | [optional]
|
|
||||||
**ClassName** | **string** | |
|
**ClassName** | **string** | |
|
||||||
**Color** | **string** | | [optional] [default to red]
|
**Color** | **string** | | [optional] [default to red]
|
||||||
|
**Breed** | **string** | | [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)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
package petstore
|
package petstore
|
||||||
|
|
||||||
type Cat struct {
|
type Cat struct {
|
||||||
Declawed bool `json:"declawed,omitempty"`
|
|
||||||
ClassName string `json:"className"`
|
ClassName string `json:"className"`
|
||||||
Color string `json:"color,omitempty"`
|
Color string `json:"color,omitempty"`
|
||||||
|
Declawed bool `json:"declawed,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
package petstore
|
package petstore
|
||||||
|
|
||||||
type Dog struct {
|
type Dog struct {
|
||||||
Breed string `json:"breed,omitempty"`
|
|
||||||
ClassName string `json:"className"`
|
ClassName string `json:"className"`
|
||||||
Color string `json:"color,omitempty"`
|
Color string `json:"color,omitempty"`
|
||||||
|
Breed string `json:"breed,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -457,26 +457,26 @@ mkCapitalization =
|
|||||||
-- ** Cat
|
-- ** Cat
|
||||||
-- | Cat
|
-- | Cat
|
||||||
data Cat = Cat
|
data Cat = Cat
|
||||||
{ catDeclawed :: !(Maybe Bool) -- ^ "declawed"
|
{ catClassName :: !(Text) -- ^ /Required/ "className"
|
||||||
, catClassName :: !(Text) -- ^ /Required/ "className"
|
|
||||||
, catColor :: !(Maybe Text) -- ^ "color"
|
, catColor :: !(Maybe Text) -- ^ "color"
|
||||||
|
, catDeclawed :: !(Maybe Bool) -- ^ "declawed"
|
||||||
} deriving (P.Show, P.Eq, P.Typeable)
|
} deriving (P.Show, P.Eq, P.Typeable)
|
||||||
|
|
||||||
-- | FromJSON Cat
|
-- | FromJSON Cat
|
||||||
instance A.FromJSON Cat where
|
instance A.FromJSON Cat where
|
||||||
parseJSON = A.withObject "Cat" $ \o ->
|
parseJSON = A.withObject "Cat" $ \o ->
|
||||||
Cat
|
Cat
|
||||||
<$> (o .:? "declawed")
|
<$> (o .: "className")
|
||||||
<*> (o .: "className")
|
|
||||||
<*> (o .:? "color")
|
<*> (o .:? "color")
|
||||||
|
<*> (o .:? "declawed")
|
||||||
|
|
||||||
-- | ToJSON Cat
|
-- | ToJSON Cat
|
||||||
instance A.ToJSON Cat where
|
instance A.ToJSON Cat where
|
||||||
toJSON Cat {..} =
|
toJSON Cat {..} =
|
||||||
_omitNulls
|
_omitNulls
|
||||||
[ "declawed" .= catDeclawed
|
[ "className" .= catClassName
|
||||||
, "className" .= catClassName
|
|
||||||
, "color" .= catColor
|
, "color" .= catColor
|
||||||
|
, "declawed" .= catDeclawed
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -486,9 +486,9 @@ mkCat
|
|||||||
-> Cat
|
-> Cat
|
||||||
mkCat catClassName =
|
mkCat catClassName =
|
||||||
Cat
|
Cat
|
||||||
{ catDeclawed = Nothing
|
{ catClassName
|
||||||
, catClassName
|
|
||||||
, catColor = Nothing
|
, catColor = Nothing
|
||||||
|
, catDeclawed = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
-- ** Category
|
-- ** Category
|
||||||
@ -584,26 +584,26 @@ mkClient =
|
|||||||
-- ** Dog
|
-- ** Dog
|
||||||
-- | Dog
|
-- | Dog
|
||||||
data Dog = Dog
|
data Dog = Dog
|
||||||
{ dogBreed :: !(Maybe Text) -- ^ "breed"
|
{ dogClassName :: !(Text) -- ^ /Required/ "className"
|
||||||
, dogClassName :: !(Text) -- ^ /Required/ "className"
|
|
||||||
, dogColor :: !(Maybe Text) -- ^ "color"
|
, dogColor :: !(Maybe Text) -- ^ "color"
|
||||||
|
, dogBreed :: !(Maybe Text) -- ^ "breed"
|
||||||
} deriving (P.Show, P.Eq, P.Typeable)
|
} deriving (P.Show, P.Eq, P.Typeable)
|
||||||
|
|
||||||
-- | FromJSON Dog
|
-- | FromJSON Dog
|
||||||
instance A.FromJSON Dog where
|
instance A.FromJSON Dog where
|
||||||
parseJSON = A.withObject "Dog" $ \o ->
|
parseJSON = A.withObject "Dog" $ \o ->
|
||||||
Dog
|
Dog
|
||||||
<$> (o .:? "breed")
|
<$> (o .: "className")
|
||||||
<*> (o .: "className")
|
|
||||||
<*> (o .:? "color")
|
<*> (o .:? "color")
|
||||||
|
<*> (o .:? "breed")
|
||||||
|
|
||||||
-- | ToJSON Dog
|
-- | ToJSON Dog
|
||||||
instance A.ToJSON Dog where
|
instance A.ToJSON Dog where
|
||||||
toJSON Dog {..} =
|
toJSON Dog {..} =
|
||||||
_omitNulls
|
_omitNulls
|
||||||
[ "breed" .= dogBreed
|
[ "className" .= dogClassName
|
||||||
, "className" .= dogClassName
|
|
||||||
, "color" .= dogColor
|
, "color" .= dogColor
|
||||||
|
, "breed" .= dogBreed
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -613,9 +613,9 @@ mkDog
|
|||||||
-> Dog
|
-> Dog
|
||||||
mkDog dogClassName =
|
mkDog dogClassName =
|
||||||
Dog
|
Dog
|
||||||
{ dogBreed = Nothing
|
{ dogClassName
|
||||||
, dogClassName
|
|
||||||
, dogColor = Nothing
|
, dogColor = Nothing
|
||||||
|
, dogBreed = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
-- ** EnumArrays
|
-- ** EnumArrays
|
||||||
|
@ -156,11 +156,6 @@ capitalizationAttNameL f Capitalization{..} = (\capitalizationAttName -> Capital
|
|||||||
|
|
||||||
-- * Cat
|
-- * Cat
|
||||||
|
|
||||||
-- | 'catDeclawed' Lens
|
|
||||||
catDeclawedL :: Lens_' Cat (Maybe Bool)
|
|
||||||
catDeclawedL f Cat{..} = (\catDeclawed -> Cat { catDeclawed, ..} ) <$> f catDeclawed
|
|
||||||
{-# INLINE catDeclawedL #-}
|
|
||||||
|
|
||||||
-- | 'catClassName' Lens
|
-- | 'catClassName' Lens
|
||||||
catClassNameL :: Lens_' Cat (Text)
|
catClassNameL :: Lens_' Cat (Text)
|
||||||
catClassNameL f Cat{..} = (\catClassName -> Cat { catClassName, ..} ) <$> f catClassName
|
catClassNameL f Cat{..} = (\catClassName -> Cat { catClassName, ..} ) <$> f catClassName
|
||||||
@ -171,6 +166,11 @@ catColorL :: Lens_' Cat (Maybe Text)
|
|||||||
catColorL f Cat{..} = (\catColor -> Cat { catColor, ..} ) <$> f catColor
|
catColorL f Cat{..} = (\catColor -> Cat { catColor, ..} ) <$> f catColor
|
||||||
{-# INLINE catColorL #-}
|
{-# INLINE catColorL #-}
|
||||||
|
|
||||||
|
-- | 'catDeclawed' Lens
|
||||||
|
catDeclawedL :: Lens_' Cat (Maybe Bool)
|
||||||
|
catDeclawedL f Cat{..} = (\catDeclawed -> Cat { catDeclawed, ..} ) <$> f catDeclawed
|
||||||
|
{-# INLINE catDeclawedL #-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- * Category
|
-- * Category
|
||||||
@ -207,11 +207,6 @@ clientClientL f Client{..} = (\clientClient -> Client { clientClient, ..} ) <$>
|
|||||||
|
|
||||||
-- * Dog
|
-- * Dog
|
||||||
|
|
||||||
-- | 'dogBreed' Lens
|
|
||||||
dogBreedL :: Lens_' Dog (Maybe Text)
|
|
||||||
dogBreedL f Dog{..} = (\dogBreed -> Dog { dogBreed, ..} ) <$> f dogBreed
|
|
||||||
{-# INLINE dogBreedL #-}
|
|
||||||
|
|
||||||
-- | 'dogClassName' Lens
|
-- | 'dogClassName' Lens
|
||||||
dogClassNameL :: Lens_' Dog (Text)
|
dogClassNameL :: Lens_' Dog (Text)
|
||||||
dogClassNameL f Dog{..} = (\dogClassName -> Dog { dogClassName, ..} ) <$> f dogClassName
|
dogClassNameL f Dog{..} = (\dogClassName -> Dog { dogClassName, ..} ) <$> f dogClassName
|
||||||
@ -222,6 +217,11 @@ dogColorL :: Lens_' Dog (Maybe Text)
|
|||||||
dogColorL f Dog{..} = (\dogColor -> Dog { dogColor, ..} ) <$> f dogColor
|
dogColorL f Dog{..} = (\dogColor -> Dog { dogColor, ..} ) <$> f dogColor
|
||||||
{-# INLINE dogColorL #-}
|
{-# INLINE dogColorL #-}
|
||||||
|
|
||||||
|
-- | 'dogBreed' Lens
|
||||||
|
dogBreedL :: Lens_' Dog (Maybe Text)
|
||||||
|
dogBreedL f Dog{..} = (\dogBreed -> Dog { dogBreed, ..} ) <$> f dogBreed
|
||||||
|
{-# INLINE dogBreedL #-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- * EnumArrays
|
-- * EnumArrays
|
||||||
|
@ -138,9 +138,9 @@ instance Arbitrary Capitalization where
|
|||||||
instance Arbitrary Cat where
|
instance Arbitrary Cat where
|
||||||
arbitrary =
|
arbitrary =
|
||||||
Cat
|
Cat
|
||||||
<$> arbitrary -- catDeclawed :: Maybe Bool
|
<$> arbitrary -- catClassName :: Text
|
||||||
<*> arbitrary -- catClassName :: Text
|
|
||||||
<*> arbitrary -- catColor :: Maybe Text
|
<*> arbitrary -- catColor :: Maybe Text
|
||||||
|
<*> arbitrary -- catDeclawed :: Maybe Bool
|
||||||
|
|
||||||
instance Arbitrary Category where
|
instance Arbitrary Category where
|
||||||
arbitrary =
|
arbitrary =
|
||||||
@ -161,9 +161,9 @@ instance Arbitrary Client where
|
|||||||
instance Arbitrary Dog where
|
instance Arbitrary Dog where
|
||||||
arbitrary =
|
arbitrary =
|
||||||
Dog
|
Dog
|
||||||
<$> arbitrary -- dogBreed :: Maybe Text
|
<$> arbitrary -- dogClassName :: Text
|
||||||
<*> arbitrary -- dogClassName :: Text
|
|
||||||
<*> arbitrary -- dogColor :: Maybe Text
|
<*> arbitrary -- dogColor :: Maybe Text
|
||||||
|
<*> arbitrary -- dogBreed :: Maybe Text
|
||||||
|
|
||||||
instance Arbitrary EnumArrays where
|
instance Arbitrary EnumArrays where
|
||||||
arbitrary =
|
arbitrary =
|
||||||
|
@ -1 +1 @@
|
|||||||
3.3.4-SNAPSHOT
|
4.0.0-SNAPSHOT
|
@ -13,10 +13,6 @@ Name | Type | Description | Notes
|
|||||||
## Enum: {String: String}
|
## Enum: {String: String}
|
||||||
|
|
||||||
|
|
||||||
* `UPPER` (value: `"UPPER"`)
|
|
||||||
|
|
||||||
* `lower` (value: `"lower"`)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ class Cat {
|
|||||||
* @alias module:model/Cat
|
* @alias module:model/Cat
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
constructor(className) {
|
constructor(className) {
|
||||||
Animal.initialize(this, className);
|
Animal.initialize(this, className);
|
||||||
|
@ -25,7 +25,7 @@ class Dog {
|
|||||||
* @alias module:model/Dog
|
* @alias module:model/Dog
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
constructor(className) {
|
constructor(className) {
|
||||||
Animal.initialize(this, className);
|
Animal.initialize(this, className);
|
||||||
|
@ -1 +1 @@
|
|||||||
3.3.4-SNAPSHOT
|
4.0.0-SNAPSHOT
|
@ -13,10 +13,6 @@ Name | Type | Description | Notes
|
|||||||
## Enum: {String: String}
|
## Enum: {String: String}
|
||||||
|
|
||||||
|
|
||||||
* `UPPER` (value: `"UPPER"`)
|
|
||||||
|
|
||||||
* `lower` (value: `"lower"`)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ class Cat {
|
|||||||
* @alias module:model/Cat
|
* @alias module:model/Cat
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
constructor(className) {
|
constructor(className) {
|
||||||
Animal.initialize(this, className);
|
Animal.initialize(this, className);
|
||||||
|
@ -25,7 +25,7 @@ class Dog {
|
|||||||
* @alias module:model/Dog
|
* @alias module:model/Dog
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
constructor(className) {
|
constructor(className) {
|
||||||
Animal.initialize(this, className);
|
Animal.initialize(this, className);
|
||||||
|
@ -1 +1 @@
|
|||||||
3.3.4-SNAPSHOT
|
4.0.0-SNAPSHOT
|
@ -13,10 +13,6 @@ Name | Type | Description | Notes
|
|||||||
## Enum: {String: String}
|
## Enum: {String: String}
|
||||||
|
|
||||||
|
|
||||||
* `UPPER` (value: `"UPPER"`)
|
|
||||||
|
|
||||||
* `lower` (value: `"lower"`)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
@ -44,7 +44,7 @@
|
|||||||
* @class
|
* @class
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
var exports = function(className) {
|
var exports = function(className) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
@ -44,7 +44,7 @@
|
|||||||
* @class
|
* @class
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
var exports = function(className) {
|
var exports = function(className) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -1 +1 @@
|
|||||||
3.3.4-SNAPSHOT
|
4.0.0-SNAPSHOT
|
@ -13,10 +13,6 @@ Name | Type | Description | Notes
|
|||||||
## Enum: {String: String}
|
## Enum: {String: String}
|
||||||
|
|
||||||
|
|
||||||
* `UPPER` (value: `"UPPER"`)
|
|
||||||
|
|
||||||
* `lower` (value: `"lower"`)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
@ -44,7 +44,7 @@
|
|||||||
* @class
|
* @class
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
var exports = function(className) {
|
var exports = function(className) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
@ -44,7 +44,7 @@
|
|||||||
* @class
|
* @class
|
||||||
* @extends module:model/Animal
|
* @extends module:model/Animal
|
||||||
* @implements module:model/Animal
|
* @implements module:model/Animal
|
||||||
* @param className {}
|
* @param className {String}
|
||||||
*/
|
*/
|
||||||
var exports = function(className) {
|
var exports = function(className) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
* https://openapi-generator.tech
|
* https://openapi-generator.tech
|
||||||
*
|
*
|
||||||
* OpenAPI Generator version: 3.3.4-SNAPSHOT
|
* OpenAPI Generator version: 4.0.0-SNAPSHOT
|
||||||
*
|
*
|
||||||
* Do not edit the class manually.
|
* Do not edit the class manually.
|
||||||
*
|
*
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user