class OpenApi(JsonModel): openapi = JsonModel.field(str, required=True) info = JsonModel.field(Info, required=True) servers = JsonModel.list(Server) paths = JsonModel.dict(PathItem, required=True) components = JsonModel.field(Components) security = JsonModel.list(SecurityRequirement) tags = JsonModel.list(Tag) externalDocs = JsonModel.field(ExternalDocs)
class Operation(JsonModel): tags = JsonModel.list(str) summary = JsonModel.field(str) description = JsonModel.field(str) externalDocs = JsonModel.field(ExternalDocs) operationid = JsonModel.field(str) parameters = JsonModel.list(Parameter) requestBody = JsonModel.field(RequestBody) responses = JsonModel.dict(Response, required=True) callbacks = JsonModel.dict(Callback, required=True) deprecated = JsonModel.field(bool) security = JsonModel.list(Any) servers = JsonModel.list(Server)
class PathItem(JsonModel): _ref = JsonModel.field(str, '$ref') summary = JsonModel.field(str) description = JsonModel.field(str) get = JsonModel.field(Operation) put = JsonModel.field(Operation) post = JsonModel.field(Operation) delete = JsonModel.field(Operation) options = JsonModel.field(Operation) head = JsonModel.field(Operation) patch = JsonModel.field(Operation) trace = JsonModel.field(Operation) servers = JsonModel.list(Server) parameters = JsonModel.list(Parameter)
class Schema(JsonModel): id = JsonModel.field(str) title = JsonModel.field(str) multipleOf = JsonModel.field(int) maximum = JsonModel.field(int) exclusiveMaximum = JsonModel.field(int) minimum = JsonModel.field(int) exclusiveMinimum = JsonModel.field(int) maxLength = JsonModel.field(int) minLength = JsonModel.field(int) pattern = JsonModel.field(str) maxItems = JsonModel.field(int) minItems = JsonModel.field(int) uniqueItems = JsonModel.field(bool) maxProperties = JsonModel.field(int) minPropoerties = JsonModel.field(int) required = JsonModel.list(str) enum = JsonModel.list(str) allOf = JsonModel.list('json_api.model.Schema') anyOf = JsonModel.list('json_api.model.Schema') oneOf = JsonModel.list('json_api.model.Schema') _not = JsonModel.list('json_api.model.Schema', 'not') items = JsonModel.field('json_api.model.Schema') properties = JsonModel.dict('json_api.model.Schema') additionalProperties = JsonModel.dict('json_api.model.Schema') description = JsonModel.field(str) format = JsonModel.field(str) nullable = JsonModel.field(bool) readOnly = JsonModel.field(bool) writeOnly = JsonModel.field(bool) xml = JsonModel.field(Xml) externalDocs = JsonModel.field(ExternalDocs) deprecated = JsonModel.field(bool)
class MediaType(JsonModel): schema = JsonModel.field('Schema') example = JsonModel.field(Any) examples = JsonModel.list(Example) encoding = JsonModel.dict(Encoding)