Qore Swagger Module Reference 2.2.1
Loading...
Searching...
No Matches
Swagger::SchemaObject Class Reference

defines an object in a schema More...

#include <Swagger.qm.dox.h>

Inheritance diagram for Swagger::SchemaObject:
[legend]

Public Member Methods

list< SchemaObjectallOf ()
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.3. More...
 
 check (bool serialize, bool request, string path, string method, string name, reference< auto > value)
 validates the value against the schema definition
 
string getQoreExample (reference< hash< RestQoreExampleCodeInfo > > rv, string name, bool decl)
 returns example Qore code for the object
 
- Public Member Methods inherited from Swagger::ObjectBase
 constructor ()
 Constructor.
 
 constructor (hash< auto > oh)
 Constructor. More...
 
 constructor (ObjectBase other)
 copy constructor
 
 initialize (hash< auto > oh)
 Initialize. More...
 
- Public Member Methods inherited from Swagger::SchemaBase
 constructor (SchemaBase other)
 Copy constructor.
 
 constructor (string objType, hash< auto > oh)
 Constructor. More...
 

Static Public Member Methods

static SchemaObject newSchemaObject (string name, auto error, SwaggerSchema swagger)
 throws an "INVALID-FIELD-TYPE" exception More...
 
static SchemaObject newSchemaObject (string name, hash< auto > oh, SwaggerSchema swagger, *bool require_items)
 returns a SchemaObject for the schema definition; resolves references More...
 
- Static Public Member Methods inherited from Swagger::SchemaBase
static bool checkValueType (reference< auto > value, string type)
 Checks the value against the type. More...
 

Public Attributes

auto additionalProperties
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4. More...
 
auto defaultVal
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2.
 
*string desc
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.1.
 
*string discriminator
 Adds support for polymorphism. More...
 
auto example
 A free-form property to include an example of an instance for this schema.
 
*ExternalDocumentationObject externalDocs
 Additional external documentation for this schema.
 
*string format
 The extending format for the previously mentioned type. See Data Type Formats for further details.
 
*SchemaObject items
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.1.
 
*int maxProperties
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.1.
 
*int minProperties
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.2.
 
string name
 the name of this object for documentation and example purposes
 
bool nullable = False
 extension that allows types to be nullable More...
 
hash< string, bool > nullable_properties
 extention to allow properties to be nullable
 
hash< string, SchemaObjectproperties
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4. More...
 
bool readOnly = False
 Relevant only for Schema "properties" definitions. Declares the property as "read only". More...
 
const ReferenceTypes = ...
 valid reference types
 
hash< string, bool > required
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.3. More...
 
const ScalarTypes = ...
 valid scalar types
 
*string title
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.1.
 
string type
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.2. More...
 
*XmlObject xml
 This MAY be used only on properties schemas. It has no effect on root schemas. More...
 
- Public Attributes inherited from Swagger::ObjectBase
hash< auto > vendorExtensions
 Allows extensions to the Swagger Schema. More...
 
- Public Attributes inherited from Swagger::SchemaBase
hash< string, bool > enum
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1. More...
 
*bool exclusiveMax
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.
 
*bool exclusiveMin
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.3.
 
*float maximum
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.
 
*int maxItems
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.2.
 
*int maxLength
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.1.
 
*float minimum
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.3.
 
*int minItems
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.3.
 
*int minLength
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.2.
 
*float multipleOf
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.1.
 
*string pattern
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.
 
*bool uniqueItems
 See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.4.
 

Private Member Methods

 checkIntern (bool serialize, bool request, string type, *string format, string path, string method, string name, hash< auto > v, reference< hash< auto > > value)
 validates a schema object against a value
 
 constructor (string name, hash< auto > oh, SwaggerSchema swagger, *string hash_str, *bool require_items)
 private constructor; use newSchemaObject() instead More...
 
- Private Member Methods inherited from Swagger::SchemaBase
 check (bool serialize, bool request, string type, *string format, *SchemaObject items, string path, string method, string name, reference< auto > value)
 validates the value against the schema definition
 
 checkArrayParam (bool serialize, bool request, SchemaObject items, string path, string method, string name, reference< softlist< auto > > value)
 validates the value against the schema definition
 
 checkIntern (bool serialize, bool request, string type, *string format, string path, string method, string name, binary v, reference value)
 converts binary values to strings for supported formats
 
 checkIntern (bool serialize, bool request, string type, *string format, string path, string method, string name, date v, reference value)
 converts strings to/from date/time values for supported formats
 
 checkIntern (bool serialize, bool request, string type, *string format, string path, string method, string name, string v, reference< auto > value)
 validates string values
 
auto getExampleValue (string type, *string format)
 returns an example value for the given type
 

Static Private Member Methods

