322const JsonSerialization = ...;
410 hash<string, bool>
enum;
434 check(
bool serialize,
bool request,
string type, *
string format, *
SchemaObject items,
string path,
string method,
string name, reference<auto> value);
439 checkStringIntern(
string path,
string method,
string name,
string value);
444 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, list<auto> v, reference<list> value);
449 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, hash<auto> v, reference<hash> value);
454 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
int v, reference<auto> value);
459 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, number v, reference<number> value);
464 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
float v, reference<number> value);
469 checkInternNumber(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
auto v, reference<auto> value);
475 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, binary v, reference value);
481 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
string v, reference<auto> value);
487 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, date v, reference<auto> value);
492 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name,
bool v, reference<bool> value);
497 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, nothing v, reference<nothing> value);
752 hash<string, hash<string, SchemaObject>>
so_map;
755 hash<string, hash<string, AbstractDataProviderType>>
typemap;
778 constructor(
string schema_source, hash<auto> oh, *hash<auto> opts) ;
794 constructor(LoggerInterface logger,
string schema_source, hash<auto> oh, *hash<auto> opts) ;
803 *
int getParseFlags();
809 *
string getQueryDateFormat();
846 replaceTypeForReference(
string rstr, AbstractDataProviderType t);
850 AbstractDataProviderType
getType(
string path,
string typestr, *
string format, *
SchemaObject arrayItems,
bool required = True);
854 *AbstractDataProviderType checkType(
string path,
string typestr, *
string format, *
SchemaObject arrayItems,
bool required = True, reference<string>
id);
881 static *AbstractDataProviderType
getCacheType(reference<hash<string, AbstractDataProviderType>> h,
string key);
884 AbstractDataField
getFieldFromParameter(
string path,
string name,
string type, *
string format, *
SchemaObject arrayItems, *
string desc,
bool required, *list<auto> allowed_values,
auto default_value);
928 hash<RestSchemaValidator::RestRequestClientInfo>
processRequestImpl(
string method,
string path,
auto body, *hash<auto> headers, *softlist<string> content_types);
945 hash<RestSchemaValidator::RestRequestServerInfo>
parseRequestImpl(
string method,
string path, *data http_body, reference<hash> headers);
970 hash<HttpResponseInfo>
processResponseImpl(
string method,
string path,
int code,
auto response_body, *hash<auto> headers, *softlist<string> content_types);
986 hash<RestSchemaValidator::RestResponseClientInfo>
parseResponseImpl(
string method,
string path,
int code, *data response_body, hash<auto> hdr);
1041 hash<RestSchemaValidator::RestExampleRequestInfo>
getExampleRequestImpl(
string method,
string path, *softlist<string> content_types);
1191 bool checkResponseTextPlain(reference<hash<HttpResponseInfo>> resp,
auto body, hash<string, bool> mime_types, *list<auto> content_types);
1313 constructor(
string full_path, list<auto> l,
int offset, hash<auto> oh);
1644 getQoreExampleParams(reference<hash<auto>> query, reference<hash<auto>> headers, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1650 doDefaultParams(reference<hash<UriQueryInfo>> h, reference<hash> headers, reference<auto>
body, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1656 checkMissingParams(hash<UriQueryInfo> h, *hash<auto> headers,
auto body, hash<string, AbstractParameterObject>
parameters, *hash<string, AbstractParameterObject> child_params);
1764 const OtherParameterMap = ...;
2270 hash<string, hash<string, AbstractDataField>> fieldmap;
2293 replaceType(AbstractDataProviderType t);
2296 AbstractDataProviderType getDataType(
bool required = True, *HTTPClient rest);
2315 static *AbstractDataField
getCacheField(reference<hash<string, AbstractDataField>> h,
string key);
2336 auto getExampleValue(*hash<string, bool> emap, *
string fname);
2344 checkObjectProperty(
string name,
string prop);
2349 checkIntern(
bool serialize,
bool request,
string type, *
string format,
string path,
string method,
string name, nothing v, reference<nothing> value);
2589 const SwaggerListToStringSet = -1;
2591 const SwaggerListToAnySet = -2;
2592 const SwaggerListToHashOfStrings = -3;
2594 const TypeMap = ...;
2608 required_field(
string objType, hash<auto> oh,
string name,
int typeCode, reference<auto> target, *
int opt_flags);
2622 required_field(
string objType, hash<auto> oh,
string name, hash<string, bool> typeCodes, reference<auto> target);
2637 bool optional_field(
string objType, hash<auto> oh,
string name,
int typeCode, reference<auto> target, *
int opt_flags);
2652 bool optional_field(
string objType, hash<auto> oh,
string name, hash<string, bool> typeCodes, reference<auto> target);
2656 *
bool check_type_code(
string objType, hash<auto> oh,
string name,
auto val,
int typeCode, *
int opt_flags);
2660 get_value(
string objType,
string name,
int typeCode,
auto val, reference<auto> target);
2664 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:1733
bool required
Determines whether this parameter is mandatory.
Definition Swagger.qm.dox.h:1761
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:1744
string inLoc
Required. The location of the parameter.
Definition Swagger.qm.dox.h:1750
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:1753
AbstractParameterObject specialization for "body" parameters.
Definition Swagger.qm.dox.h:1792
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:1796
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:1676
*string desc
A short description of the target documentation. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1680
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:1683
The object provides metadata about the API. The metadata can be used by the clients if needed,...
Definition Swagger.qm.dox.h:1203
string version
Required. Provides the version of the application API (not to be confused with the specification vers...
Definition Swagger.qm.dox.h:1216
constructor(hash< auto > oh)
Constructor.
string title
Required. The title of the application.
Definition Swagger.qm.dox.h:1207
*LicenseObject license
The license information for the exposed API.
Definition Swagger.qm.dox.h:1222
*ContactObject contact
The contact information for the exposed API.
Definition Swagger.qm.dox.h:1219
*string termsOfService
The Terms of Service for the API.
Definition Swagger.qm.dox.h:1213
*string desc
A short description of the application. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1210
License information for the exposed API.
Definition Swagger.qm.dox.h:1259
constructor(hash< auto > oh)
Constructor.
string name
Required. The license name used for the API.
Definition Swagger.qm.dox.h:1263
*string url
A URL to the license used for the API. MUST be in the format of a URL.
Definition Swagger.qm.dox.h:1266
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:1458
list< string > schemes
The transfer protocol for the operation.
Definition Swagger.qm.dox.h:1528
*string desc
A verbose explanation of the operation behavior. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1477
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:1512
*ExternalDocumentationObject externalDocs
Additional external documentation for this operation.
Definition Swagger.qm.dox.h:1487
string path
the URI path for the operation
Definition Swagger.qm.dox.h:1462
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:1474
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:1465
AbstractParameterObject body
The body parameter, if defined.
Definition Swagger.qm.dox.h:1518
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:1521
*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:1471
*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:1496
hash< string, AbstractParameterObject > formData
formData parameter; if defined for this operation, body parameter will be excluded
Definition Swagger.qm.dox.h:1515
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:1543
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:1504
bool deprec
Declares this operation to be deprecated.
Definition Swagger.qm.dox.h:1484
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:1929
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:1933
Common class for objects that have parameters.
Definition Swagger.qm.dox.h:582
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:592
items schema object for non-body parameters
Definition Swagger.qm.dox.h:2386
*string collectionFormat
Determines the format of the array if type array is used.
Definition Swagger.qm.dox.h:2403
static ParameterItemsSchemaObject newSchemaObject(string name, hash< auto > oh, SwaggerSchema swagger, *string inLoc)
returns a SchemaObject for the schema definition; resolves references
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:1286
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:1303
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:1294
*PathComponent wildcard
if there is a wildcard to a PathComponent
Definition Swagger.qm.dox.h:1297
string pfx
path prefix
Definition Swagger.qm.dox.h:1291
*PathItemObject pio
the PathItemObject associated with this path (if any)
Definition Swagger.qm.dox.h:1300
Describes the operations available on a single path.
Definition Swagger.qm.dox.h:1389
softlist getMethods()
returns a list of HTTP methods supported by this object
const ObjType
This objet type.
Definition Swagger.qm.dox.h:1418
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:1398
hash< string, OperationObject > operations
A hash of OperationObjects correspoding to different methods.
Definition Swagger.qm.dox.h:1415
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:1401
constructor(string path, hash< auto > oh, SwaggerSchema swagger)
Constructor.
This class stores the path tree for URI path matching.
Definition Swagger.qm.dox.h:1343
*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:1348
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:1989
*SchemaObject schema
A definition of the response structure.
Definition Swagger.qm.dox.h:2002
string desc
Required. A short description of the response. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:1993
hash< auto > headers
A hash of headers that are (can be) sent with the response.
Definition Swagger.qm.dox.h:2008
hash examples
A hash of example response messages.
Definition Swagger.qm.dox.h:2018
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:1957
ResponseObject defaultResp
Definition Swagger.qm.dox.h:1964
constructor(string path, string method, hash< auto > oh, SwaggerSchema swagger)
Constructor.
hash< string, ResponseObject > responses
Definition Swagger.qm.dox.h:1971
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
*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
*float maximum
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.2.
Definition Swagger.qm.dox.h:377
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
*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
*float 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:2132
auto additionalProperties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.4.
Definition Swagger.qm.dox.h:2186
bool readOnly
Relevant only for Schema "properties" definitions. Declares the property as "read only".
Definition Swagger.qm.dox.h:2223
bool nullable
extension that allows types to be nullable
Definition Swagger.qm.dox.h:2169
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:2176
*string format
The extending format for the previously mentioned type. See Data Type Formats for further details.
Definition Swagger.qm.dox.h:2146
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:2161
string name
the name of this object for documentation and example purposes
Definition Swagger.qm.dox.h:2136
string type
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.2.
Definition Swagger.qm.dox.h:2143
*string discriminator
Adds support for polymorphism.
Definition Swagger.qm.dox.h:2213
*SchemaObject items
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.1.
Definition Swagger.qm.dox.h:2155
*XmlObject xml
This MAY be used only on properties schemas. It has no effect on root schemas.
Definition Swagger.qm.dox.h:2244
hash< string, bool > nullable_properties
extention to allow properties to be nullable
Definition Swagger.qm.dox.h:2179
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:2253
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:2247
const ScalarTypes
valid scalar types
Definition Swagger.qm.dox.h:2259
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:2152
*AbstractDataProviderType orNothingDataType
The data type of the schema (not required)
Definition Swagger.qm.dox.h:2256
auto defaultVal
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2.
Definition Swagger.qm.dox.h:2158
*string title
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.1.
Definition Swagger.qm.dox.h:2149
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:2192
auto example
A free-form property to include an example of an instance for this schema.
Definition Swagger.qm.dox.h:2250
const ReferenceTypes
valid reference types
Definition Swagger.qm.dox.h:2263
*int minProperties
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.2.
Definition Swagger.qm.dox.h:2164
Lists the available scopes for an OAuth2 security scheme.
Definition Swagger.qm.dox.h:2565
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:2572
Allows the definition of a security scheme that can be used by the operations.
Definition Swagger.qm.dox.h:2499
*string flow
The flow used by the OAuth2 security scheme.
Definition Swagger.qm.dox.h:2526
*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:2532
string type
Required. The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
Definition Swagger.qm.dox.h:2503
*string inLoc
The location of the API key. Valid values are "query" or "header".
Definition Swagger.qm.dox.h:2518
constructor(hash< auto > oh)
Constructor.
*string name
The name of the header or query parameter to be used.
Definition Swagger.qm.dox.h:2512
*ScopesObject scopes
The available scopes for the OAuth2 security scheme.
Definition Swagger.qm.dox.h:2548
*string desc
A short description for security scheme.
Definition Swagger.qm.dox.h:2506
*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:2538
Used for loading the Swagger definitions.
Definition Swagger.qm.dox.h:520
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:608
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:755
hash< string, bool > produces
A set of MIME types (strings) the APIs can produce.
Definition Swagger.qm.dox.h:661
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:752
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:761
*string def_path
the default path to use when retrieving external schema references
Definition Swagger.qm.dox.h:732
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:693
hash< string, ResponseObject > responses
Response definitions that can be used across operations. This property does not define global respons...
Definition Swagger.qm.dox.h:673
*ExternalDocumentationObject externalDocs
Additional external documentation.
Definition Swagger.qm.dox.h:711
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:737
*string basePath
The base path on which the API is served, which is relative to the host.
Definition Swagger.qm.dox.h:639
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:740
hash< string, SecuritySchemeObject > securityDefinitions
Security scheme definitions that can be used across the specification.
Definition Swagger.qm.dox.h:679
*int opt_flags
parse option flags
Definition Swagger.qm.dox.h:743
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:708
string swaggerSpec
Swagger Specification version being used.
Definition Swagger.qm.dox.h:616
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:619
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:746
hash< auto > getExternalReference(string refstr)
retrieves external references
*string query_date_format
Date format for serializing dates in queries.
Definition Swagger.qm.dox.h:749
bool compact_serialization
if serialized data should be subject to compact serialization (default: True)
Definition Swagger.qm.dox.h:729
const SwaggerOptions
SwaggerSchema options.
Definition Swagger.qm.dox.h:724
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:631
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:654
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:647
PathsObject paths
Required. The available paths and operations for the API.
Definition Swagger.qm.dox.h:622
list< TagObject > tags
A list of tags used by the specification with additional metadata.
Definition Swagger.qm.dox.h:705
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:2108
*ExternalDocumentationObject externalDocs
Additional external documentation for this tag.
Definition Swagger.qm.dox.h:2118
*string desc
A short description for the tag. GFM syntax can be used for rich text representation.
Definition Swagger.qm.dox.h:2115
string name
Required. The name of the tag.
Definition Swagger.qm.dox.h:2112
constructor(hash< auto > oh)
Constructor.
AbstractParameterObject specialization for parameters other than "body"
Definition Swagger.qm.dox.h:1826
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:1840
*ParameterItemsSchemaObject items
Required if type is "array". Describes the type of items in the array.
Definition Swagger.qm.dox.h:1854
*string collectionFormat
Determines the format of the array if type array is used.
Definition Swagger.qm.dox.h:1870
*string format
The extending format for the previously mentioned type. See Data Type Formats for further details.
Definition Swagger.qm.dox.h:1843
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:1851
auto defaultVal
Declares the value of the parameter that the server will use if none is provided.
Definition Swagger.qm.dox.h:1880
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:2450
bool wrapped
MAY be used only for an array definition.
Definition Swagger.qm.dox.h:2481
*string name
Replaces the name of the element/attribute used for the described schema property.
Definition Swagger.qm.dox.h:2461
bool attribute
Declares whether the property definition translates to an attribute instead of an element.
Definition Swagger.qm.dox.h:2472
constructor(hash< auto > oh)
Constructor.
*string prefix
The prefix to be used for the name.
Definition Swagger.qm.dox.h:2467
*string ns
The URL of the namespace definition. Value SHOULD be in the form of a URL.
Definition Swagger.qm.dox.h:2464
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