322const JsonSerialization = ...;
410 hash<string, bool>
enum;
440 check(
bool serialize,
bool request,
string type, *
string format, *
SchemaObject items,
string path,
string method,
string name, reference<auto> value);
445 checkStringIntern(
string path,
string method,
string name,
string value);
450 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, list<auto> v, reference<list> value);
455 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, hash<auto> v, reference<hash> value);
460 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
int v, reference<auto> value);
465 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, number v, reference<number> value);
470 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
float v, reference<number> value);
475 checkInternNumber(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
auto v, reference<auto> value);
481 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, binary v, reference value);
487 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
string v, reference<auto> value);
493 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, date v, reference<auto> value);
498 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
bool v, reference<bool> value);
503 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, nothing v, reference<nothing> value);
758 hash<string, hash<string, SchemaObject>>
so_map;
761 hash<string, hash<string, AbstractDataProviderType>>
typemap;
784 constructor(
string schema_source, hash<auto> oh, *hash<auto> opts) ;
800 constructor(LoggerInterface logger,
string schema_source, hash<auto> oh, *hash<auto> opts) ;
809 *
int getParseFlags();
815 *
string getQueryDateFormat();
852 replaceTypeForReference(
string rstr, AbstractDataProviderType t);
856 AbstractDataProviderType
getType(
string path,
string typestr, *
string format, *
SchemaObject arrayItems,
bool required = True);
860 *AbstractDataProviderType checkType(
string path,
string typestr, *
string format, *
SchemaObject arrayItems,
bool required = True, reference<string>
id);
887 static *AbstractDataProviderType
getCacheType(reference<hash<string, AbstractDataProviderType>> h,
string key);
890 AbstractDataField
getFieldFromParameter(
string path,
string name,
string type, *
string format, *
SchemaObject arrayItems, *
string desc,
bool required, *list<auto> allowed_values,
auto default_value);
934 hash<RestSchemaValidator::RestRequestClientInfo>
processRequestImpl(
string method,
string path,
auto body, *hash<auto> headers, *softlist<string> content_types);
951 hash<RestSchemaValidator::RestRequestServerInfo>
parseRequestImpl(
string method,
string path, *data http_body, reference<hash> headers);
976 hash<HttpResponseInfo>
processResponseImpl(
string method,
string path,
int code,
auto response_body, *hash<auto> headers, *softlist<string> content_types);
992 hash<RestSchemaValidator::RestResponseClientInfo>
parseResponseImpl(
string method,
string path,
int code, *data response_body, hash<auto> hdr);
1047 hash<RestSchemaValidator::RestExampleRequestInfo>
getExampleRequestImpl(
string method,
string path, *softlist<string> content_types);
1197 bool checkResponseTextPlain(reference<hash<HttpResponseInfo>> resp,
auto body, hash<string, bool> mime_types, *list<auto> content_types);
1319 constructor(
string full_path, list<auto> l,
int offset, hash<auto> oh);
1650 getQoreExampleParams(reference<hash<auto>> query, reference<hash<auto>> headers, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1656 doDefaultParams(reference<hash<UriQueryInfo>> h, reference<hash> headers, reference<auto>
body, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1662 checkMissingParams(hash<UriQueryInfo> h, *hash<auto> headers,
auto body, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1770 const OtherParameterMap = ...;
2276 hash<string, hash<string, AbstractDataField>> fieldmap;
2306 addProperties(hash<string, auto> props, *
int opt_flags);
2310 replaceType(AbstractDataProviderType t);
2313 AbstractDataProviderType getDataType(
bool required = True, *HTTPClient rest);
2332 static *AbstractDataField
getCacheField(reference<hash<string, AbstractDataField>> h,
string key);
2353 auto getExampleValue(*hash<string, bool> emap, *
string fname);
2361 checkObjectProperty(
string name,
string prop);
2366 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, nothing v, reference<nothing> value);
2610 const SwaggerListToStringSet = -1;
2612 const SwaggerListToAnySet = -2;
2613 const SwaggerListToHashOfStrings = -3;
2615 const TypeMap = ...;
2629 required_field(
string objType, hash<auto> oh,
string name,
int typeCode, reference<auto> target, *
int opt_flags);
2643 required_field(
string objType, hash<auto> oh,
string name, hash<string, bool> typeCodes, reference<auto> target);
2658 bool optional_field(
string objType, hash<auto> oh,
string name,
int typeCode, reference<auto> target, *
int opt_flags);
2673 bool optional_field(
string objType, hash<auto> oh,
string name, hash<string, bool> typeCodes, reference<auto> target);
2677 *
bool check_type_code(
string objType, hash<auto> oh,
string name,
auto val,
int typeCode, *
int opt_flags);
2681 get_value(
string objType,
string name,
int typeCode,
auto val, reference<auto> target);
2685 string get_qore_type(
string name,
string type, *
string format, *SchemaObject items);
static auto deserialize(InputStream stream, *int flags)
serialize(OutputStream stream, *int flags)
Describes a single operation parameter.
Definition Swagger.qm.dox.h:1739
bool required
Determines whether this parameter is mandatory.
Definition Swagger.qm.dox.h:1767
auto getDefaultValue()
returns the default value of the parameter (default: NOTHING)
abstract check(bool serialize, bool request, string path, string method, string name, reference value)
verifies the parameter in an actual REST API call
constructor(hash< auto > oh, *int opt_flags)
Constructor.
string name
Required. The name of the parameter. Parameter names are case sensitive.
Definition Swagger.qm.dox.h:1750
string inLoc
Required. The location of the parameter.
Definition Swagger.qm.dox.h:1756
static AbstractParameterObject newParameter(string name, hash< auto > oh, SwaggerSchema swagger)
gets a concrete instance of an AbstractParameterObject
*string desc
A brief description of the parameter. This could contain examples of use. GFM syntax can be used for ...
Definition Swagger.qm.dox.h:1759
AbstractParameterObject specialization for "body" parameters.
Definition Swagger.qm.dox.h:1798
string getQoreExample(reference< hash< RestQoreExampleCodeInfo > > rv)
generates Qore example code for a REST API call
SchemaObject schema
Required. The schema defining the type used for the body parameter.
Definition Swagger.qm.dox.h:1802
constructor(hash< auto > oh, SwaggerSchema swagger)
Constructor.
check(bool serialize, bool request, string path, string method, string name, reference< auto > value)
verifies the parameter in an actual REST API call
auto getExampleValue(*hash< string, bool > emap, *string fname)
Allows referencing an external resource for extended documentation.
Definition Swagger.qm.dox.h:1682
*string desc
A short description of the target documentation. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1686
constructor(hash< auto > oh)
Constructor.
string url
Required. The URL for the target documentation. Value MUST be in the format of a URL.
Definition Swagger.qm.dox.h:1689
The object provides metadata about the API. The metadata can be used by the clients if needed,...
Definition Swagger.qm.dox.h:1209
string version
Required. Provides the version of the application API (not to be confused with the specification vers...
Definition Swagger.qm.dox.h:1222
constructor(hash< auto > oh)
Constructor.
string title
Required. The title of the application.
Definition Swagger.qm.dox.h:1213
*LicenseObject license
The license information for the exposed API.
Definition Swagger.qm.dox.h:1228
*ContactObject contact
The contact information for the exposed API.
Definition Swagger.qm.dox.h:1225
*string termsOfService
The Terms of Service for the API.
Definition Swagger.qm.dox.h:1219
*string desc
A short description of the application. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1216
License information for the exposed API.
Definition Swagger.qm.dox.h:1265
constructor(hash< auto > oh)
Constructor.
string name
Required. The license name used for the API.
Definition Swagger.qm.dox.h:1269
*string url
A URL to the license used for the API. MUST be in the format of a URL.
Definition Swagger.qm.dox.h:1272
Base class for the Swagger specification objects, wrapping the vendor extensions.
Definition Swagger.qm.dox.h:340
initialize(hash< auto > oh)
Initialize.
hash< auto > vendorExtensions
Allows extensions to the Swagger Schema.
Definition Swagger.qm.dox.h:348
constructor(ObjectBase other)
copy constructor
constructor(hash< auto > oh)
Constructor.
constructor()
Constructor.
Describes a single API operation on a path.
Definition Swagger.qm.dox.h:1464
list< string > schemes
The transfer protocol for the operation.
Definition Swagger.qm.dox.h:1534
*string desc
A verbose explanation of the operation behavior. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1483
checkMissingParams(hash< UriQueryInfo > h, *hash< auto > headers, auto body, hash< string, AbstractParameterObject > parameters, *hash< string, AbstractParameterObject > child_params)
checks for missing params
hash< string, bool > produces
A hash of MIME types (strings) the operation can produce.
Definition Swagger.qm.dox.h:1518
*ExternalDocumentationObject externalDocs
Additional external documentation for this operation.
Definition Swagger.qm.dox.h:1493
string path
the URI path for the operation
Definition Swagger.qm.dox.h:1468
validateResponse(string method, string path, PathItemObject pio, int http_code, reference< auto > response_body, reference< hash< string, bool > > mime_types, bool deserialize=True)
validates a response against the response definition, if any
*string summary
A short summary of what the operation does.
Definition Swagger.qm.dox.h:1480
hash< RestQoreExampleCodeInfo > getQoreExampleRequest(string method, string path, PathItemObject pio, SwaggerSchema swagger)
returns example Qore code for the given request
string method
the HTTP method for the operation
Definition Swagger.qm.dox.h:1471
AbstractParameterObject body
The body parameter, if defined.
Definition Swagger.qm.dox.h:1524
hash< RestQoreExampleCodeInfo > getQoreExampleResponse(string method, string path, int code)
returns example Qore code for the given response
hash< RestExampleResponseInfo > getExampleResponse(string method, string path, int code, reference< auto > body)
returns a hash of example message information for the given request
error(string err, string fmt,...)
raises an exception with context information
parseRequest(PathItemObject pio, reference< hash< UriQueryInfo > > h, reference< auto > body, reference< hash > headers)
parses and processes a REST request on the server side
doDefaultParams(reference< hash< UriQueryInfo > > h, reference< hash > headers, reference< auto > body, hash< string, AbstractParameterObject > parameters, *hash< string, AbstractParameterObject > child_params)
add default parameters
ResponsesObject responses
Required. The list of possible responses as they are returned from executing this operation.
Definition Swagger.qm.dox.h:1527
*data getRequestBody(PathItemObject pio, auto body, reference< hash< auto > > headers, *bool freeform)
Processes a generated request.
list tags
A list of tags (strings or TagObjects) for API documentation control.
Definition Swagger.qm.dox.h:1477
*ResponseObject getResponse(int code)
returns the ResponseObject for hthe given HTTP code or NOTHING if none is configured
*string operationId
Unique string used to identify the operation.
Definition Swagger.qm.dox.h:1502
hash< string, AbstractParameterObject > formData
formData parameter; if defined for this operation, body parameter will be excluded
Definition Swagger.qm.dox.h:1521
hash< RestSchemaValidator::RestExampleRequestInfo > getExampleRequest(string method, string path, PathItemObject pio, SwaggerSchema swagger, reference rbody)
returns a hash of example message information for the given request
list< hash< string, list< string > > > security
A declaration of which security schemes are applied for this operation.
Definition Swagger.qm.dox.h:1549
validateRequest(bool serialize, PathItemObject pio, reference< hash< UriQueryInfo > > h, reference< auto > body, reference< hash > headers, *reference< hash< string, bool > > mime_types, *bool freeform)
processes a REST API client-side request to the operation
hash< string, bool > consumes
A list of MIME types (strings) the operation can consume.
Definition Swagger.qm.dox.h:1510
bool deprec
Declares this operation to be deprecated.
Definition Swagger.qm.dox.h:1490
constructor(string path, string method, hash< auto > oh, SwaggerSchema swagger)
Constructor.
AbstractParameterObject specialization for parameters other than "body" and "formData"
Definition Swagger.qm.dox.h:1935
constructor(string name, hash< auto > oh, SwaggerSchema swagger)
Constructor.
setType(SwaggerSchema swagger)
Sets the parameter type.
const ParameterTypes
valid parameter types
Definition Swagger.qm.dox.h:1939
Common class for objects that have parameters.
Definition Swagger.qm.dox.h:588
constructor(hash< auto > oh)
Creates the object from the hash definition.
addParameter(AbstractParameterObject p)
Adds a parameter to the group.
addParameter(string key, AbstractParameterObject p)
Adds a parameter to the group.
hash< string, AbstractParameterObject > parameters()
A hash of parameters for this object.
string query_obj
Any query param with type "object"? (OpenAPI 3 compatible)
Definition Swagger.qm.dox.h:598
items schema object for non-body parameters
Definition Swagger.qm.dox.h:2403
*string collectionFormat
Determines the format of the array if type array is used.
Definition Swagger.qm.dox.h:2420
static ParameterItemsSchemaObject newSchemaObject(string name, hash< auto > oh, SwaggerSchema swagger, *string inLoc)
returns a SchemaObject for the schema definition; resolves references
constructor(SchemaObject o)
Copy constructor.
constructor(string name, hash< auto > oh, SwaggerSchema swagger, *string inLoc)
private constructor; use newSchemaObject() instead
static ParameterItemsSchemaObject newSchemaObject(string name, auto error, SwaggerSchema swagger, *string inLoc)
throws an "INVALID-FIELD-TYPE" exception
Holds the relative paths to the individual endpoints.
Definition Swagger.qm.dox.h:1292
constructor(hash< auto > oh, string pfx, SwaggerSchema swagger)
creates the object
constructor(string full_path, list< auto > l, int offset, hash< auto > oh)
private constructor
add(string full_path, list< auto > l, int offset, hash< auto > oh, SwaggerSchema swagger)
adds a component or a Path Item Object to the tree
hash< string, PathComponent > paths
hash of non-wildcard paths to the next level
Definition Swagger.qm.dox.h:1309
PathItemObject match(list< auto > path)
returns either a PathItemObject for the path
getPathOperationHash(reference< hash< string, list< string > > > h)
returns a hash of URI paths as keys with values as lists of supported HTTP methods
*PathItemObject tryMatch(list< auto > path)
returns either a PathItemObject for the path
string name
current component name
Definition Swagger.qm.dox.h:1300
*PathComponent wildcard
if there is a wildcard to a PathComponent
Definition Swagger.qm.dox.h:1303
string pfx
path prefix
Definition Swagger.qm.dox.h:1297
*PathItemObject pio
the PathItemObject associated with this path (if any)
Definition Swagger.qm.dox.h:1306
Describes the operations available on a single path.
Definition Swagger.qm.dox.h:1395
softlist getMethods()
returns a list of HTTP methods supported by this object
const ObjType
This objet type.
Definition Swagger.qm.dox.h:1424
merge(string path, hash< auto > oh, SwaggerSchema swagger)
Try to merge another PathItemObject description for the same path into this one.
*string ref
Allows for an external definition of this path item.
Definition Swagger.qm.dox.h:1404
hash< string, OperationObject > operations
A hash of OperationObjects correspoding to different methods.
Definition Swagger.qm.dox.h:1421
OperationObject getOperation(string method, string path)
returns the operation object for the given method
AbstractParameterObject body
The body parameter, if defined.
Definition Swagger.qm.dox.h:1407
constructor(string path, hash< auto > oh, SwaggerSchema swagger)
Constructor.
This class stores the path tree for URI path matching.
Definition Swagger.qm.dox.h:1349
*PathItemObject tryMatch(string path)
matches a URI path with a PathItemObject
PathItemObject match(string path)
matches a URI path with a PathItemObject
constructor(hash< auto > oh, SwaggerSchema swagger)
Constructor.
PathComponent paths
the tree of path components for path matching with wildcards
Definition Swagger.qm.dox.h:1354
hash< string, list< string > > getPathOperationHash()
returns a hash of URI paths as keys with values as lists of supported HTTP methods
Describes a single response from an API Operation.
Definition Swagger.qm.dox.h:1995
*SchemaObject schema
A definition of the response structure.
Definition Swagger.qm.dox.h:2008
string desc
Required. A short description of the response. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1999
hash< auto > headers
A hash of headers that are (can be) sent with the response.
Definition Swagger.qm.dox.h:2014
hash examples
A hash of example response messages.
Definition Swagger.qm.dox.h:2024
static ResponseObject newResponse(string key, hash< auto > oh, SwaggerSchema swagger)
returns a new ResponseObject corresponding to the schema definition passed
constructor(string key, hash< auto > oh, SwaggerSchema swagger)
private constructor; use newResponse() instead
contains the possible responses for an operation
Definition Swagger.qm.dox.h:1963
ResponseObject defaultResp
Definition Swagger.qm.dox.h:1970
constructor(string path, string method, hash< auto > oh, SwaggerSchema swagger)
Constructor.
hash< string, ResponseObject > responses
Definition Swagger.qm.dox.h:1977
Base used by OtherParameter, HeaderObject and SchemaObject.
Definition Swagger.qm.dox.h:373
checkArrayParam(bool serialize, bool request, SchemaObject items, string path, string method, string name, reference< list< auto > > value)
validates the value against the schema definition
constructor()
Private constructor.
*bool exclusiveMin
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.3.
Definition Swagger.qm.dox.h:386
*int minItems
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.3.
Definition Swagger.qm.dox.h:401
checkIntern(bool serialize, bool request, string type, *string format, string path, string method, string name, date v, reference< auto > value)
converts dates to/from string or int values for supported formats
*float multipleOf
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.1.
Definition Swagger.qm.dox.h:413
checkIntern(bool serialize, bool request, string type, *string format, string path, string method, string name, string v, reference< auto > value)
validates string values
constructor(string objType, hash< auto > oh)
Constructor.
*int maxItems
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.2.
Definition Swagger.qm.dox.h:398
*int minLength
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.2.
Definition Swagger.qm.dox.h:392
static throwInvalidType(string name, string actual, string expected, auto value)
throws an SCHEMA-VALIDATION-ERROR exception
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
constructor(SchemaBase other)
Copy constructor.
*int maxLength
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.1.
Definition Swagger.qm.dox.h:389
*bool exclusiveMax
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.
Definition Swagger.qm.dox.h:383
*softfloat maximum
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.
Definition Swagger.qm.dox.h:377
*bool uniqueItems
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.4.
Definition Swagger.qm.dox.h:404
static bool checkValueType(reference< auto > value, string type)
Checks the value against the type.
auto getExampleValueWithFormat(string type, *string format, *string fname)
returns an example value for the given type
*softfloat minimum
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.3.
Definition Swagger.qm.dox.h:380
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
*string pattern
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.
Definition Swagger.qm.dox.h:395
defines an object in a schema
Definition Swagger.qm.dox.h:2138
auto additionalProperties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4.
Definition Swagger.qm.dox.h:2192
bool readOnly
Relevant only for Schema "properties" definitions. Declares the property as "read only".
Definition Swagger.qm.dox.h:2229
bool nullable
extension that allows types to be nullable
Definition Swagger.qm.dox.h:2175
hash< string, SchemaObject > properties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4.
Definition Swagger.qm.dox.h:2182
*string format
The extending format for the previously mentioned type. See Data Type Formats for further details.
Definition Swagger.qm.dox.h:2152
static SchemaObject newSchemaObject(string name, auto error, SwaggerSchema swagger)
throws an "INVALID-FIELD-TYPE" exception
static SchemaObject newSchemaObject(string name, hash< auto > oh, SwaggerSchema swagger, *bool require_items)
returns a SchemaObject for the schema definition; resolves references
check(bool serialize, bool request, string path, string method, string name, reference< auto > value)
validates the value against the schema definition
constructor(string name, hash< auto > oh, SwaggerSchema swagger, *string hash_str, *bool require_items)
private constructor; use newSchemaObject() instead
static *AbstractDataField getCacheField(reference< hash< string, AbstractDataField > > h, string key)
Returns a field object from the given cache.
list< SchemaObject > allOf()
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.3.
*int maxProperties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.1.
Definition Swagger.qm.dox.h:2167
string name
the name of this object for documentation and example purposes
Definition Swagger.qm.dox.h:2142
string type
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.2.
Definition Swagger.qm.dox.h:2149
*string discriminator
Adds support for polymorphism.
Definition Swagger.qm.dox.h:2219
*SchemaObject items
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.1.
Definition Swagger.qm.dox.h:2161
*XmlObject xml
This MAY be used only on properties schemas. It has no effect on root schemas.
Definition Swagger.qm.dox.h:2250
constructor(SchemaObject o)
Private copy constructor.
hash< string, bool > nullable_properties
extention to allow properties to be nullable
Definition Swagger.qm.dox.h:2185
AbstractDataProviderType getDataTypeIntern(string path, bool required=True, *HTTPClient rest)
Returns the data type for the given schema.
checkIntern(bool serialize, bool request, string type, *string format, string path, string method, string name, hash< auto > v, reference< hash< auto > > value, *bool no_check_others)
validates a schema object against a value
*AbstractDataProviderType dataType
The data type of the schema (required)
Definition Swagger.qm.dox.h:2259
string getQoreExample(reference< hash< RestQoreExampleCodeInfo > > rv, string name, bool decl)
returns example Qore code for the object
AbstractDataField getField(string name, *string desc, bool required=True, *HTTPClient rest, auto default_value)
Returns a field definition from the Swagger parameter.
AbstractDataField getFieldIntern(string path, string name, *string desc, bool required=True, *HTTPClient rest, auto default_value, *string rstr)
Returns a field definition from the Swagger parameter.
AbstractDataField getField(string path, string name, *string desc, bool required=True, *HTTPClient rest, auto default_value)
Returns a field definition from the Swagger parameter.
*ExternalDocumentationObject externalDocs
Additional external documentation for this schema.
Definition Swagger.qm.dox.h:2253
const ScalarTypes
valid scalar types
Definition Swagger.qm.dox.h:2265
static checkValueType(reference< auto > value, string type, *SchemaObject items, *string loc)
validates default values
*string desc
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.1.
Definition Swagger.qm.dox.h:2158
*AbstractDataProviderType orNothingDataType
The data type of the schema (not required)
Definition Swagger.qm.dox.h:2262
auto defaultVal
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2.
Definition Swagger.qm.dox.h:2164
*string title
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.1.
Definition Swagger.qm.dox.h:2155
getSchemaObjectFields(HashDataType type, string path, auto def_body)
Sets fields of a schema object.
hash< string, bool > required
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.3.
Definition Swagger.qm.dox.h:2198
auto example
A free-form property to include an example of an instance for this schema.
Definition Swagger.qm.dox.h:2256
const ReferenceTypes
valid reference types
Definition Swagger.qm.dox.h:2269
*int minProperties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.2.
Definition Swagger.qm.dox.h:2170
Lists the available scopes for an OAuth2 security scheme.
Definition Swagger.qm.dox.h:2586
constructor(hash< auto > oh)
Constructor.
hash< string, string > fields
Maps between a name of a scope to a short description of it (as the value of the property).
Definition Swagger.qm.dox.h:2593
Allows the definition of a security scheme that can be used by the operations.
Definition Swagger.qm.dox.h:2520
*string flow
The flow used by the OAuth2 security scheme.
Definition Swagger.qm.dox.h:2547
*string authorizationUrl
The authorization URL to be used for this flow. This SHOULD be in the form of a URL.
Definition Swagger.qm.dox.h:2553
string type
Required. The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
Definition Swagger.qm.dox.h:2524
*string inLoc
The location of the API key. Valid values are "query" or "header".
Definition Swagger.qm.dox.h:2539
constructor(hash< auto > oh)
Constructor.
*string name
The name of the header or query parameter to be used.
Definition Swagger.qm.dox.h:2533
*ScopesObject scopes
The available scopes for the OAuth2 security scheme.
Definition Swagger.qm.dox.h:2569
*string desc
A short description for security scheme.
Definition Swagger.qm.dox.h:2527
*string tokenUrl
The token URL to be used for this flow. This SHOULD be in the form of a URL.
Definition Swagger.qm.dox.h:2559
Used for loading the Swagger definitions.
Definition Swagger.qm.dox.h:526
static string detectSourceEncoding(string str)
tries to determine the Swagger schema source encoding automatically
static SwaggerSchema fromString(string swaggerSpecification, *bool json, *hash< auto > opts)
Load Swagger definition from a string.
static hash< auto > parseSchemaSource(string str, string ser)
parses the source encoding from the given string
static hash< auto > parseSchemaContent(string filepath, string str)
Load a schema definition from a file.
static SwaggerSchema fromUrl(string url, *bool json, *hash< auto > opts)
Load Swagger definition from a URL or file path.
static SwaggerSchema fromFile(string filepath, *hash< auto > opts)
Load Swagger definition from a file.
This is the root document object for the API specification. It combines what previously was the Resou...
Definition Swagger.qm.dox.h:614
hash< RestQoreExampleCodeInfo > getQoreExampleResponseImpl(string method, string path, int code)
returns example Qore code for the given response
hash< HttpResponseInfo > processResponseImpl(string method, string path, int code, auto response_body, *hash< auto > headers, *softlist< string > content_types)
processes a REST response with a serialized message body, validates any response data against schema ...
AbstractDataProviderType getSchemaDataType(string path, SchemaObject schema, bool required=True, *HTTPClient rest)
Returns the data type for the given schema.
AbstractDataProvider getDataProviderImpl(HTTPClient rest)
returns a data provider object for this connection
setTimeZoneLocaleImpl(*TimeZone tz)
Allows the time zone locale to be set for serialization / deserialization.
addFieldsFromParameters(HashDataType rv, hash< string, AbstractParameterObject > parameters, reference< bool > required)
Adds field definitions to a hash type from Swagger parameters.
hash< RestSchemaValidator::RestRequestServerInfo > parseRequestImpl(string method, string path, *data http_body, reference< hash > headers)
processes and parses a client request and returns the deserialized message body (if any)
bool checkResponseTextPlain(reference< hash< HttpResponseInfo > > resp, auto body, hash< string, bool > mime_types, *list< auto > content_types)
Check if the response body can be sent as text/plain and if so, modify the response hash.
hash< string, hash< string, AbstractDataProviderType > > typemap
type map; identifer -> {Y,N} -> type
Definition Swagger.qm.dox.h:761
hash< string, bool > produces
A set of MIME types (strings) the APIs can produce.
Definition Swagger.qm.dox.h:667
hash< RestQoreExampleCodeInfo > getQoreExampleRequestImpl(string method, string path)
returns example Qore code for the given request
string getTargetUrlImpl()
returns the target URL for the schema
AbstractDataProviderType getTypeIntern(string path, string typestr, *string format, *SchemaObject arrayItems, bool required=True)
Returns the data type corresponding to the values.
setBasePathImpl(string basePath)
overrides the basePath value
hash< string, SchemaObject > definitions()
An object to hold data types produced and consumed by operations.
bool checkResponseContentTypeHeader(reference< hash< HttpResponseInfo > > resp, auto body, *hash< auto > headers)
Check if the headers contain a content-type header and if so, modify the response hash.
hash< string, hash< string, SchemaObject > > so_map
maps name -> SHA1 hash of the config -> schema objects for recursive references
Definition Swagger.qm.dox.h:758
hash< string, list< string > > getPathOperationHashImpl()
returns a hash of URI paths as keys with values as lists of supported HTTP methods
*hash< auto > source_definition_hash
the raw parsed definitions; used for resolving out-of-order references
Definition Swagger.qm.dox.h:767
*string def_path
the default path to use when retrieving external schema references
Definition Swagger.qm.dox.h:738
hash< HttpResponseInfo > processResponseIntern(string method, string path, int code, auto response_body, *hash< auto > headers, *softlist< string > content_types, bool compact_serialization)
processes a REST response with a serialized message body, validates any response data against schema ...
AbstractDataField getFieldFromParameter(string path, string name, string type, *string format, *SchemaObject arrayItems, *string desc, bool required, *list< auto > allowed_values, auto default_value)
Returns a field from a Swagger parameter.
addFieldsFromParametersIntern(HashDataType rv, hash< string, AbstractParameterObject > parameters, reference< bool > required)
Adds field definitions from Swagger parameters.
hash< string, softlist< string > > security
A declaration of which security schemes are applied for the API as a whole.
Definition Swagger.qm.dox.h:699
hash< string, ResponseObject > responses
Response definitions that can be used across operations. This property does not define global respons...
Definition Swagger.qm.dox.h:679
*ExternalDocumentationObject externalDocs
Additional external documentation.
Definition Swagger.qm.dox.h:717
constructor(LoggerInterface logger, string schema_source, hash< auto > oh, *hash< auto > opts)
Builds the schema representation from the deserialized schema hash describing the root document objec...
hash< RestSchemaValidator::RestExampleRequestInfo > getExampleRequestImpl(string method, string path, *softlist< string > content_types)
returns a hash of example message information for the given request
string getBasePathImpl()
returns the base path prefix for all requests in this schema
ResponseObject resolveResponse(string name, string refstr, hash< auto > oh)
resolves a reference to a response
AbstractParameterObject resolveParameter(string name, string refstr, hash< auto > oh)
resolves a reference to a parameter
hash< RestSchemaValidator::RestRequestClientInfo > processRequestIntern(string method, string path, auto body, *hash< auto > headers, *softlist< string > content_types, bool compact_serialization)
processes a client-side REST request and returns a hash that can be used to make the outgoing client-...
bool checkRequestContentTypeHeader(reference< hash< RestRequestClientInfo > > req, auto body, *hash< auto > headers)
Check if the headers contain a content-type header and if so, modify the request hash.
*code try_import
a call reference or closure to be passed a string name for external schema references
Definition Swagger.qm.dox.h:743
*string basePath
The base path on which the API is served, which is relative to the host.
Definition Swagger.qm.dox.h:645
AbstractDataProviderType getType(string path, string typestr, *string format, *SchemaObject arrayItems, bool required=True)
Returns the data type corresponding to the values.
constructorIntern(string schema_source, hash< auto > oh, *hash< auto > opts)
common constructor implementation
static *AbstractDataProviderType getCacheType(reference< hash< string, AbstractDataProviderType > > h, string key)
Returns a type object from the given cache.
string hash_str
the hash for the schema
Definition Swagger.qm.dox.h:746
hash< string, SecuritySchemeObject > securityDefinitions
Security scheme definitions that can be used across the specification.
Definition Swagger.qm.dox.h:685
*int opt_flags
parse option flags
Definition Swagger.qm.dox.h:749
SchemaObject processDefinition(string key, auto value)
Processes a schema definition.
ParameterItemsSchemaObject resolveParameterItemsSchemaObject(string name, string refstr, hash< auto > oh, *string inLoc)
resolves a reference to a parameter items schema object
hash< auto > store
Free-form data storage for types or other related information.
Definition Swagger.qm.dox.h:714
string swaggerSpec
Swagger Specification version being used.
Definition Swagger.qm.dox.h:622
SchemaObject resolveSchemaObject(string name, string refstr, hash< auto > oh)
resolves a reference to a schema object
*TimeZone getTimeZoneLocaleImpl()
Returns the time zone locale used for serialization / deserialization.
InfoObject info
Required. Provides metadata about the API. The metadata can be used by the clients if needed.
Definition Swagger.qm.dox.h:625
string getHashImpl()
returns a unique hash for the schema that can be used to compare schemas
*softbool utc_dates
Send dates in UTC format.
Definition Swagger.qm.dox.h:752
hash< auto > getExternalReference(string refstr)
retrieves external references
*string query_date_format
Date format for serializing dates in queries.
Definition Swagger.qm.dox.h:755
bool compact_serialization
if serialized data should be subject to compact serialization (default: True)
Definition Swagger.qm.dox.h:735
const SwaggerOptions
SwaggerSchema options.
Definition Swagger.qm.dox.h:730
fixPath(reference< string > path)
removes the base path from the beginning of the path, if present
constructor(string schema_source, hash< auto > oh, *hash< auto > opts)
Builds the schema representation from the deserialized schema hash describing the root document objec...
hash< RestExampleResponseInfo > getExampleResponseImpl(string method, string path, int code, *softlist< string > content_types)
returns a hash of example message information for the given request
*string host
The host (name or IP) serving the API.
Definition Swagger.qm.dox.h:637
hash< RestSchemaValidator::RestResponseClientInfo > parseResponseImpl(string method, string path, int code, *data response_body, hash< auto > hdr)
parses and validates the response from the server and returns a hash of the processed info
hash< string, bool > consumes
A set of MIME types (strings) the APIs can consume.
Definition Swagger.qm.dox.h:660
AbstractDataField getFieldForHeaders(string name, hash< auto > headers)
Returns a field of header fields.
AbstractDataProviderType getTypeForReference(string rstr, bool required=True, *HTTPClient rest)
Returns the data type corresponding to the reference type.
AbstractDataField getFieldFromSchema(string name, *string desc, SchemaObject schema, bool required=True, *HTTPClient rest)
Returns a field definition from the Swagger parameter.
hash< string, bool > schemes
The transfer protocol of the API.
Definition Swagger.qm.dox.h:653
PathsObject paths
Required. The available paths and operations for the API.
Definition Swagger.qm.dox.h:628
list< TagObject > tags
A list of tags used by the specification with additional metadata.
Definition Swagger.qm.dox.h:711
hash< RestSchemaValidator::RestRequestClientInfo > processRequestImpl(string method, string path, auto body, *hash< auto > headers, *softlist< string > content_types)
processes a client-side REST request and returns a hash that can be used to make the outgoing client-...
Allows adding metadata to a single tag that is used by the OperationObject. It is not mandatory to ha...
Definition Swagger.qm.dox.h:2114
*ExternalDocumentationObject externalDocs
Additional external documentation for this tag.
Definition Swagger.qm.dox.h:2124
*string desc
A short description for the tag. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:2121
string name
Required. The name of the tag.
Definition Swagger.qm.dox.h:2118
constructor(hash< auto > oh)
Constructor.
AbstractParameterObject specialization for parameters other than "body"
Definition Swagger.qm.dox.h:1832
static checkValueType(reference< auto > value, string type, *SchemaObject items, *string loc)
validates default values
auto getExampleValue(*hash< string, bool > emap, *string fname)
returns an example value of the parameter (default: NOTHING)
abstract setType(SwaggerSchema swagger)
Sets the parameter type.
auto getDefaultValue()
returns the default value of the parameter (default: NOTHING)
string type
Required. The type of the parameter.
Definition Swagger.qm.dox.h:1846
*SchemaObject items
Required if type is "array". Describes the type of items in the array.
Definition Swagger.qm.dox.h:1860
*string collectionFormat
Determines the format of the array if type array is used.
Definition Swagger.qm.dox.h:1876
*string format
The extending format for the previously mentioned type. See Data Type Formats for further details.
Definition Swagger.qm.dox.h:1849
constructor(string name, hash< auto > oh, SwaggerSchema swagger)
Creates the object.
bool allowEmptyValue
Sets the ability to pass empty-valued parameters.
Definition Swagger.qm.dox.h:1857
auto defaultVal
Declares the value of the parameter that the server will use if none is provided.
Definition Swagger.qm.dox.h:1886
check(bool serialize, bool request, string path, string method, string name, reference< auto > value)
validates the value against the schema definition
A metadata object that allows for more fine-tuned XML model definitions.
Definition Swagger.qm.dox.h:2471
bool wrapped
MAY be used only for an array definition.
Definition Swagger.qm.dox.h:2502
*string name
Replaces the name of the element/attribute used for the described schema property.
Definition Swagger.qm.dox.h:2482
bool attribute
Declares whether the property definition translates to an attribute instead of an element.
Definition Swagger.qm.dox.h:2493
constructor(hash< auto > oh)
Constructor.
*string prefix
The prefix to be used for the name.
Definition Swagger.qm.dox.h:2488
*string ns
The URL of the namespace definition. Value SHOULD be in the form of a URL.
Definition Swagger.qm.dox.h:2485
const LM_IGNORE_INVALID_PATHS
parse option: ignore invalid paths
Definition Swagger.qm.dox.h:289
const LM_OPTIONAL_REF_PROPERTIES
parse option: object properties with reference types are automatically optional
Definition Swagger.qm.dox.h:280
const LM_IGNORE_INVALID_REQUIRED
parse option: ignore invalid "required" properties
Definition Swagger.qm.dox.h:271
const LM_ALL
parse options: all options
Definition Swagger.qm.dox.h:292
const LM_ACCEPT_INVALID_BODY_PARAMS
parse option: reconstruct invalid body parameters
Definition Swagger.qm.dox.h:274
const LM_AUTO_FORM_DATA
parse option: add consumes application/x-www-form-urlencoded to API endpoint if formData is used in p...
Definition Swagger.qm.dox.h:277
const LM_ACCEPT_ALL_PROPERTIES
parse option: accept additional properties without raising an error
Definition Swagger.qm.dox.h:283
const LM_LAX_COLLECTIONFORMAT
parse option: allow collectionFormat on non-array types
Definition Swagger.qm.dox.h:268
const LM_ACCEPT_QUERY_OBJECTS
parse option: accept object as a query parameter type (as with OpenApi 3+)
Definition Swagger.qm.dox.h:286
const LM_IGNORE_MISSING_REQUIRED
Definition Swagger.qm.dox.h:265
main namespace for all public Swagger declarations
Definition Swagger.qm.dox.h:259
const CollectionFormats
allowed collection formats
Definition Swagger.qm.dox.h:304
const ValidNumberFormats
Valid number type formats.
Definition Swagger.qm.dox.h:299
const ValidStringFormatsHash
A hash of valid string type formats.
Definition Swagger.qm.dox.h:316
const ValidNumberFormatsHash
A hash of valid number type formats.
Definition Swagger.qm.dox.h:314
const ParameterCollectionFormats
valid parameter collection formats
Definition Swagger.qm.dox.h:308
const SerializationModules
modules available for data serialization and/or deserialization
Definition Swagger.qm.dox.h:330
const ValidStringFormats
Valid string type formats.
Definition Swagger.qm.dox.h:301
const ValidIntFormatsHash
A hash of valid integer type formats.
Definition Swagger.qm.dox.h:312
const MimeDataTypes
supported mime types for de/serializing data
Definition Swagger.qm.dox.h:326
const MimeContentTypes
MIME types for data serialization.
Definition Swagger.qm.dox.h:333
const ValidIntFormats
Valid integer type formats.
Definition Swagger.qm.dox.h:297
const YamlSerialization
Yaml serialization.
Definition Swagger.qm.dox.h:319
const ValidSchemes
Valid transfer protocol schemes.
Definition Swagger.qm.dox.h:336