static checkValueType (reference< auto > value, string type, *SchemaObject items, *string loc)
 validates default values
 
- Static Private Member Methods inherited from Swagger::SchemaBase
static throwInvalidType (string name, string actual, string expected, auto value)
 throws an SCHEMA-VALIDATION-ERROR exception
 

Detailed Description

defines an object in a schema

Member Function Documentation

◆ allOf()

list< SchemaObject > Swagger::SchemaObject::allOf ( )

See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.3.

List of SchemaObjects; MUST have at least one element.

Swagger allows combining and extending model definitions using the allOf property of JSON Schema, in effect offering model composition. allOf takes in an array of object definitions that are validated independently but together compose a single object.

◆ constructor()

Swagger::SchemaObject::constructor ( string  name,
hash< auto >  oh,
SwaggerSchema  swagger,
*string  hash_str,
*bool  require_items 
)
private

private constructor; use newSchemaObject() instead

Parameters
namethe name of the object
ohdeserialized hash from the source schema description describing an object in the schema
swaggerthe REST schema for resolving references
hash_strthe unique hash for the value being parsed
require_itemsrequire items for arrays
Exceptions
INVALID-FIELD-FORMATfield has invalid format
INVALID-FIELD-TYPEfield has invalid type
INVALID-FIELD-VALUEfield has invalid value
INVALID-REFERENCEcannot resolve reference; unknown attributes in description
REQUIRED-FIELD-MISSINGrequired field is missing

◆ newSchemaObject() [1/2]

static SchemaObject Swagger::SchemaObject::newSchemaObject ( string  name,
auto  error,
SwaggerSchema  swagger 
)
static

throws an "INVALID-FIELD-TYPE" exception

Exceptions
INVALID-FIELD-TYPEdue to a type error in the call

◆ newSchemaObject() [2/2]

static SchemaObject Swagger::SchemaObject::newSchemaObject ( string  name,
hash< auto >  oh,
SwaggerSchema  swagger,
*bool  require_items 
)
static

returns a SchemaObject for the schema definition; resolves references

Parameters
namethe name of the object
ohdeserialized hash from the source schema description describing an object in the schema
swaggerthe REST schema for resolving references
Exceptions
INVALID-FIELD-FORMATfield has invalid format
INVALID-FIELD-TYPEfield has invalid type
INVALID-FIELD-VALUEfield has invalid value
INVALID-REFERENCEcannot resolve reference; unknown attributes in description
REQUIRED-FIELD-MISSINGrequired field is missing

Member Data Documentation

◆ additionalProperties

auto Swagger::SchemaObject::additionalProperties

See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4.

MUST be a bool or an object. If it is an object, it MUST also be a valid JSON Schema (SchemaObject).

◆ discriminator

*string Swagger::SchemaObject::discriminator

Adds support for polymorphism.

The discriminator is the schema property name that is used to differentiate between other schemas that inherit this schema. The property name used MUST be defined at this schema and it MUST be in the required property list. When used, the value MUST be the name of this schema or any schema that inherits it.

While composition offers model extensibility, it does not imply a hierarchy between the models. To support polymorphism, Swagger adds the support of the discriminator field. When used, the discriminator will be the name of the property used to decide which schema definition is used to validate the structure of the model. As such, the discriminator field MUST be a required field. The value of the chosen property has to be the friendly name given to the model under the definitions property. As such, inline schema definitions, which do not have a given id, cannot be used in polymorphism.

◆ nullable

bool Swagger::SchemaObject::nullable = False

extension that allows types to be nullable

the OpenAPI specification 2.0 otherwise does not allow for nullable types

◆ properties

hash<string, SchemaObject> Swagger::SchemaObject::properties

See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4.

MUST be an object. Each value of this object MUST be an object, and each object MUST be a valid JSON Schema (SchemaObject).

◆ readOnly

bool Swagger::SchemaObject::readOnly = False

Relevant only for Schema "properties" definitions. Declares the property as "read only".

Declares the property as "read only". This means that it MAY be sent as part of a response but MUST NOT be sent as part of the request. Properties marked as readOnly being true SHOULD NOT be in the required list of the defined schema. Default value is false.

◆ required

hash<string, bool> Swagger::SchemaObject::required

See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.3.

Set of strings. Must have at least one element.

◆ type

string Swagger::SchemaObject::type

See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.2.

MUST be either a string or an array (list). If it's an array, it's elements MUST be strings and MUST be unique.

◆ xml

*XmlObject Swagger::SchemaObject::xml

This MAY be used only on properties schemas. It has no effect on root schemas.

Adds Additional metadata to describe the XML representation format of this property.

The xml property allows extra definitions when translating the JSON definition to XML. The XmlObject contains additional information about the available options.