in src/aaz_dev/swagger/model/schema/cmd_builder.py [0:0]
def build_schema(self, schema):
schema_type = getattr(schema, 'type', None)
if schema_type == "string":
if schema.format is None or schema.format == "uri":
if self.in_base:
model = CMDStringSchemaBase()
else:
model = CMDStringSchema()
elif schema.format == "byte":
if self.in_base:
model = CMDByteSchemaBase()
else:
model = CMDByteSchema()
elif schema.format == "binary":
if self.in_base:
model = CMDBinarySchemaBase()
else:
model = CMDBinarySchema()
elif schema.format == "date":
if self.in_base:
model = CMDDateSchemaBase()
else:
model = CMDDateSchema()
elif schema.format == "date-time":
if self.in_base:
model = CMDDateTimeSchemaBase()
else:
model = CMDDateTimeSchema()
elif schema.format == "time":
if self.in_base:
model = CMDTimeSchemaBase()
else:
model = CMDTimeSchema()
elif schema.format == "password":
if self.in_base:
model = CMDPasswordSchemaBase()
else:
model = CMDPasswordSchema()
elif schema.format == "duration":
if self.in_base:
model = CMDDurationSchemaBase()
else:
model = CMDDurationSchema()
elif schema.format == "uuid":
if self.in_base:
model = CMDUuidSchemaBase()
else:
model = CMDUuidSchema()
elif schema.format == "arm-id":
if self.in_base:
model = CMDResourceIdSchemaBase()
else:
model = CMDResourceIdSchema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
elif schema_type == "integer":
if schema.format is None:
if self.in_base:
model = CMDIntegerSchemaBase()
else:
model = CMDIntegerSchema()
elif schema.format == "int32":
if self.in_base:
model = CMDInteger32SchemaBase()
else:
model = CMDInteger32Schema()
elif schema.format == "int64":
if self.in_base:
model = CMDInteger64SchemaBase()
else:
model = CMDInteger64Schema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
elif schema_type == "boolean":
if schema.format is None:
if self.in_base:
model = CMDBooleanSchemaBase()
else:
model = CMDBooleanSchema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
elif schema_type == "number":
if schema.format is None:
if self.in_base:
model = CMDFloatSchemaBase()
else:
model = CMDFloatSchema()
elif schema.format == "float":
if self.in_base:
model = CMDFloat32SchemaBase()
else:
model = CMDFloat32Schema()
elif schema.format == "double":
if self.in_base:
model = CMDFloat64SchemaBase()
else:
model = CMDFloat64Schema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
elif schema_type == "array":
if schema.format is None:
if self.in_base:
model = CMDArraySchemaBase()
else:
model = CMDArraySchema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
elif schema_type == "object" or getattr(schema, "properties", None) or \
getattr(schema, "additional_properties", None):
if schema.format is None:
if self.in_base:
model = CMDObjectSchemaBase()
else:
model = CMDObjectSchema()
else:
raise exceptions.InvalidSwaggerValueError(
f"format is not supported", key=getattr(schema, "traces", None), value=[schema_type, schema.format])
# for swagger schema only
elif getattr(schema, "all_of", None) is not None:
model = self.build_schema(schema.all_of[0])
elif getattr(schema, "ref_instance", None) is not None:
model = self.build_schema(schema.ref_instance)
elif schema_type is None: # according to the swagger spec, the type is any if not defined
if self.in_base:
model = CMDAnyTypeSchemaBase()
else:
model = CMDAnyTypeSchema()
else:
raise exceptions.InvalidSwaggerValueError(
f"type is not supported", key=getattr(schema, "traces", None), value=[schema_type])
model.read_only = self.read_only
model.frozen = self.frozen
return model