The openapi-generator Reference Manual

This is the openapi-generator Reference Manual, version 0.0.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 08 19:07:07 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 openapi-generator

Parse OpenAPI into CLOS object for client generation

Author

Kilian M. Haemmerle

Contact

License

AGPLv3-later

Version

0.0.2

Dependencies
  • str (system).
  • cl-hash-util (system).
  • cl-semver (system).
  • pathname-utils (system).
  • json-mop (system).
  • yason (system).
  • com.inuoe.jzon (system).
  • cl-project (system).
  • listopia (system).
  • alexandria (system).
  • serapeum (system).
  • quri (system).
  • dexador (system).
  • cl-json-pointer (system).
  • moptilities (system).
  • parse-float (system).
  • cl-yaml (system).
Source

openapi-generator.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 openapi-generator/openapi-generator.asd

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

ASDF Systems

openapi-generator.


3.1.2 openapi-generator/package.lisp

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Packages

openapi-generator.


3.1.3 openapi-generator/json-mop.lisp

Dependency

package.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).


3.1.4 openapi-generator/globals.lisp

Dependency

json-mop.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface
Internals

3.1.5 openapi-generator/util.lisp

Dependency

globals.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Packages

dummy-printing-package.

Internals

3.1.6 openapi-generator/classes.lisp

Dependency

util.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface
Internals

3.1.7 openapi-generator/collections.lisp

Dependency

classes.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface

print-object (method).

Internals

3.1.8 openapi-generator/convert.lisp

Dependency

collections.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface

convert-to-openapi-3 (function).

Internals

3.1.9 openapi-generator/parser.lisp

Dependency

convert.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface
Internals

3.1.10 openapi-generator/function-generation.lisp

Dependency

parser.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Internals

3.1.11 openapi-generator/openapi-generator.lisp

Dependency

function-generation.lisp (file).

Source

openapi-generator.asd.

Parent Component

openapi-generator (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 dummy-printing-package

Source

util.lisp.


4.2 openapi-generator

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *converter-url*

Default swagger converter url.

Package

openapi-generator.

Source

globals.lisp.

Special Variable: *dereference*

This variable influences whether the openapi document will be derefenced or not.

Package

openapi-generator.

Source

globals.lisp.


5.1.2 Ordinary functions

Function: convert-to-openapi-3 (&key url content pathname content-type converter-url)
Package

openapi-generator.

Source

convert.lisp.

Function: generate-client (&key api url content path export-symbols check-type converter-url)
Package

openapi-generator.

Source

openapi-generator.lisp.

Function: make-openapi-client (system-name &key server parse headers authorization bearer cookie alias system-directory load-system openapi api-name url source-directory collection-id content dereference verbose check-type converter-url)

Creates Openapi client by combining a project template with generated code.
Source options are url, source-directory, collection-id, or openapi (openapi class instance).
The options server, parse, headers, authorization, bearer, cookie, content are stored in the library code as dynamic parameters..

Package

openapi-generator.

Source

openapi-generator.lisp.


5.1.3 Generic functions

Generic Function: dereference (table &key path-uri pathname)
Package

openapi-generator.

Methods
Method: dereference ((path pathname) &key)
Source

parser.lisp.

Method: dereference ((uri uri) &key)
Source

parser.lisp.

Method: dereference ((table hash-table) &key path-uri pathname)

Dereference all references recursively.
Also grab external files.
Exit recursion & warn when circular pointer detected

Source

parser.lisp.

Generic Function: parse-openapi (name &key url source-directory collection-id content dereference converter-url)

Parse json/yaml from a file or uri into openapi class instance You should mostly submit a file-name, and either

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: parse-openapi ((name string) &key url source-directory collection-id content dereference converter-url)

5.1.4 Standalone methods

Method: print-object ((object path) stream)
Source

classes.lisp.

Method: print-object ((object info) stream)
Source

classes.lisp.

Method: print-object ((object reference) stream)
Source

classes.lisp.

Method: print-object ((object operation) stream)
Source

classes.lisp.

Method: print-object ((object parameter) stream)
Source

classes.lisp.

Method: print-object ((object tag) stream)
Source

classes.lisp.

Method: print-object ((object apis-guru-api) stream)
Source

collections.lisp.

Method: print-object ((object license) stream)
Source

classes.lisp.

Method: print-object ((object request-body) stream)
Source

classes.lisp.

Method: print-object ((api openapi) stream)
Source

classes.lisp.

Method: print-object ((object server) stream)
Source

classes.lisp.

Method: print-object ((object o-auth-flow) stream)
Source

classes.lisp.

Method: print-object ((object discriminator) stream)
Source

classes.lisp.

Method: print-object ((object security-scheme) stream)
Source

classes.lisp.

Method: print-object ((object server-variable) stream)
Source

classes.lisp.

Method: print-object ((object external-documentation) stream)
Source

classes.lisp.


5.2 Internals


5.2.1 Constants

Constant: constant-data-directory
Package

openapi-generator.

Source

globals.lisp.

Constant: constant-projects-directory

Projects directory within libraries data folder

Package

openapi-generator.

Source

globals.lisp.


5.2.2 Special variables

Special Variable: apis-guru-apis
Package

openapi-generator.

Source

collections.lisp.


5.2.3 Macros

Macro: %generate-client (&key api url content path export-symbols check-type converter-url)

Generates Common Lisp client by OpenAPI Spec.

Package

openapi-generator.

Source

openapi-generator.lisp.

Macro: define-json-class (name direct-superclasses direct-slots &rest options)
Package

openapi-generator.

Source

util.lisp.


5.2.4 Ordinary functions

Function: apis-guru-url (api-name &key origin)
Package

openapi-generator.

Source

collections.lisp.

Function: convert-by-content (&key content content-type converter-url)
Package

openapi-generator.

Source

convert.lisp.

Function: convert-by-url (url &key converter-url)
Package

openapi-generator.

Source

convert.lisp.

Function: from-file (pathname)

Adapted from cl-str.
Read the file and return its content as a string.

It simply uses uiop:read-file-string. There is also uiop:read-file-lines.

Package

openapi-generator.

Source

util.lisp.

Function: gen-alist (names)

Generate association list with the symbol lispified.

Package

openapi-generator.

Source

util.lisp.

Function: get-api-guru-apis (&key refresh)
Package

openapi-generator.

Source

collections.lisp.

Function: get-apis-guru-list ()

https://api.apis.guru/v2/

Package

openapi-generator.

Source

collections.lisp.

Function: get-data-file (name &key type)

Get data file

Package

openapi-generator.

Source

util.lisp.

Function: integer-string-p (s)

Predicate for valid json number (string)

Package

openapi-generator.

Source

util.lisp.

Function: json-array-p (s)

Predicate for valid json array (string)

Package

openapi-generator.

Source

util.lisp.

Function: json-false-p (s)

Predicate for valid json false

Package

openapi-generator.

Source

util.lisp.

Function: json-mop-composite-type-p (item)
Package

openapi-generator.

Source

util.lisp.

Function: json-mop-type-p (item)
Package

openapi-generator.

Source

util.lisp.

Function: json-null-p (s)

Predicate for valid json null

Package

openapi-generator.

Source

util.lisp.

Function: json-number-p (s)

Predicate for valid json number (string)

Package

openapi-generator.

Source

util.lisp.

Function: json-object-p (s)

Predicate for valid json array (string)

Package

openapi-generator.

Source

util.lisp.

Function: json-true-p (s)

Predicate for valid json true

Package

openapi-generator.

Source

util.lisp.

Function: one-item (name)

Intern the item in the package active during execution of this function

Package

openapi-generator.

Source

util.lisp.

Function: openapi-version-p (openapi-version)
Package

openapi-generator.

Source

classes.lisp.

Function: remove-empty-values (alist)

Remove empty values from alist (used at run time)

Package

openapi-generator.

Source

util.lisp.

Function: slot-option-p (item)
Package

openapi-generator.

Source

util.lisp.

Function: to-file (pathname s)

Adapted from cl-str.
Write string ‘s’ to file ‘pathname’. If the file does not exist, create it (use ‘:if-does-not-exist’), if it already exists, replace its content (‘:if-exists’).

Returns the string written to file.

Package

openapi-generator.

Source

util.lisp.

Function: uri-p (uri)

Uri predicate.

Package

openapi-generator.

Source

util.lisp.


5.2.5 Generic functions

Generic Reader: absolute-keyword-location (object)
Generic Writer: (setf absolute-keyword-location) (object)
Package

openapi-generator.

Methods
Reader Method: absolute-keyword-location ((schema schema))
Writer Method: (setf absolute-keyword-location) ((schema schema))

The absolute, dereferenced location of the validating keyword. The value MUST be expressed as a full URI using the canonical URI of the relevant schema resource with a JSON Pointer fragment, and it MUST NOT include by-reference applicators such as "$ref" or "$dynamicRef" as non-terminal path components. It MAY end in such keywords if the error or annotation is for that keyword, such as an unresolvable reference. Note that "absolute" here is in the sense of "absolute filesystem path" (meaning the complete location) rather than the "absolute-URI" terminology from RFC 3986 (meaning with scheme but without fragment). Keyword absolute locations will have a fragment in order to identify the keyword.

https://example.com/schemas/common#/$defs/count/minimum

This information MAY be omitted only if either the dynamic scope did not pass over a reference or if the schema does not declare an absolute URI as its "$id".

Source

classes.lisp.

Target Slot

absolute-keyword-location.

Generic Reader: additional-properties (object)
Generic Writer: (setf additional-properties) (object)
Package

openapi-generator.

Methods
Reader Method: additional-properties ((schema schema))
Writer Method: (setf additional-properties) ((schema schema))

The value of "additionalProperties" MUST be a valid JSON Schema.
The behavior of this keyword depends on the presence and annotation results of "properties" and "patternProperties" within the same schema object. Validation with "additionalProperties" applies only to the child values of instance names that do not appear in the annotation results of either "properties" or "patternProperties".
For all such properties, validation succeeds if the child instance validates against the "additionalProperties" schema.
The annotation result of this keyword is the set of instance property names validated by this keyword’s subschema. This annotation affects the behavior of "unevaluatedProperties" in the Unevaluated vocabulary.
Omitting this keyword has the same assertion behavior as an empty schema.
Implementations MAY choose to implement or optimize this keyword in another way that produces the same effect, such as by directly checking the names in "properties" and the patterns in "patternProperties" against the instance property set. Implementations that do not support annotation collection MUST do so. In defining this option, it seems there is the potential for ambiguity in the output format. The ambiguity does not affect validation results, but it does affect the resulting output format. The ambiguity allows for multiple valid output results depending on whether annotations are used or a solution that "produces the same effect" as draft-07. It is understood that annotations from failing schemas are dropped.

Source

classes.lisp.

Target Slot

additional-properties.

Generic Reader: all-of (object)
Generic Writer: (setf all-of) (object)
Package

openapi-generator.

Methods
Reader Method: all-of ((schema schema))
Writer Method: (setf all-of) ((schema schema))

This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword’s value.

Source

classes.lisp.

Target Slot

all-of.

Generic Reader: alllow-empty-value (object)
Generic Writer: (setf alllow-empty-value) (object)
Package

openapi-generator.

Methods
Reader Method: alllow-empty-value ((header header))
Writer Method: (setf alllow-empty-value) ((header header))

Sets the ability to pass empty-valued parameters. Default value is false. If style is used, and if behavior is n/a (cannot be serialized), the value of allowEmptyValue SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision.

Source

classes.lisp.

Target Slot

allow-empty-value.

Generic Reader: allow-empty-value (object)
Generic Writer: (setf allow-empty-value) (object)
Package

openapi-generator.

Methods
Reader Method: allow-empty-value ((parameter parameter))
Writer Method: (setf allow-empty-value) ((parameter parameter))

Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is false. If style is used, and if behavior is n/a (cannot be serialized), the value of allowEmptyValue SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision.

Source

classes.lisp.

Target Slot

allow-empty-value.

Generic Reader: allow-reserved (object)
Generic Writer: (setf allow-reserved) (object)
Package

openapi-generator.

Methods
Reader Method: allow-reserved ((header header))
Writer Method: (setf allow-reserved) ((header header))

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false.

Source

classes.lisp.

Target Slot

allow-reserved.

Reader Method: allow-reserved ((encoding encoding))
Writer Method: (setf allow-reserved) ((encoding encoding))

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. The default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Source

classes.lisp.

Target Slot

allow-reserved.

Reader Method: allow-reserved ((parameter parameter))
Writer Method: (setf allow-reserved) ((parameter parameter))

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false.

Source

classes.lisp.

Target Slot

allow-reserved.

Generic Reader: anchor (object)
Generic Writer: (setf anchor) (object)
Package

openapi-generator.

Methods
Reader Method: anchor ((schema schema))
Writer Method: (setf anchor) ((schema schema))

Using JSON Pointer fragments requires knowledge of the structure of the schema. When writing schema documents with the intention to provide re-usable schemas, it may be preferable to use a plain name fragment that is not tied to any particular structural location. This allows a subschema to be relocated without requiring JSON Pointer references to be updated. The "$anchor" and "$dynamicAnchor" keywords are used to specify such fragments. They are identifier keywords that can only be used to create plain name fragments, rather than absolute URIs as seen with "$id". The base URI to which the resulting fragment is appended is the canonical URI of the schema resource containing the "$anchor" or "$dynamicAnchor" in question. As discussed in the previous section, this is either the nearest "$id" in the same or parent schema object, or the base URI for the document as determined according to RFC 3986. If present, the value of this keyword MUST be a string and MUST start with a letter ([A-Za-z]) or underscore ("_"), followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), and periods ("."). This matches the US-ASCII part of XML’s NCName production [xml-names]. Note that the anchor string does not include the "#" character, as it is not a URI-reference. An "$anchor": "foo" becomes the fragment "#foo" when used in a URI. See below for full examples. The effect of specifying the same fragment name multiple times within the same resource, using any combination of "$anchor" and/or "$dynamicAnchor", is undefined. Implementations MAY raise an error if such usage is detected.

Source

classes.lisp.

Target Slot

anchor.

Generic Reader: annotations (object)
Generic Writer: (setf annotations) (object)
Package

openapi-generator.

Methods
Reader Method: annotations ((schema schema))
Writer Method: (setf annotations) ((schema schema))

The collection of errors or annotations produced by a successful validation

Source

classes.lisp.

Target Slot

annotations.

Generic Reader: any-of (object)
Generic Writer: (setf any-of) (object)
Package

openapi-generator.

Methods
Reader Method: any-of ((schema schema))
Writer Method: (setf any-of) ((schema schema))

This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword’s value. Note that when annotations are being collected, all subschemas MUST be examined so that annotations are collected from each subschema that validates successfully.

Source

classes.lisp.

Target Slot

any-of.

Generic Reader: api-list (object)
Package

openapi-generator.

Methods
Reader Method: api-list ((apis-guru-list apis-guru-list))

automatically generated reader method

Source

collections.lisp.

Target Slot

api-list.

Generic Reader: apis-guru-origin-format (object)
Package

openapi-generator.

Methods
Reader Method: apis-guru-origin-format ((apis-guru-origin apis-guru-origin))

automatically generated reader method

Source

collections.lisp.

Target Slot

format.

Generic Function: assure-optional (optional-parameter)

Generate code for run-time type checking of optional arguments. This only happens, if arguments supplied.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: assure-optional ((optional-parameter parameter))
Method: assure-optional ((optional-parameter list))
Generic Function: assure-required (required-parameters)

Generate code for run-time type checking of required arguments

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: assure-required ((required-parameter parameter))
Method: assure-required ((required-parameters list))
Generic Reader: attribute (object)
Generic Writer: (setf attribute) (object)
Package

openapi-generator.

Methods
Reader Method: attribute ((xml xml))
Writer Method: (setf attribute) ((xml xml))

Declares whether the property definition translates to an attribute instead of an element. Default value is false.

Source

classes.lisp.

Target Slot

attribute.

Generic Reader: authorization-code (object)
Generic Writer: (setf authorization-code) (object)
Package

openapi-generator.

Methods
Reader Method: authorization-code ((o-auth-flows o-auth-flows))
Writer Method: (setf authorization-code) ((o-auth-flows o-auth-flows))

Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.

Source

classes.lisp.

Target Slot

authorization-code.

Generic Reader: authorization-url (object)
Generic Writer: (setf authorization-url) (object)
Package

openapi-generator.

Methods
Reader Method: authorization-url ((o-auth-flow o-auth-flow))
Writer Method: (setf authorization-url) ((o-auth-flow o-auth-flow))

The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Source

classes.lisp.

Target Slot

authorization-url.

Generic Reader: bearer-format (object)
Generic Writer: (setf bearer-format) (object)
Package

openapi-generator.

Methods
Reader Method: bearer-format ((security-scheme security-scheme))
Writer Method: (setf bearer-format) ((security-scheme security-scheme))

A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.

Source

classes.lisp.

Target Slot

bearer-format.

Generic Reader: callbacks (object)
Generic Writer: (setf callbacks) (object)
Package

openapi-generator.

Methods
Reader Method: callbacks ((operation operation))
Writer Method: (setf callbacks) ((operation operation))

A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a Callback Object that describes a request that may be initiated by the API provider and the expected responses.

Source

classes.lisp.

Target Slot

callbacks.

Reader Method: callbacks ((components components))
Writer Method: (setf callbacks) ((components components))

An object to hold reusable Callback Objects.

Source

classes.lisp.

Target Slot

callbacks.

Generic Function: check-api-slots (api list)

Make sure that the function (alias) can be generated.
Prefered alias source is operation-id. Last resort option is path.

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: check-api-slots ((api openapi) (list list))
Generic Reader: client-credentials (object)
Generic Writer: (setf client-credentials) (object)
Package

openapi-generator.

Methods
Reader Method: client-credentials ((o-auth-flows o-auth-flows))
Writer Method: (setf client-credentials) ((o-auth-flows o-auth-flows))

Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.

Source

classes.lisp.

Target Slot

client-credentials.

Generic Function: collect-alias-exports (api slot)

Create list of upcased string to include in export clause of defpackage.

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: collect-alias-exports ((api openapi) (slot string))
Method: collect-alias-exports ((api openapi) (slot symbol))
Generic Function: collect-function-names (api &key param-case)

Generate all function names

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: collect-function-names ((api openapi) &key param-case)
Generic Function: collect-parameters (path operation)

Collect all parameters belong to an api a path and operation.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: collect-parameters ((path path) (operation symbol))
Generic Function: collect-path-types (path)

Collect all bound operation types as symbols

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: collect-path-types ((path path))
Generic Reader: comment (object)
Generic Writer: (setf comment) (object)
Package

openapi-generator.

Methods
Reader Method: comment ((schema schema))
Writer Method: (setf comment) ((schema schema))

Comments With "$comment"

This keyword reserves a location for comments from schema authors to readers or maintainers of the schema.
The value of this keyword MUST be a string. Implementations MUST NOT present this string to end users. Tools for editing schemas SHOULD support displaying and editing this keyword. The value of this keyword MAY be used in debug or error output which is intended for developers making use of schemas. Schema vocabularies SHOULD allow "$comment" within any object containing vocabulary keywords. Implementations MAY assume "$comment" is allowed unless the vocabulary specifically forbids it. Vocabularies MUST NOT specify any effect of "$comment" beyond what is described in this specification. Tools that translate other media types or programming languages to and from application/schema+json MAY choose to convert that media type or programming language’s native comments to or from "$comment" values. The behavior of such translation when both native comments and "$comment" properties are present is implementation-dependent. Implementations MAY strip "$comment" values at any point during processing. In particular, this allows for shortening schemas when the size of deployed schemas is a concern. Implementations MUST NOT take any other action based on the presence, absence, or contents of "$comment" properties. In particular, the value of "$comment" MUST NOT be collected as an annotation result.

Source

classes.lisp.

Target Slot

comment.

Generic Reader: components (object)
Generic Writer: (setf components) (object)
Package

openapi-generator.

Methods
Reader Method: components ((openapi openapi))
Writer Method: (setf components) ((openapi openapi))

An element to hold various schemas for the document.

Source

classes.lisp.

Target Slot

components.

Generic Function: concat-strings (list)

Concatenates strings together and breaks when other element comes

Package

openapi-generator.

Source

util.lisp.

Methods
Method: concat-strings ((list list))
Generic Reader: const (object)
Generic Writer: (setf const) (object)
Package

openapi-generator.

Methods
Reader Method: const ((schema schema))
Writer Method: (setf const) ((schema schema))

The value of this keyword MAY be of any type, including null.
Use of this keyword is functionally equivalent to an "enum" (Section 6.1.2) with a single value.
An instance validates successfully against this keyword if its value is equal to the value of the keyword.

Source

classes.lisp.

Target Slot

const.

Generic Reader: contact (object)
Generic Writer: (setf contact) (object)
Package

openapi-generator.

Methods
Reader Method: contact ((info info))
Writer Method: (setf contact) ((info info))

The contact information for the exposed API.

Source

classes.lisp.

Target Slot

contact.

Generic Reader: contains (object)
Generic Writer: (setf contains) (object)
Package

openapi-generator.

Methods
Reader Method: contains ((schema schema))
Writer Method: (setf contains) ((schema schema))

The value of this keyword MUST be a valid JSON Schema.
An array instance is valid against "contains" if at least one of its elements is valid against the given schema, except when "minContains" is present and has a value of 0, in which case an array instance MUST be considered valid against the "contains" keyword, even if none of its elements is valid against the given schema.
This keyword produces an annotation value which is an array of the indexes to which this keyword validates successfully when applying its subschema, in ascending order. The value MAY be a boolean "true" if the subschema validates successfully when applied to every index of the instance. The annotation MUST be present if the instance array to which this keyword’s schema applies is empty. This annotation affects the behavior of "unevaluatedItems" in the Unevaluated vocabulary, and MAY also be used to implement the "minContains" and "maxContains" keywords in the Validation vocabulary.
The subschema MUST be applied to every array element even after the first match has been found, in order to collect annotations for use by other keywords. This is to ensure that all possible annotations are collected.

Source

classes.lisp.

Target Slot

contains.

Generic Reader: content (object)
Generic Writer: (setf content) (object)
Package

openapi-generator.

Methods
Reader Method: content ((header header))
Writer Method: (setf content) ((header header))

A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.

Source

classes.lisp.

Target Slot

content.

Reader Method: content ((response response))
Writer Method: (setf content) ((response response))

Maps a header name to its definition. [RFC7230] states header names are case insensitive. If a response header is defined with the name "Content-Type", it SHALL be ignored.

Source

classes.lisp.

Target Slot

content.

Reader Method: content ((request-body request-body))
Writer Method: (setf content) ((request-body request-body))

The content of the request body. The key is a media type or media type range and the value describes it. For requests that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*

Source

classes.lisp.

Target Slot

content.

Reader Method: content ((parameter parameter))
Writer Method: (setf content) ((parameter parameter))

A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.

Source

classes.lisp.

Target Slot

content.

Generic Reader: content-encoding (object)
Generic Writer: (setf content-encoding) (object)
Package

openapi-generator.

Methods
Reader Method: content-encoding ((schema schema))
Writer Method: (setf content-encoding) ((schema schema))

If the instance value is a string, this property defines that the string SHOULD be interpreted as encoded binary data and decoded using the encoding named by this property.
Possible values indicating base 16, 32, and 64 encodings with several variations are listed in RFC 4648 [RFC4648]. Additionally, sections 6.7 and 6.8 of RFC 2045 [RFC2045] provide encodings used in MIME. This keyword is derived from MIME’s Content-Transfer-Encoding header, which was designed to map binary data into ASCII characters. It is not related to HTTP’s Content-Encoding header, which is used to encode (e.g. compress or encrypt) the content of HTTP request and responses. As "base64" is defined in both RFCs, the definition from RFC 4648 SHOULD be assumed unless the string is specifically intended for use in a MIME context. Note that all of these encodings result in strings consisting only of 7-bit ASCII characters. Therefore, this keyword has no meaning for strings containing characters outside of that range. If this keyword is absent, but "contentMediaType" is present, this indicates that the encoding is the identity encoding, meaning that no transformation was needed in order to represent the content in a UTF-8 string. The value of this property MUST be a string.

Source

classes.lisp.

Target Slot

content-encoding.

Generic Reader: content-media-type (object)
Generic Writer: (setf content-media-type) (object)
Package

openapi-generator.

Methods
Reader Method: content-media-type ((schema schema))
Writer Method: (setf content-media-type) ((schema schema))

If the instance is a string, this property indicates the media type of the contents of the string. If "contentEncoding" is present, this property describes the decoded string. The value of this property MUST be a string, which MUST be a media type, as defined by RFC 2046 [RFC2046].

Source

classes.lisp.

Target Slot

content-media-type.

Generic Reader: content-schema (object)
Generic Writer: (setf content-schema) (object)
Package

openapi-generator.

Methods
Reader Method: content-schema ((schema schema))
Writer Method: (setf content-schema) ((schema schema))

If the instance is a string, and if "contentMediaType" is present, this property contains a schema which describes the structure of the string. This keyword MAY be used with any media type that can be mapped into JSON Schema’s data model. The value of this property MUST be a valid JSON schema. It SHOULD be ignored if "contentMediaType" is not present.

Source

classes.lisp.

Target Slot

content-schema.

Generic Reader: content-type (object)
Generic Writer: (setf content-type) (object)
Package

openapi-generator.

Methods
Reader Method: content-type ((encoding encoding))
Writer Method: (setf content-type) ((encoding encoding))

The Content-Type for encoding a specific property. Default value depends on the property type: for object - application/json; for array – the default is defined based on the inner type; for all other cases the default is application/octet-stream. The value can be a specific media type (e.g. application/json), a wildcard media type (e.g. image/*), or a comma-separated list of the two types.

Source

classes.lisp.

Target Slot

content-type.

Generic Reader: default (object)
Generic Writer: (setf default) (object)
Package

openapi-generator.

Methods
Reader Method: default ((schema schema))
Writer Method: (setf default) ((schema schema))

There are no restrictions placed on the value of this keyword. When multiple occurrences of this keyword are applicable to a single sub-instance, implementations SHOULD remove duplicates. This keyword can be used to supply a default JSON value associated with a particular schema. It is RECOMMENDED that a default value be valid against the associated schema.

Source

classes.lisp.

Target Slot

default.

Reader Method: default ((server-variable server-variable))
Writer Method: (setf default) ((server-variable server-variable))

The default value to use for substitution, which SHALL be sent if an alternate value is not supplied. Note this behavior is different than the Schema Object’s treatment of default values, because in those cases parameter values are optional. If the enum is defined, the value MUST exist in the enum’s values.

Source

classes.lisp.

Target Slot

default.

Generic Reader: definitions (object)
Generic Writer: (setf definitions) (object)
Package

openapi-generator.

Methods
Reader Method: definitions ((schema schema))
Writer Method: (setf definitions) ((schema schema))

Schema Re-Use With "$defs"

The "$defs" keyword reserves a location for schema authors to inline re-usable JSON Schemas into a more general schema. The keyword does not directly affect the validation result.
This keyword’s value MUST be an object. Each member value of this object MUST be a valid JSON Schema. As an example, here is a schema describing an array of positive integers, where the positive integer constraint is a subschema in "$defs":

{
"type": "array",
"items": { "$ref": "#/$defs/positiveInteger" },
"$defs": {
"positiveInteger": {
"type": "integer",
"exclusiveMinimum": 0
}
}
}

Source

classes.lisp.

Target Slot

definitions.

Generic Reader: dependend-required (object)
Generic Writer: (setf dependend-required) (object)
Package

openapi-generator.

Methods
Reader Method: dependend-required ((schema schema))
Writer Method: (setf dependend-required) ((schema schema))

The value of this keyword MUST be an object. Properties in this object, if any, MUST be arrays. Elements in each array, if any, MUST be strings, and MUST be unique.
This keyword specifies properties that are required if a specific other property is present. Their requirement is dependent on the presence of the other property. Validation succeeds if, for each name that appears in both the instance and as a name within this keyword’s value, every item in the corresponding array is also the name of a property in the instance. Omitting this keyword has the same behavior as an empty object.

Source

classes.lisp.

Target Slot

dependend-required.

Generic Reader: dependent-schemas (object)
Generic Writer: (setf dependent-schemas) (object)
Package

openapi-generator.

Methods
Reader Method: dependent-schemas ((schema schema))
Writer Method: (setf dependent-schemas) ((schema schema))

This keyword specifies subschemas that are evaluated if the instance is an object and contains a certain property.
This keyword’s value MUST be an object. Each value in the object MUST be a valid JSON Schema.
If the object key is a property in the instance, the entire instance must validate against the subschema. Its use is dependent on the presence of the property. Omitting this keyword has the same behavior as an empty object.

Source

classes.lisp.

Target Slot

dependent-schemas.

Generic Reader: deprecated (object)
Generic Writer: (setf deprecated) (object)
Package

openapi-generator.

Methods
Reader Method: deprecated ((schema schema))
Writer Method: (setf deprecated) ((schema schema))

The value of this keyword MUST be a boolean.
When multiple occurrences of this keyword are applicable to a single sub-instance, applications SHOULD consider the instance location to be deprecated if any occurrence specifies a true value. If "deprecated" has a value of boolean true, it indicates that applications SHOULD refrain from usage of the declared property. It MAY mean the property is going to be removed in the future. A root schema containing "deprecated" with a value of true indicates that the entire resource being described MAY be removed in the future. The "deprecated" keyword applies to each instance location to which the schema object containing the keyword successfully applies. This can result in scenarios where every array item or object property is deprecated even though the containing array or object is not. Omitting this keyword has the same behavior as a value of false.

Source

classes.lisp.

Target Slot

deprecated.

Reader Method: deprecated ((header header))
Writer Method: (setf deprecated) ((header header))

Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.

Source

classes.lisp.

Target Slot

deprecated.

Reader Method: deprecated ((parameter parameter))
Writer Method: (setf deprecated) ((parameter parameter))

Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.

Source

classes.lisp.

Target Slot

deprecated.

Reader Method: deprecated ((operation operation))
Writer Method: (setf deprecated) ((operation operation))

Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false.

Source

classes.lisp.

Target Slot

deprecated.

Generic Reader: description (object)
Generic Writer: (setf description) (object)
Package

openapi-generator.

Methods
Reader Method: description ((security-scheme security-scheme))
Writer Method: (setf description) ((security-scheme security-scheme))

A description for security scheme. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((schema schema))
Writer Method: (setf description) ((schema schema))

Can be used to decorate a user interface with information about the data produced by this user interface. A description will provide explanation about the purpose of the instance described by this schema.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((reference reference))
Writer Method: (setf description) ((reference reference))

A description which by default SHOULD override that of the referenced component. CommonMark syntax MAY be used for rich text representation. If the referenced object-type does not allow a description field, then this field has no effect.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((tag tag))
Writer Method: (setf description) ((tag tag))

A description for the tag. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((link link))
Writer Method: (setf description) ((link link))

A description of the link. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((example example))
Writer Method: (setf description) ((example example))

Long description for the example. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((response response))
Writer Method: (setf description) ((response response))

A description of the response. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((parameter parameter))
Writer Method: (setf description) ((parameter parameter))

A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((external-documentation external-documentation))
Writer Method: (setf description) ((external-documentation external-documentation))

A description of the target documentation. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((operation operation))
Writer Method: (setf description) ((operation operation))

A verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((path path))
Writer Method: (setf description) ((path path))

An optional, string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((server-variable server-variable))
Writer Method: (setf description) ((server-variable server-variable))

An optional description for the server variable. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((server server))
Writer Method: (setf description) ((server server))

An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((info info))
Writer Method: (setf description) ((info info))

A description of the API. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Generic Reader: discriminator (object)
Generic Writer: (setf discriminator) (object)
Package

openapi-generator.

Methods
Reader Method: discriminator ((schema schema))
Writer Method: (setf discriminator) ((schema schema))

Adds support for polymorphism. The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description. See Composition and Inheritance for more details.

Source

classes.lisp.

Target Slot

discriminator.

Generic Reader: dynamic-anchor (object)
Generic Writer: (setf dynamic-anchor) (object)
Package

openapi-generator.

Methods
Reader Method: dynamic-anchor ((schema schema))
Writer Method: (setf dynamic-anchor) ((schema schema))

Separately from the usual usage of URIs, "$dynamicAnchor" indicates that the fragment is an extension point when used with the "$dynamicRef" keyword. This low-level, advanced feature makes it easier to extend recursive schemas such as the meta-schemas, without imposing any particular semantics on that extension. See the section on "$dynamicRef" (Section 8.2.3.2) for details. In most cases, the normal fragment behavior both suffices and is more intuitive. Therefore it is RECOMMENDED that "$anchor" be used to create plain name fragments unless there is a clear need for "$dynamicAnchor".

Source

classes.lisp.

Target Slot

dynamic-anchor.

Generic Reader: dynamic-reference (object)
Generic Writer: (setf dynamic-reference) (object)
Package

openapi-generator.

Methods
Reader Method: dynamic-reference ((schema schema))
Writer Method: (setf dynamic-reference) ((schema schema))

The $dynamicRef keyword is an applicator that allows for deferring the full resolution until runtime, at which point it is resolved each time it is encountered while evaluating an instance. Together with "$dynamicAnchor", "$dynamicRef" implements a cooperative extension mechanism that is primarily useful with recursive schemas (schemas that reference themselves). Both the extension point and the runtime-determined extension target are defined with "$dynamicAnchor", and only exhibit runtime dynamic behavior when referenced with "$dynamicRef". The value of the "$dynamicRef" property MUST be a string which is a URI-Reference. Resolved against the current URI base, it produces the URI used as the starting point for runtime resolution. This initial resolution is safe to perform on schema load. If the initially resolved starting point URI includes a fragment that was created by the "$dynamicAnchor" keyword, the initial URI MUST be replaced by the URI (including the fragment) for the outermost schema resource in the dynamic scope (Section 7.1) that defines an identically named fragment with "$dynamicAnchor". Otherwise, its behavior is identical to "$ref", and no runtime resolution is needed.

Source

classes.lisp.

Target Slot

dynamic-reference.

Generic Reader: else (object)
Generic Writer: (setf else) (object)
Package

openapi-generator.

Methods
Reader Method: else ((schema schema))
Writer Method: (setf else) ((schema schema))

This keyword’s value MUST be a valid JSON Schema.
When "if" is present, and the instance fails to validate against its subschema, then validation succeeds against this keyword if the instance successfully validates against this keyword’s subschema.
This keyword has no effect when "if" is absent, or when the instance successfully validates against its subschema. Implementations MUST NOT evaluate the instance against this keyword, for either validation or annotation collection purposes, in such cases.

Source

classes.lisp.

Target Slot

else.

Generic Reader: email (object)
Generic Writer: (setf email) (object)
Package

openapi-generator.

Methods
Reader Method: email ((contact contact))
Writer Method: (setf email) ((contact contact))

The email address of the contact person/organization. This MUST be in the form of an email address.

Source

classes.lisp.

Target Slot

email.

Generic Reader: encoding (object)
Generic Writer: (setf encoding) (object)
Package

openapi-generator.

Methods
Reader Method: encoding ((media-type media-type))
Writer Method: (setf encoding) ((media-type media-type))

A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded.

Source

classes.lisp.

Target Slot

encoding.

Generic Function: ensure-json (content)
Package

openapi-generator.

Methods
Method: ensure-json ((content string))

Ensures document is a json

Source

parser.lisp.

Generic Function: ensure-project-directory (directory)

Makes sure that the directory is existing before the template is generated.

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: ensure-project-directory (directory)
Generic Reader: enum (object)
Generic Writer: (setf enum) (object)
Package

openapi-generator.

Methods
Reader Method: enum ((schema schema))
Writer Method: (setf enum) ((schema schema))

The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique. An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword’s array value. Elements in the array might be of any type, including null.

Source

classes.lisp.

Target Slot

enum.

Reader Method: enum ((server-variable server-variable))
Writer Method: (setf enum) ((server-variable server-variable))

An enumeration of string values to be used if the substitution options are from a limited set. The array MUST NOT be empty.

Source

classes.lisp.

Target Slot

enum.

Generic Reader: errors (object)
Generic Writer: (setf errors) (object)
Package

openapi-generator.

Methods
Reader Method: errors ((schema schema))
Writer Method: (setf errors) ((schema schema))

The collection of errors or annotations produced by a failed validation

Source

classes.lisp.

Target Slot

errors.

Generic Reader: example (object)
Generic Writer: (setf example) (object)
Package

openapi-generator.

Methods
Reader Method: example ((header header))
Writer Method: (setf example) ((header header))

Example of the parameter’s potential value. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.

Source

classes.lisp.

Target Slot

example.

Reader Method: example ((media-type media-type))
Writer Method: (setf example) ((media-type media-type))

Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema.

Source

classes.lisp.

Target Slot

example.

Reader Method: example ((parameter parameter))
Writer Method: (setf example) ((parameter parameter))

Example of the parameter’s potential value. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.

Source

classes.lisp.

Target Slot

example.

Generic Reader: examples (object)
Generic Writer: (setf examples) (object)
Package

openapi-generator.

Methods
Reader Method: examples ((schema schema))
Writer Method: (setf examples) ((schema schema))

The value of this keyword MUST be an array. There are no restrictions placed on the values within the array. When multiple occurrences of this keyword are applicable to a single sub-instance, implementations MUST provide a flat array of all values rather than an array of arrays. This keyword can be used to provide sample JSON values associated with a particular schema, for the purpose of illustrating usage. It is RECOMMENDED that these values be valid against the associated schema. Implementations MAY use the value(s) of "default", if present, as an additional example. If "examples" is absent, "default" MAY still be used in this manner.

Source

classes.lisp.

Target Slot

examples.

Reader Method: examples ((header header))
Writer Method: (setf examples) ((header header))

Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL override the example provided by the schema.

Source

classes.lisp.

Target Slot

examples.

Reader Method: examples ((media-type media-type))
Writer Method: (setf examples) ((media-type media-type))

Examples of the media type. Each example object SHOULD match the media type and specified schema if present. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema.

Source

classes.lisp.

Target Slot

examples.

Reader Method: examples ((parameter parameter))
Writer Method: (setf examples) ((parameter parameter))

Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL override the example provided by the schema.

Source

classes.lisp.

Target Slot

examples.

Reader Method: examples ((components components))
Writer Method: (setf examples) ((components components))

An object to hold reusable Example Objects.

Source

classes.lisp.

Target Slot

examples.

Generic Reader: exclusive-maximum (object)
Generic Writer: (setf exclusive-maximum) (object)
Package

openapi-generator.

Methods
Reader Method: exclusive-maximum ((schema schema))
Writer Method: (setf exclusive-maximum) ((schema schema))

The value of "exclusiveMaximum" MUST be a number, representing an exclusive upper limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) "exclusiveMaximum".

Source

classes.lisp.

Target Slot

exclusive-maximum.

Generic Reader: exclusive-minimum (object)
Generic Writer: (setf exclusive-minimum) (object)
Package

openapi-generator.

Methods
Reader Method: exclusive-minimum ((schema schema))
Writer Method: (setf exclusive-minimum) ((schema schema))

The value of "exclusiveMinimum" MUST be a number, representing an exclusive lower limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) "exclusiveMinimum".

Source

classes.lisp.

Target Slot

exclusive-minimum.

Generic Reader: explode (object)
Generic Writer: (setf explode) (object)
Package

openapi-generator.

Methods
Reader Method: explode ((header header))
Writer Method: (setf explode) ((header header))

When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.

Source

classes.lisp.

Target Slot

explode.

Reader Method: explode ((encoding encoding))
Writer Method: (setf explode) ((encoding encoding))

When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When style is form, the default value is true. For all other styles, the default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Source

classes.lisp.

Target Slot

explode.

Reader Method: explode ((parameter parameter))
Writer Method: (setf explode) ((parameter parameter))

When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.

Source

classes.lisp.

Target Slot

explode.

Generic Reader: external-documentation (object)
Generic Writer: (setf external-documentation) (object)
Package

openapi-generator.

Methods
Reader Method: external-documentation ((schema schema))
Writer Method: (setf external-documentation) ((schema schema))

Additional external documentation for this schema.

Source

classes.lisp.

Target Slot

external-documentation.

Reader Method: external-documentation ((tag tag))
Writer Method: (setf external-documentation) ((tag tag))

Additional external documentation for this tag.

Source

classes.lisp.

Target Slot

external-documentation.

Reader Method: external-documentation ((operation operation))
Writer Method: (setf external-documentation) ((operation operation))

Additional external documentation for this operation.

Source

classes.lisp.

Target Slot

external-documentation.

Reader Method: external-documentation ((openapi openapi))
Writer Method: (setf external-documentation) ((openapi openapi))

Additional external documentation.

Source

classes.lisp.

Target Slot

external-docs.

Generic Reader: external-value (object)
Generic Writer: (setf external-value) (object)
Package

openapi-generator.

Methods
Reader Method: external-value ((example example))
Writer Method: (setf external-value) ((example example))

A URI that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents. The value field and externalValue field are mutually exclusive. See the rules for resolving Relative References.

Source

classes.lisp.

Target Slot

external-value.

Generic Reader: flows (object)
Generic Writer: (setf flows) (object)
Package

openapi-generator.

Methods
Reader Method: flows ((security-scheme security-scheme))
Writer Method: (setf flows) ((security-scheme security-scheme))

An object containing configuration information for the flow types supported.

Source

classes.lisp.

Target Slot

flows.

Generic Function: function-name (path operation-type &key param-case)

Generate unique symbole name for given operation-type and path

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: function-name ((path string) (operation-type symbol) &key param-case)
Generic Function: generate-code (api name &key parse headers authorization bearer server cookie alias check-type)

Generate all code to be included in the main.lisp file. Includes defpackage + functions + setf alias

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: generate-code (api name &key parse headers authorization bearer server cookie alias check-type)
Generic Function: generate-defpackage (name api &key alias)

Generate defpackage code including alias functions

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: generate-defpackage (name (api openapi) &key alias)
Generic Function: generate-function (api path operation-type &key check-type)

Generate functions for all types of http request

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: generate-function ((api openapi) (path string) (operation-type symbol) &key check-type)
Generic Function: generate-function-code (api &key check-type)

Generate all function code as list

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: generate-function-code ((api openapi) &key check-type)
Generic Function: generate-parameters (&key query headers authorization bearer cookie parse server)

Creates code to be included in main.lisp for parameters

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: generate-parameters (&key query headers authorization bearer cookie parse server)
Generic Function: generate-slot-alias (api slot)

Create list of setf with slot as alias

Package

openapi-generator.

Source

openapi-generator.lisp.

Methods
Method: generate-slot-alias ((api openapi) (slot string))
Method: generate-slot-alias ((api openapi) (slot symbol))
Generic Function: get-description (operation-object)

Extract documentation slots summary and description from operation object

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-description ((operation-object operation))
Generic Function: get-headers (parameters operation)

Generate code for run-time header checking. Headers are only send, if they are supplied.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-headers ((parameters list) (operation operation))
Generic Function: get-lambda-list (required-parameters optional-parameters operation-object json-body-schema)

Create the lambda list to be included in the generated function.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-lambda-list ((required-parameters list) (optional-parameters list) (operation-object operation) json-body-schema)
Generic Function: get-openapi-version (openapi)

Extract Swagger/Openapi version from api spec

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: get-openapi-version ((openapi openapi))
Method: get-openapi-version ((openapi hash-table))
Method: get-openapi-version ((openapi string))
Method: get-openapi-version ((openapi pathname))
Generic Function: get-optional-parameter (parameters)
Package

openapi-generator.

Methods
Method: get-optional-parameter ((parameters list))

Collect optional parameter from list of parameters

Source

function-generation.lisp.

Generic Function: get-parameter-type (type parameters)

Get list of parameters with specified type: Can be either query, path, head or cookie.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-parameter-type ((type string) (parameters list))
Generic Function: get-path (path parameters)

generate path list

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-path ((path string) (parameters list))
Generic Function: get-primary-uri (api)

Return first server uri

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-primary-uri ((api openapi))
Generic Function: get-query (parameters)

Generate query (if there are parameters)

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-query ((parameters list))
Generic Function: get-required-parameter (parameters)
Package

openapi-generator.

Methods
Method: get-required-parameter ((parameters list))

Collect required parameter from list of parameters

Source

function-generation.lisp.

Generic Function: get-response-type (operation)
Package

openapi-generator.

Methods
Method: get-response-type ((operation operation))

Get response type. Return value can be either :json or nil

Source

function-generation.lisp.

Generic Function: get-uri-type (uri)
Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: get-uri-type ((uri string))
Generic Function: hash-copy-recursive (hash)
Package

openapi-generator.

Methods
Method: hash-copy-recursive ((hash hash-table))

Inspired by cl-hash-util:hash-copy, but performs a recursive (deep) hash-table copy which replaces all internal hash-tables with copies.
This is needed to avoid looping when working with circular json-pointers.

Source

util.lisp.

Generic Reader: head (object)
Generic Writer: (setf head) (object)
Package

openapi-generator.

Methods
Reader Method: head ((path path))
Writer Method: (setf head) ((path path))

A definition of a HEAD operation on this path.

Source

classes.lisp.

Target Slot

head.

Generic Reader: header (object)
Generic Writer: (setf header) (object)
Package

openapi-generator.

Methods
Reader Method: header ((header header))
Writer Method: (setf header) ((header header))

A brief description of the header. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.

Source

classes.lisp.

Target Slot

description.

Generic Reader: headers (object)
Generic Writer: (setf headers) (object)
Package

openapi-generator.

Methods
Reader Method: headers ((response response))
Writer Method: (setf headers) ((response response))

Maps a header name to its definition. [RFC7230] states header names are case insensitive. If a response header is defined with the name "Content-Type", it SHALL be ignored.

Source

classes.lisp.

Target Slot

headers.

Reader Method: headers ((encoding encoding))
Writer Method: (setf headers) ((encoding encoding))

A map allowing additional information to be provided as headers, for example Content-Disposition. Content-Type is described separately and SHALL be ignored in this section. This property SHALL be ignored if the request body media type is not a multipart.

Source

classes.lisp.

Target Slot

headers.

Reader Method: headers ((components components))
Writer Method: (setf headers) ((components components))

An object to hold reusable Header Objects.

Source

classes.lisp.

Target Slot

headers.

Generic Reader: id (object)
Generic Writer: (setf id) (object)
Package

openapi-generator.

Methods
Reader Method: id ((schema schema))
Writer Method: (setf id) ((schema schema))

The "$id" keyword identifies a schema resource with its canonical [RFC6596] URI. Note that this URI is an identifier and not necessarily a network locator. In the case of a network-addressable URL, a schema need not be downloadable from its canonical URI. If present, the value for this keyword MUST be a string, and MUST represent a valid URI-reference [RFC3986]. This URI-reference SHOULD be normalized, and MUST resolve to an absolute-URI [RFC3986] (without a fragment), or to a URI with an empty fragment. The empty fragment form is NOT RECOMMENDED and is retained only for backwards compatibility, and because the application/schema+json media type defines that a URI with an empty fragment identifies the same resource as the same URI with the fragment removed. However, since this equivalence is not part of the RFC 3986 normalization process [RFC3986], implementers and schema authors cannot rely on generic URI libraries understanding it. Therefore, "$id" MUST NOT contain a non-empty fragment, and SHOULD NOT contain an empty fragment. The absolute-URI form MUST be considered the canonical URI, regardless of the presence or absence of an empty fragment. An empty fragment is currently allowed because older meta-schemas have an empty fragment in their $id (or previously, id). A future draft may outright forbid even empty fragments in "$id". The absolute-URI also serves as the base URI for relative URI-references in keywords within the schema resource, in accordance with RFC 3986 section 5.1.1 [RFC3986] regarding base URIs embedded in content. The presence of "$id" in a subschema indicates that the subschema constitutes a distinct schema resource within a single schema document. Furthermore, in accordance with RFC 3986 section 5.1.2 [RFC3986] regarding encapsulating entities, if an "$id" in a subschema is a relative URI-reference, the base URI for resolving that reference is the URI of the parent schema resource. If no parent schema object explicitly identifies itself as a resource with "$id", the base URI is that of the entire document

Source

classes.lisp.

Target Slot

id.

Generic Reader: identifier (object)
Generic Writer: (setf identifier) (object)
Package

openapi-generator.

Methods
Reader Method: identifier ((license license))
Writer Method: (setf identifier) ((license license))

An SPDX license expression for the API. The identifier field is mutually exclusive of the url field.

Source

classes.lisp.

Target Slot

identifier.

Generic Reader: implicit (object)
Generic Writer: (setf implicit) (object)
Package

openapi-generator.

Methods
Reader Method: implicit ((o-auth-flows o-auth-flows))
Writer Method: (setf implicit) ((o-auth-flows o-auth-flows))

Configuration for the OAuth Implicit flow

Source

classes.lisp.

Target Slot

implicit.

Generic Reader: in (object)
Generic Writer: (setf in) (object)
Package

openapi-generator.

Methods
Reader Method: in ((security-scheme security-scheme))
Writer Method: (setf in) ((security-scheme security-scheme))

The location of the API key. Valid values are "query", "header" or "cookie".

Source

classes.lisp.

Target Slot

in.

Reader Method: in ((parameter parameter))
Writer Method: (setf in) ((parameter parameter))

The location of the parameter. Possible values are "query", "header", "path" or "cookie".

Source

classes.lisp.

Target Slot

in.

Generic Reader: info (object)
Generic Writer: (setf info) (object)
Package

openapi-generator.

Methods
Reader Method: info ((openapi openapi))
Writer Method: (setf info) ((openapi openapi))

Provides metadata about the API. The metadata MAY be used by tooling as required.

Source

classes.lisp.

Target Slot

info.

Reader Method: info ((apis-guru-api-version apis-guru-api-version))

Copy of ‘info‘ section from OpenAPI definition

Source

collections.lisp.

Target Slot

info.

Generic Reader: instance-location (object)
Generic Writer: (setf instance-location) (object)
Package

openapi-generator.

Methods
Reader Method: instance-location ((schema schema))
Writer Method: (setf instance-location) ((schema schema))

The location of the JSON value within the instance being validated. The value MUST be expressed as a JSON Pointer.

Source

classes.lisp.

Target Slot

instance-location.

Generic Function: intern-param (s)

Convert string or list of strings to param-cased symbol(s).

Package

openapi-generator.

Source

util.lisp.

Methods
Method: intern-param ((s string))
Method: intern-param ((s null))
Method: intern-param ((s vector))
Method: intern-param ((s list))
Generic Reader: items (object)
Generic Writer: (setf items) (object)
Package

openapi-generator.

Methods
Reader Method: items ((schema schema))
Writer Method: (setf items) ((schema schema))

The value of "items" MUST be a valid JSON Schema.
This keyword applies its subschema to all instance elements at indexes greater than the length of the "prefixItems" array in the same schema object, as reported by the annotation result of that "prefixItems" keyword. If no such annotation result exists, "items" applies its subschema to all instance array elements. Note that the behavior of "items" without "prefixItems" is identical to that of the schema form of "items" in prior drafts. When "prefixItems" is present, the behavior of "items" is identical to the former "additionalItems" keyword. If the "items" subschema is applied to any positions within the instance array, it produces an annotation result of boolean true, indicating that all remaining array elements have been evaluated against this keyword’s subschema. This annotation affects the behavior of "unevaluatedItems" in the Unevaluated vocabulary.
Omitting this keyword has the same assertion behavior as an empty schema.
Implementations MAY choose to implement or optimize this keyword in another way that produces the same effect, such as by directly checking for the presence and size of a "prefixItems" array. Implementations that do not support annotation collection MUST do so.

Source

classes.lisp.

Target Slot

items.

Generic Function: json-body-schema (operation)
Package

openapi-generator.

Methods
Method: json-body-schema ((operation operation))

Return application/json media type or nil.

Source

function-generation.lisp.

Generic Function: json-content (schema &key check-type)
Package

openapi-generator.

Methods
Method: json-content ((schema schema) &key check-type)

Generate the code to validate request-body or generate it according to the spec.

Source

function-generation.lisp.

Generic Reader: json-schema-dialect (object)
Generic Writer: (setf json-schema-dialect) (object)
Package

openapi-generator.

Methods
Reader Method: json-schema-dialect ((openapi-3.1 openapi-3.1))
Writer Method: (setf json-schema-dialect) ((openapi-3.1 openapi-3.1))

The default value for the $schema keyword within Schema Objects contained within this OAS document. This MUST be in the form of a URI.

Source

classes.lisp.

Target Slot

json-schema-dialect.

Generic Reader: keyword-location (object)
Generic Writer: (setf keyword-location) (object)
Package

openapi-generator.

Methods
Reader Method: keyword-location ((schema schema))
Writer Method: (setf keyword-location) ((schema schema))

The relative location of the validating keyword that follows the validation path. The value MUST be expressed as a JSON Pointer, and it MUST include any by-reference applicators such as "$ref" or "$dynamicRef".

/properties/width/$ref/minimum

Note that this pointer may not be resolvable by the normal JSON Pointer process due to the inclusion of these by-reference applicator keywords.

Source

classes.lisp.

Target Slot

keyword-location.

Generic Reader: license (object)
Generic Writer: (setf license) (object)
Package

openapi-generator.

Methods
Reader Method: license ((info info))
Writer Method: (setf license) ((info info))

The license information for the exposed API.

Source

classes.lisp.

Target Slot

license.

Package

openapi-generator.

Methods

A map of operations links that can be followed from the response. The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.

Source

classes.lisp.

Target Slot

links.

An object to hold reusable Link Objects.

Source

classes.lisp.

Target Slot

links.

Generic Function: list-symbols (list)

Filter non-symols out of list

Package

openapi-generator.

Source

util.lisp.

Methods
Method: list-symbols ((list list))
Generic Reader: mapping (object)
Generic Writer: (setf mapping) (object)
Package

openapi-generator.

Methods
Reader Method: mapping ((discriminator discriminator))
Writer Method: (setf mapping) ((discriminator discriminator))

An object to hold mappings between payload values and schema names or references.

Source

classes.lisp.

Target Slot

mapping.

Generic Reader: maximum (object)
Generic Writer: (setf maximum) (object)
Package

openapi-generator.

Methods
Reader Method: maximum ((schema schema))
Writer Method: (setf maximum) ((schema schema))

The value of "maximum" MUST be a number, representing an inclusive upper limit for a numeric instance.
If the instance is a number, then this keyword validates only if the instance is less than or exactly equal to "maximum".

Source

classes.lisp.

Target Slot

maximum.

Generic Reader: maximum-contains (object)
Generic Writer: (setf maximum-contains) (object)
Package

openapi-generator.

Methods
Reader Method: maximum-contains ((schema schema))
Writer Method: (setf maximum-contains) ((schema schema))

The value of this keyword MUST be a non-negative integer.
If "contains" is not present within the same schema object, then this keyword has no effect. An instance array is valid against "maxContains" in two ways, depending on the form of the annotation result of an adjacent "contains" [json-schema] keyword. The first way is if the annotation result is an array and the length of that array is less than or equal to the "maxContains" value. The second way is if the annotation result is a boolean "true" and the instance array length is less than or equal to the "maxContains" value.

Source

classes.lisp.

Target Slot

maximum-contains.

Generic Reader: maximum-items (object)
Generic Writer: (setf maximum-items) (object)
Package

openapi-generator.

Methods
Reader Method: maximum-items ((schema schema))
Writer Method: (setf maximum-items) ((schema schema))

The value of this keyword MUST be a non-negative integer. An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword.

Source

classes.lisp.

Target Slot

maximum-items.

Generic Reader: maximum-length (object)
Generic Writer: (setf maximum-length) (object)
Package

openapi-generator.

Methods
Reader Method: maximum-length ((schema schema))
Writer Method: (setf maximum-length) ((schema schema))

The value of this keyword MUST be a non-negative integer. A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword. The length of a string instance is defined as the number of its characters as defined by RFC 8259 [RFC8259].

Source

classes.lisp.

Target Slot

maximum-length.

Generic Reader: maximum-properties (object)
Generic Writer: (setf maximum-properties) (object)
Package

openapi-generator.

Methods
Reader Method: maximum-properties ((schema schema))
Writer Method: (setf maximum-properties) ((schema schema))

The value of this keyword MUST be a non-negative integer.
An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.

Source

classes.lisp.

Target Slot

maximum-properties.

Generic Reader: minimum (object)
Generic Writer: (setf minimum) (object)
Package

openapi-generator.

Methods
Reader Method: minimum ((schema schema))
Writer Method: (setf minimum) ((schema schema))

The value of "minimum" MUST be a number, representing an inclusive lower limit for a numeric instance. If the instance is a number, then this keyword validates only if the instance is greater than or exactly equal to "minimum".

Source

classes.lisp.

Target Slot

minimum.

Generic Reader: minimum-contains (object)
Generic Writer: (setf minimum-contains) (object)
Package

openapi-generator.

Methods
Reader Method: minimum-contains ((schema schema))
Writer Method: (setf minimum-contains) ((schema schema))

The value of this keyword MUST be a non-negative integer.
If "contains" is not present within the same schema object, then this keyword has no effect. An instance array is valid against "minContains" in two ways, depending on the form of the annotation result of an adjacent "contains" [json-schema] keyword. The first way is if the annotation result is an array and the length of that array is greater than or equal to the "minContains" value. The second way is if the annotation result is a boolean "true" and the instance array length is greater than or equal to the "minContains" value. A value of 0 is allowed, but is only useful for setting a range of occurrences from 0 to the value of "maxContains". A value of 0 causes "minContains" and "contains" to always pass validation (but validation can still fail against a "maxContains" keyword). Omitting this keyword has the same behavior as a value of 1.

Source

classes.lisp.

Target Slot

minimum-contains.

Generic Reader: minimum-items (object)
Generic Writer: (setf minimum-items) (object)
Package

openapi-generator.

Methods
Reader Method: minimum-items ((schema schema))
Writer Method: (setf minimum-items) ((schema schema))

the value of this keyword must be a non-negative integer. an array instance is valid against "minitems" if its size is greater than, or equal to, the value of this keyword. omitting this keyword has the same behavior as a value of 0.

Source

classes.lisp.

Target Slot

minimum-items.

Generic Reader: minimum-length (object)
Generic Writer: (setf minimum-length) (object)
Package

openapi-generator.

Methods
Reader Method: minimum-length ((schema schema))
Writer Method: (setf minimum-length) ((schema schema))

The value of this keyword MUST be a non-negative integer. A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword. The length of a string instance is defined as the number of its characters as defined by RFC 8259 [RFC8259]. Omitting this keyword has the same behavior as a value of 0.

Source

classes.lisp.

Target Slot

minimum-length.

Generic Reader: minimum-properties (object)
Generic Writer: (setf minimum-properties) (object)
Package

openapi-generator.

Methods
Reader Method: minimum-properties ((schema schema))
Writer Method: (setf minimum-properties) ((schema schema))

The value of this keyword MUST be a non-negative integer.
An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword. Omitting this keyword has the same behavior as a value of 0.

Source

classes.lisp.

Target Slot

minimum-properties.

Generic Reader: multiple-of (object)
Generic Writer: (setf multiple-of) (object)
Package

openapi-generator.

Methods
Reader Method: multiple-of ((schema schema))
Writer Method: (setf multiple-of) ((schema schema))

The value of "multipleOf" MUST be a number, strictly greater than 0.
A numeric instance is valid only if division by this keyword’s value results in an integer.

Source

classes.lisp.

Target Slot

multiple-of.

Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

openapi-generator.

Methods
Reader Method: name ((security-scheme security-scheme))
Writer Method: (setf name) ((security-scheme security-scheme))

The name of the header, query or cookie parameter to be used.

Source

classes.lisp.

Target Slot

name.

Reader Method: name ((xml xml))
Writer Method: (setf name) ((xml xml))

Replaces the name of the element/attribute used for the described schema property. When defined within items, it will affect the name of the individual XML elements within the list. When defined alongside type being array (outside the items), it will affect the wrapping element and only if wrapped is true. If wrapped is false, it will be ignored.

Source

classes.lisp.

Target Slot

name.

Reader Method: name ((tag tag))
Writer Method: (setf name) ((tag tag))

The name of the tag.

Source

classes.lisp.

Target Slot

name.

Reader Method: name ((parameter parameter))
Writer Method: (setf name) ((parameter parameter))

The name of the parameter. Parameter names are case sensitive.

If in is "path", the name field MUST correspond to a template expression occurring within the path field in the Paths Object. See Path Templating for further information. If in is "header" and the name field is "Accept", "Content-Type" or "Authorization", the parameter definition SHALL be ignored.
For all other cases, the name corresponds to the parameter name used by the in property.

Source

classes.lisp.

Target Slot

name.

Reader Method: name ((license license))
Writer Method: (setf name) ((license license))

The license name used for the API.

Source

classes.lisp.

Target Slot

name.

Reader Method: name ((contact contact))
Writer Method: (setf name) ((contact contact))

The identifying name of the contact person/organization.

Source

classes.lisp.

Target Slot

name.

Generic Reader: namespace (object)
Generic Writer: (setf namespace) (object)
Package

openapi-generator.

Methods
Reader Method: namespace ((xml xml))
Writer Method: (setf namespace) ((xml xml))

The URI of the namespace definition. This MUST be in the form of an absolute URI.

Source

classes.lisp.

Target Slot

namespace.

Generic Reader: nullable (object)
Generic Writer: (setf nullable) (object)
Package

openapi-generator.

Methods
Reader Method: nullable ((schema schema))
Writer Method: (setf nullable) ((schema schema))

Marks a slot that can be null.

Source

classes.lisp.

Target Slot

nullable.

Generic Function: object-name-symbols (objects)

Outputs list with the name-symbols of the parameter objects in the input list.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: object-name-symbols ((objects list))
Generic Reader: one-of (object)
Generic Writer: (setf one-of) (object)
Package

openapi-generator.

Methods
Reader Method: one-of ((schema schema))
Writer Method: (setf one-of) ((schema schema))

This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates successfully against exactly one schema defined by this keyword’s value.

Source

classes.lisp.

Target Slot

one-of.

Generic Reader: open-id-connect-url (object)
Generic Writer: (setf open-id-connect-url) (object)
Package

openapi-generator.

Methods
Reader Method: open-id-connect-url ((security-scheme security-scheme))
Writer Method: (setf open-id-connect-url) ((security-scheme security-scheme))

OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL. The OpenID Connect standard requires the use of TLS.

Source

classes.lisp.

Target Slot

open-id-connect-url.

Generic Reader: openapi (object)
Generic Writer: (setf openapi) (object)
Package

openapi-generator.

Methods
Reader Method: openapi ((openapi openapi))
Writer Method: (setf openapi) ((openapi openapi))

This string MUST be the version number of the OpenAPI Specification that the OpenAPI document uses. The openapi field SHOULD be used by tooling to interpret the OpenAPI document. This is not related to the API info.version string.

Source

classes.lisp.

Target Slot

openapi.

Generic Reader: operation-id (object)
Generic Writer: (setf operation-id) (object)
Package

openapi-generator.

Methods
Reader Method: operation-id ((link link))
Writer Method: (setf operation-id) ((link link))

The name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive of the operationRef field.

Source

classes.lisp.

Target Slot

operation-id.

Reader Method: operation-id ((operation operation))
Writer Method: (setf operation-id) ((operation operation))

Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.

Source

classes.lisp.

Target Slot

operation-id.

Generic Reader: operation-ref (object)
Generic Writer: (setf operation-ref) (object)
Package

openapi-generator.

Methods
Reader Method: operation-ref ((link link))
Writer Method: (setf operation-ref) ((link link))

A relative or absolute URI reference to an OAS operation. This field is mutually exclusive of the operationId field, and MUST point to an Operation Object. Relative operationRef values MAY be used to locate an existing Operation Object in the OpenAPI definition. See the rules for resolving Relative References.

Source

classes.lisp.

Target Slot

operation-ref.

Generic Reader: options (object)
Generic Writer: (setf options) (object)
Package

openapi-generator.

Methods
Reader Method: options ((path path))
Writer Method: (setf options) ((path path))

A definition of a OPTIONS operation on this path.

Source

classes.lisp.

Target Slot

options.

Generic Function: parameter-schema-type (parameter)

Return the parameter type from schema

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: parameter-schema-type ((parameter parameter))
Generic Reader: parameters (object)
Generic Writer: (setf parameters) (object)
Package

openapi-generator.

Methods
Reader Method: parameters ((link link))
Writer Method: (setf parameters) ((link link))

A map representing parameters to pass to an operation as specified with operationId or identified via operationRef. The key is the parameter name to be used, whereas the value can be a constant or an expression to be evaluated and passed to the linked operation. The parameter name can be qualified using the parameter location [{in}.]{name} for operations that use the same parameter name in different locations (e.g. path.id).

Source

classes.lisp.

Target Slot

parameters.

Reader Method: parameters ((operation operation))
Writer Method: (setf parameters) ((operation operation))

A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object’s components/parameters.

Source

classes.lisp.

Target Slot

parameters.

Reader Method: parameters ((path path))
Writer Method: (setf parameters) ((path path))

A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object’s components/parameters.

Source

classes.lisp.

Target Slot

parameters.

Reader Method: parameters ((components components))
Writer Method: (setf parameters) ((components components))

An object to hold reusable Parameter Objects.

Source

classes.lisp.

Target Slot

parameters.

Generic Function: parse-apis-guru-id (file-name apis-guru-id &key converter-url)

parse api guru name with parse url

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: parse-apis-guru-id ((file-name string) (apis-guru-id string) &key converter-url)
Generic Function: parse-directory (source-directory target-directory &key converter-url dereference)

Parse file from source directory to target-directory as usable JSON Openapi 3.X

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: parse-directory ((source-directory pathname) (target-directory pathname) &key converter-url dereference)
Generic Function: parse-string (file-name file &key converter-url)

Safe string to file in local folder

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: parse-string ((file-name string) (file string) &key converter-url)
Generic Function: parse-url (name url &key converter-url dereference)

Parse url into package and save file in openapi-generator/data.
Supported are: url / apis-guru / path / name (in openapi-generator/data folder)

Package

openapi-generator.

Source

parser.lisp.

Methods
Method: parse-url ((file-name string) (url string) &key converter-url dereference)
Method: parse-url ((file-name null) (url string) &key converter-url dereference)
Generic Reader: password (object)
Generic Writer: (setf password) (object)
Package

openapi-generator.

Methods
Reader Method: password ((o-auth-flows o-auth-flows))
Writer Method: (setf password) ((o-auth-flows o-auth-flows))

Configuration for the OAuth Resource Owner Password flow

Source

classes.lisp.

Target Slot

password.

Generic Reader: patch (object)
Generic Writer: (setf patch) (object)
Package

openapi-generator.

Methods
Reader Method: patch ((path path))
Writer Method: (setf patch) ((path path))

A definition of a PATCH operation on this path.

Source

classes.lisp.

Target Slot

patch.

Generic Reader: path-delete (object)
Generic Writer: (setf path-delete) (object)
Package

openapi-generator.

Methods
Reader Method: path-delete ((path path))
Writer Method: (setf path-delete) ((path path))

A definition of a DELETE operation on this path.

Source

classes.lisp.

Target Slot

delete.

Generic Reader: path-get (object)
Generic Writer: (setf path-get) (object)
Package

openapi-generator.

Methods
Reader Method: path-get ((path path))
Writer Method: (setf path-get) ((path path))

A definition of a GET operation on this path.

Source

classes.lisp.

Target Slot

get.

Generic Reader: path-items (object)
Generic Writer: (setf path-items) (object)
Package

openapi-generator.

Methods
Reader Method: path-items ((components components))
Writer Method: (setf path-items) ((components components))

An object to hold reusable Path Item Object.

Source

classes.lisp.

Target Slot

path-items.

Generic Function: path-list (path)

Convert path string into a list of strings and symbols

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: path-list ((path string))
Generic Function: path-list-stringified (path-list parameter-list)

Get a list where symbols that will have a value of type strings are untouched, while symbols will have numbers values are converted into strings at run time.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: path-list-stringified ((path-list list) (parameter-list list))
Generic Reader: path-trace (object)
Generic Writer: (setf path-trace) (object)
Package

openapi-generator.

Methods
Reader Method: path-trace ((path path))
Writer Method: (setf path-trace) ((path path))

A definition of a TRACE operation on this path.

Source

classes.lisp.

Target Slot

trace.

Generic Reader: paths (object)
Generic Writer: (setf paths) (object)
Package

openapi-generator.

Methods
Reader Method: paths ((openapi openapi))
Writer Method: (setf paths) ((openapi openapi))

The available paths and operations for the API.
Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the Server Object in order to construct the full URL. The Paths MAY be empty, due to Access Control List (ACL) constraints.

Source

classes.lisp.

Target Slot

paths.

Generic Reader: pattern (object)
Generic Writer: (setf pattern) (object)
Package

openapi-generator.

Methods
Reader Method: pattern ((schema schema))
Writer Method: (setf pattern) ((schema schema))

The value of this keyword MUST be a string.
This string SHOULD be a valid regular expression, according to the ECMA-262 regular expression dialect. A string instance is considered valid if the regular expression matches the instance successfully. Recall: regular expressions are not implicitly anchored.

Source

classes.lisp.

Target Slot

pattern.

Generic Reader: pattern-properties (object)
Generic Writer: (setf pattern-properties) (object)
Package

openapi-generator.

Methods
Reader Method: pattern-properties ((schema schema))
Writer Method: (setf pattern-properties) ((schema schema))

The value of "patternProperties" MUST be an object.
Each property name of this object SHOULD be a valid regular expression, according to the ECMA-262 regular expression dialect. Each property value of this object MUST be a valid JSON Schema.
Validation succeeds if, for each instance name that matches any regular expressions that appear as a property name in this keyword’s value, the child instance for that name successfully validates against each schema that corresponds to a matching regular expression. The annotation result of this keyword is the set of instance property names matched by this keyword. This annotation affects the behavior of "additionalProperties" (in this vocabulary) and "unevaluatedProperties" (in the Unevaluated vocabulary).
Omitting this keyword has the same assertion behavior as an empty object.

Source

classes.lisp.

Target Slot

pattern-properties.

Generic Reader: post (object)
Generic Writer: (setf post) (object)
Package

openapi-generator.

Methods
Reader Method: post ((path path))
Writer Method: (setf post) ((path path))

A definition of a POST operation on this path.

Source

classes.lisp.

Target Slot

post.

Generic Reader: preferred (object)
Package

openapi-generator.

Methods
Reader Method: preferred ((apis-guru-api apis-guru-api))

Recommended version

Source

collections.lisp.

Target Slot

preferred.

Generic Reader: prefix (object)
Generic Writer: (setf prefix) (object)
Package

openapi-generator.

Methods
Reader Method: prefix ((xml xml))
Writer Method: (setf prefix) ((xml xml))

The prefix to be used for the name.

Source

classes.lisp.

Target Slot

prefix.

Generic Reader: prefix-items (object)
Generic Writer: (setf prefix-items) (object)
Package

openapi-generator.

Methods
Reader Method: prefix-items ((schema schema))
Writer Method: (setf prefix-items) ((schema schema))

The value of "prefixItems" MUST be a non-empty array of valid JSON Schemas.
Validation succeeds if each element of the instance validates against the schema at the same position, if any. This keyword does not constrain the length of the array. If the array is longer than this keyword’s value, this keyword validates only the prefix of matching length.
This keyword produces an annotation value which is the largest index to which this keyword applied a subschema. The value MAY be a boolean true if a subschema was applied to every index of the instance, such as is produced by the "items" keyword. This annotation affects the behavior of "items" and "unevaluatedItems". Omitting this keyword has the same assertion behavior as an empty array.

Source

classes.lisp.

Target Slot

prefix-items.

Generic Reader: properties (object)
Generic Writer: (setf properties) (object)
Package

openapi-generator.

Methods
Reader Method: properties ((schema schema))
Writer Method: (setf properties) ((schema schema))

The value of "properties" MUST be an object.
Each value of this object MUST be a valid JSON Schema.
Validation succeeds if, for each name that appears in both the instance and as a name within this keyword’s value, the child instance for that name successfully validates against the corresponding schema.
The annotation result of this keyword is the set of instance property names matched by this keyword. This annotation affects the behavior of "additionalProperties" (in this vocabulary) and "unevaluatedProperties" in the Unevaluated vocabulary. Omitting this keyword has the same assertion behavior as an empty object.

Source

classes.lisp.

Target Slot

properties.

Generic Reader: property-name (object)
Generic Writer: (setf property-name) (object)
Package

openapi-generator.

Methods
Reader Method: property-name ((discriminator discriminator))
Writer Method: (setf property-name) ((discriminator discriminator))

The name of the property in the payload that will hold the discriminator value.

Source

classes.lisp.

Target Slot

property-name.

Generic Reader: property-names (object)
Generic Writer: (setf property-names) (object)
Package

openapi-generator.

Methods
Reader Method: property-names ((schema schema))
Writer Method: (setf property-names) ((schema schema))

The value of "propertyNames" MUST be a valid JSON Schema.
If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema. Note the property name that the schema is testing will always be a string. Omitting this keyword has the same behavior as an empty schema.

Source

classes.lisp.

Target Slot

property-names.

Generic Reader: put (object)
Generic Writer: (setf put) (object)
Package

openapi-generator.

Methods
Reader Method: put ((path path))
Writer Method: (setf put) ((path path))

A definition of a PUT operation on this path.

Source

classes.lisp.

Target Slot

put.

Generic Reader: read-only (object)
Generic Writer: (setf read-only) (object)
Package

openapi-generator.

Methods
Reader Method: read-only ((schema schema))
Writer Method: (setf read-only) ((schema schema))

The value of these keywords MUST be a boolean. When multiple occurrences of these keywords are applicable to a single sub-instance, the resulting behavior SHOULD be as for a true value if any occurrence specifies a true value, and SHOULD be as for a false value otherwise.
If "readOnly" has a value of boolean true, it indicates that the value of the instance is managed exclusively by the owning authority, and attempts by an application to modify the value of this property are expected to be ignored or rejected by that owning authority.
An instance document that is marked as "readOnly" for the entire document MAY be ignored if sent to the owning authority, or MAY result in an error, at the authority’s discretion.
For example, "readOnly" would be used to mark a database-generated serial number as read-only, while "writeOnly" would be used to mark a password input field. These keywords can be used to assist in user interface instance generation. In particular, an application MAY choose to use a widget that hides input values as they are typed for write-only fields. Omitting these keywords has the same behavior as values of false

Source

classes.lisp.

Target Slot

read-only.

Generic Reader: reference (object)
Package

openapi-generator.

Methods
Reader Method: reference ((security-scheme security-scheme))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((reference reference))

The reference identifier. This MUST be in the form of a URI.

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((header header))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((link link))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((example example))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((response response))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((request-body request-body))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((parameter parameter))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((path path))

Allows for a referenced definition of this path item. The referenced structure MUST be in the form of a Path Item Object. In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is undefined. See the rules for resolving Relative References.

Source

classes.lisp.

Target Slot

reference.

Reader Method: reference ((components components))

automatically generated reader method

Source

classes.lisp.

Target Slot

reference.

Generic Writer: (setf reference) (object)
Package

openapi-generator.

Methods
Writer Method: (setf reference) ((security-scheme security-scheme))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((reference reference))

The reference identifier. This MUST be in the form of a URI.

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((header header))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((link link))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((example example))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((response response))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((request-body request-body))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((parameter parameter))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((path path))

Allows for a referenced definition of this path item. The referenced structure MUST be in the form of a Path Item Object. In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is undefined. See the rules for resolving Relative References.

Source

classes.lisp.

Target Slot

reference.

Writer Method: (setf reference) ((components components))

automatically generated writer method

Source

classes.lisp.

Target Slot

reference.

Generic Reader: referenece (object)
Generic Writer: (setf referenece) (object)
Package

openapi-generator.

Methods
Reader Method: referenece ((schema schema))
Writer Method: (setf referenece) ((schema schema))

Direct References with "$ref"

The "$ref" keyword is an applicator that is used to reference a statically identified schema. Its results are the results of the referenced schema. Note that this definition of how the results are determined means that other keywords can appear alongside of "$ref" in the same schema object. The value of the "$ref" keyword MUST be a string which is a URI-Reference. Resolved against the current URI base, it produces the URI of the schema to apply. This resolution is safe to perform on schema load, as the process of evaluating an instance cannot change how the reference resolves.

Source

classes.lisp.

Target Slot

reference.

Generic Reader: refresh-url (object)
Generic Writer: (setf refresh-url) (object)
Package

openapi-generator.

Methods
Reader Method: refresh-url ((o-auth-flow o-auth-flow))
Writer Method: (setf refresh-url) ((o-auth-flow o-auth-flow))

The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Source

classes.lisp.

Target Slot

refresh-url.

Generic Reader: request-bodies (object)
Generic Writer: (setf request-bodies) (object)
Package

openapi-generator.

Methods
Reader Method: request-bodies ((components components))
Writer Method: (setf request-bodies) ((components components))

An object to hold reusable Request Body Objects.

Source

classes.lisp.

Target Slot

request-bodies.

Generic Reader: request-body (object)
Generic Writer: (setf request-body) (object)
Package

openapi-generator.

Methods
Reader Method: request-body ((link link))
Writer Method: (setf request-body) ((link link))

A literal value or {expression} to use as a request body when calling the target operation.

Source

classes.lisp.

Target Slot

request-body.

Reader Method: request-body ((operation operation))
Writer Method: (setf request-body) ((operation operation))

The request body applicable for this operation. The requestBody is fully supported in HTTP methods where the HTTP 1.1 specification [RFC7231] has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague (such as GET, HEAD and DELETE), requestBody is permitted but does not have well-defined semantics and SHOULD be avoided if possible.

Source

classes.lisp.

Target Slot

request-body.

Generic Reader: required (object)
Generic Writer: (setf required) (object)
Package

openapi-generator.

Methods
Reader Method: required ((schema schema))
Writer Method: (setf required) ((schema schema))

The value of this keyword MUST be an array. Elements of this array, if any, MUST be strings, and MUST be unique.
An object instance is valid against this keyword if every item in the array is the name of a property in the instance. Omitting this keyword has the same behavior as an empty array.

Source

classes.lisp.

Target Slot

required.

Reader Method: required ((header header))
Writer Method: (setf required) ((header header))

Determines whether this header is mandatory.

Source

classes.lisp.

Target Slot

required.

Reader Method: required ((parameter parameter))
Writer Method: (setf required) ((parameter parameter))

Determines whether this parameter is mandatory. If the parameter location is "path", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false.

Source

classes.lisp.

Target Slot

required.

Generic Reader: responses (object)
Generic Writer: (setf responses) (object)
Package

openapi-generator.

Methods
Reader Method: responses ((operation operation))
Writer Method: (setf responses) ((operation operation))

The list of possible responses as they are returned from executing this operation.

A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.

The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.

The default MAY be used as a default response object for all HTTP codes that are not covered individually by the Responses Object.

The Responses Object MUST contain at least one response code, and if only one response code is provided it SHOULD be the response for a successful operation call.

Source

classes.lisp.

Target Slot

responses.

Reader Method: responses ((components components))
Writer Method: (setf responses) ((components components))

An object to hold reusable Response Objects.

Source

classes.lisp.

Target Slot

responses.

Generic Reader: schema (object)
Package

openapi-generator.

Methods
Reader Method: schema ((schema schema))

Specifying Schema Dialects

It is important for tooling to be able to determine which dialect or meta-schema any given resource wishes to be processed with: JSON Schema Core, JSON Schema Validation, OpenAPI Schema dialect, or some custom meta-schema.

The $schema keyword MAY be present in any root Schema Object, and if present MUST be used to determine which dialect should be used when processing the schema. This allows use of Schema Objects which comply with other drafts of JSON Schema than the default Draft 2020-12 support. Tooling MUST support the OAS dialect schema id, and MAY support additional values of $schema.

To allow use of a different default $schema value for all Schema Objects contained within an OAS document, a jsonSchemaDialect value may be set within the OpenAPI Object. If this default is not set, then the OAS dialect schema id MUST be used for these Schema Objects. The value of $schema within a Schema Object always overrides any default.

When a Schema Object is referenced from an external resource which is not an OAS document (e.g. a bare JSON Schema resource), then the value of the $schema keyword for schemas within that resource MUST follow JSON Schema rules

Source

classes.lisp.

Target Slot

schema.

Reader Method: schema ((header header))

The schema defining the type used for the parameter.

Source

classes.lisp.

Target Slot

schema.

Reader Method: schema ((media-type media-type))

The schema defining the content of the request, response, or parameter.

Source

classes.lisp.

Target Slot

schema.

Reader Method: schema ((parameter parameter))

The schema defining the type used for the parameter.

Source

classes.lisp.

Target Slot

schema.

Reader Method: schema ((openapi openapi))

automatically generated reader method

Source

classes.lisp.

Target Slot

schema.

Generic Writer: (setf schema) (object)
Package

openapi-generator.

Methods
Writer Method: (setf schema) ((schema schema))

Specifying Schema Dialects

It is important for tooling to be able to determine which dialect or meta-schema any given resource wishes to be processed with: JSON Schema Core, JSON Schema Validation, OpenAPI Schema dialect, or some custom meta-schema.

The $schema keyword MAY be present in any root Schema Object, and if present MUST be used to determine which dialect should be used when processing the schema. This allows use of Schema Objects which comply with other drafts of JSON Schema than the default Draft 2020-12 support. Tooling MUST support the OAS dialect schema id, and MAY support additional values of $schema.

To allow use of a different default $schema value for all Schema Objects contained within an OAS document, a jsonSchemaDialect value may be set within the OpenAPI Object. If this default is not set, then the OAS dialect schema id MUST be used for these Schema Objects. The value of $schema within a Schema Object always overrides any default.

When a Schema Object is referenced from an external resource which is not an OAS document (e.g. a bare JSON Schema resource), then the value of the $schema keyword for schemas within that resource MUST follow JSON Schema rules

Source

classes.lisp.

Target Slot

schema.

Writer Method: (setf schema) ((header header))

The schema defining the type used for the parameter.

Source

classes.lisp.

Target Slot

schema.

Writer Method: (setf schema) ((media-type media-type))

The schema defining the content of the request, response, or parameter.

Source

classes.lisp.

Target Slot

schema.

Writer Method: (setf schema) ((parameter parameter))

The schema defining the type used for the parameter.

Source

classes.lisp.

Target Slot

schema.

Writer Method: (setf schema) ((openapi openapi))

automatically generated writer method

Source

classes.lisp.

Target Slot

schema.

Generic Reader: schema-if (object)
Generic Writer: (setf schema-if) (object)
Package

openapi-generator.

Methods
Reader Method: schema-if ((schema schema))
Writer Method: (setf schema-if) ((schema schema))

This keyword’s value MUST be a valid JSON Schema.
This validation outcome of this keyword’s subschema has no direct effect on the overall validation result. Rather, it controls which of the "then" or "else" keywords are evaluated. Instances that successfully validate against this keyword’s subschema MUST also be valid against the subschema value of the "then" keyword, if present.
Instances that fail to validate against this keyword’s subschema MUST also be valid against the subschema value of the "else" keyword, if present.
If annotations (Section 7.7) are being collected, they are collected from this keyword’s subschema in the usual way, including when the keyword is present without either "then" or "else".

Source

classes.lisp.

Target Slot

if.

Generic Reader: schema-not (object)
Generic Writer: (setf schema-not) (object)
Package

openapi-generator.

Methods
Reader Method: schema-not ((schema schema))
Writer Method: (setf schema-not) ((schema schema))

This keyword’s value MUST be a valid JSON Schema.
An instance is valid against this keyword if it fails to validate successfully against the schema defined by this keyword.

Source

classes.lisp.

Target Slot

not.

Generic Reader: schema-type (object)
Generic Writer: (setf schema-type) (object)
Package

openapi-generator.

Methods
Reader Method: schema-type ((schema schema))
Writer Method: (setf schema-type) ((schema schema))

The value of this keyword MUST be either a string or an array. If it is an array, elements of the array MUST be strings and MUST be unique.
String values MUST be one of the six primitive types ("null", "boolean", "object", "array", number, or string"), or "integer" which matches any number with a zero fractional part.
If the value of type is a string, then an instance validates successfully if its type matches the type represented by the value of the string. If the value of type is an array, then an instance validates successfully if its type matches any of the types indicated by the strings in the array.

Source

classes.lisp.

Target Slot

type.

Generic Reader: schemas (object)
Generic Writer: (setf schemas) (object)
Package

openapi-generator.

Methods
Reader Method: schemas ((components components))
Writer Method: (setf schemas) ((components components))

An object to hold reusable Schema Objects.

Source

classes.lisp.

Target Slot

schemas.

Generic Reader: scheme (object)
Generic Writer: (setf scheme) (object)
Package

openapi-generator.

Methods
Reader Method: scheme ((security-scheme security-scheme))
Writer Method: (setf scheme) ((security-scheme security-scheme))

The name of the HTTP Authorization scheme to be used in the Authorization header as defined in [RFC7235]. The values used SHOULD be registered in the IANA Authentication Scheme registry.

Source

classes.lisp.

Target Slot

scheme.

Generic Reader: scopes (object)
Generic Writer: (setf scopes) (object)
Package

openapi-generator.

Methods
Reader Method: scopes ((o-auth-flow o-auth-flow))
Writer Method: (setf scopes) ((o-auth-flow o-auth-flow))

The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.

Source

classes.lisp.

Target Slot

scopes.

Generic Reader: security (object)
Generic Writer: (setf security) (object)
Package

openapi-generator.

Methods
Reader Method: security ((operation operation))
Writer Method: (setf security) ((operation operation))

A declaration of which security mechanisms can be used for this operation. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. To make security optional, an empty security requirement ({}) can be included in the array. This definition overrides any declared top-level security. To remove a top-level security declaration, an empty array can be used.

Source

classes.lisp.

Target Slot

security.

Reader Method: security ((openapi openapi))
Writer Method: (setf security) ((openapi openapi))

A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition. To make security optional, an empty security requirement ({}) can be included in the array.

Source

classes.lisp.

Target Slot

security.

Generic Reader: security-scheme-type (object)
Generic Writer: (setf security-scheme-type) (object)
Package

openapi-generator.

Methods
Reader Method: security-scheme-type ((security-scheme security-scheme))
Writer Method: (setf security-scheme-type) ((security-scheme security-scheme))

The type of the security scheme. Valid values are "apiKey", "http", "mutualTLS", "oauth2", "openIdConnect".

Source

classes.lisp.

Target Slot

type.

Generic Reader: security-schemes (object)
Generic Writer: (setf security-schemes) (object)
Package

openapi-generator.

Methods
Reader Method: security-schemes ((components components))
Writer Method: (setf security-schemes) ((components components))

An object to hold reusable Security Scheme Objects.

Source

classes.lisp.

Target Slot

security-schemes.

Generic Reader: server (object)
Generic Writer: (setf server) (object)
Package

openapi-generator.

Methods
Reader Method: server ((link link))
Writer Method: (setf server) ((link link))

server object to be used by the target operation.

Source

classes.lisp.

Target Slot

server.

Generic Reader: servers (object)
Generic Writer: (setf servers) (object)
Package

openapi-generator.

Methods
Reader Method: servers ((operation operation))
Writer Method: (setf servers) ((operation operation))

An alternative server array to service this operation. If an alternative server object is specified at the Path Item Object or Root level, it will be overridden by this value.

Source

classes.lisp.

Target Slot

servers.

Reader Method: servers ((path path))
Writer Method: (setf servers) ((path path))

An alternative server array to service all operations in this path.

Source

classes.lisp.

Target Slot

servers.

Reader Method: servers ((openapi openapi))
Writer Method: (setf servers) ((openapi openapi))

An array of Server Objects, which provide connectivity information to a target server. If the servers property is not provided, or is an empty array, the default value would be a Server Object with a url value of /.

Source

classes.lisp.

Target Slot

servers.

Generic Reader: style (object)
Generic Writer: (setf style) (object)
Package

openapi-generator.

Methods
Reader Method: style ((header header))
Writer Method: (setf style) ((header header))

Describes how the parameter value will be serialized depending on the type of the parameter value. Default value: simple.

Source

classes.lisp.

Target Slot

style.

Reader Method: style ((encoding encoding))
Writer Method: (setf style) ((encoding encoding))

Describes how a specific property value will be serialized depending on its type. See Parameter Object for details on the style property. The behavior follows the same values as query parameters, including default values. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Source

classes.lisp.

Target Slot

style.

Reader Method: style ((parameter parameter))
Writer Method: (setf style) ((parameter parameter))

Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form.

Source

classes.lisp.

Target Slot

style.

Generic Reader: summary (object)
Generic Writer: (setf summary) (object)
Package

openapi-generator.

Methods
Reader Method: summary ((reference reference))
Writer Method: (setf summary) ((reference reference))

A short summary which by default SHOULD override that of the referenced component. If the referenced object-type does not allow a summary field, then this field has no effect.

Source

classes.lisp.

Target Slot

summary.

Reader Method: summary ((example example))
Writer Method: (setf summary) ((example example))

Short description for the example.

Source

classes.lisp.

Target Slot

summary.

Reader Method: summary ((operation operation))
Writer Method: (setf summary) ((operation operation))

A short summary of what the operation does.

Source

classes.lisp.

Target Slot

summary.

Reader Method: summary ((path path))
Writer Method: (setf summary) ((path path))

An optional, string summary, intended to apply to all operations in this path.

Source

classes.lisp.

Target Slot

summary.

Reader Method: summary ((info info))
Writer Method: (setf summary) ((info info))

A short summary of the API.

Source

classes.lisp.

Target Slot

summary.

Generic Reader: tags (object)
Generic Writer: (setf tags) (object)
Package

openapi-generator.

Methods
Reader Method: tags ((operation operation))
Writer Method: (setf tags) ((operation operation))

A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.

Source

classes.lisp.

Target Slot

tags.

Reader Method: tags ((openapi openapi))
Writer Method: (setf tags) ((openapi openapi))

A list of tags used by the document with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools’ logic. Each tag name in the list MUST be unique.

Source

classes.lisp.

Target Slot

tags.

Generic Reader: terms-of-service (object)
Generic Writer: (setf terms-of-service) (object)
Package

openapi-generator.

Methods
Reader Method: terms-of-service ((info info))
Writer Method: (setf terms-of-service) ((info info))

A URL to the Terms of Service for the API. This MUST be in the form of a URL.

Source

classes.lisp.

Target Slot

terms-of-service.

Generic Reader: then (object)
Generic Writer: (setf then) (object)
Package

openapi-generator.

Methods
Reader Method: then ((schema schema))
Writer Method: (setf then) ((schema schema))

This keyword’s value MUST be a valid JSON Schema.
When "if" is present, and the instance successfully validates against its subschema, then validation succeeds against this keyword if the instance also successfully validates against this keyword’s subschema.
This keyword has no effect when "if" is absent, or when the instance fails to validate against its subschema. Implementations MUST NOT evaluate the instance against this keyword, for either validation or annotation collection purposes, in such cases.

Source

classes.lisp.

Target Slot

then.

Generic Reader: title (object)
Package

openapi-generator.

Methods
Reader Method: title ((path-item-or-reference path-item-or-reference))

automatically generated reader method

Source

classes.lisp.

Target Slot

title.

Reader Method: title ((schema schema))

Can be used to decorate a user interface with information about the data produced by this user interface. A title will preferably be short.

Source

classes.lisp.

Target Slot

title.

Reader Method: title ((info info))

The title of the API.

Source

classes.lisp.

Target Slot

title.

Generic Writer: (setf title) (object)
Package

openapi-generator.

Methods
Writer Method: (setf title) ((path-item-or-reference path-item-or-reference))

automatically generated writer method

Source

classes.lisp.

Target Slot

title.

Writer Method: (setf title) ((schema schema))

Can be used to decorate a user interface with information about the data produced by this user interface. A title will preferably be short.

Source

classes.lisp.

Target Slot

title.

Writer Method: (setf title) ((info info))

The title of the API.

Source

classes.lisp.

Target Slot

title.

Generic Reader: token-url (object)
Generic Writer: (setf token-url) (object)
Package

openapi-generator.

Methods
Reader Method: token-url ((o-auth-flow o-auth-flow))
Writer Method: (setf token-url) ((o-auth-flow o-auth-flow))

The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Source

classes.lisp.

Target Slot

token-url.

Generic Function: type-conversion (json-type)

Convert json-type string or list of strings to lisp types.

Package

openapi-generator.

Source

function-generation.lisp.

Methods
Method: type-conversion ((json-type string))
Method: type-conversion ((json-type vector))
Method: type-conversion ((json-type null))
Generic Reader: unevaluated-items (object)
Generic Writer: (setf unevaluated-items) (object)
Package

openapi-generator.

Methods
Reader Method: unevaluated-items ((schema schema))
Writer Method: (setf unevaluated-items) ((schema schema))

The value of "unevaluatedItems" MUST be a valid JSON Schema.
The behavior of this keyword depends on the annotation results of adjacent keywords that apply to the instance location being validated. Specifically, the annotations from "prefixItems", "items", and "contains", which can come from those keywords when they are adjacent to the "unevaluatedItems" keyword. Those three annotations, as well as "unevaluatedItems", can also result from any and all adjacent in-place applicator (Section 10.2) keywords. This includes but is not limited to the in-place applicators defined in this document. If no relevant annotations are present, the "unevaluatedItems" subschema MUST be applied to all locations in the array. If a boolean true value is present from any of the relevant annotations, "unevaluatedItems" MUST be ignored. Otherwise, the subschema MUST be applied to any index greater than the largest annotation value for "prefixItems", which does not appear in any annotation value for "contains".
This means that "prefixItems", "items", "contains", and all in-place applicators MUST be evaluated before this keyword can be evaluated. Authors of extension keywords MUST NOT define an in-place applicator that would need to be evaluated after this keyword.
If the "unevaluatedItems" subschema is applied to any positions within the instance array, it produces an annotation result of boolean true, analogous to the behavior of "items". This annotation affects the behavior of "unevaluatedItems" in parent schemas.
Omitting this keyword has the same assertion behavior as an empty schema.

Source

classes.lisp.

Target Slot

unevaluated-items.

Generic Reader: unevaluated-properties (object)
Generic Writer: (setf unevaluated-properties) (object)
Package

openapi-generator.

Methods
Reader Method: unevaluated-properties ((schema schema))
Writer Method: (setf unevaluated-properties) ((schema schema))

The value of "unevaluatedProperties" MUST be a valid JSON Schema.
The behavior of this keyword depends on the annotation results of adjacent keywords that apply to the instance location being validated. Specifically, the annotations from "properties", "patternProperties", and "additionalProperties", which can come from those keywords when they are adjacent to the "unevaluatedProperties" keyword. Those three annotations, as well as "unevaluatedProperties", can also result from any and all adjacent in-place applicator (Section 10.2) keywords. This includes but is not limited to the in-place applicators defined in this document. Validation with "unevaluatedProperties" applies only to the child values of instance names that do not appear in the "properties", "patternProperties", "additionalProperties", or "unevaluatedProperties" annotation results that apply to the instance location being validated.
For all such properties, validation succeeds if the child instance validates against the "unevaluatedProperties" schema.
This means that "properties", "patternProperties", "additionalProperties", and all in-place applicators MUST be evaluated before this keyword can be evaluated. Authors of extension keywords MUST NOT define an in-place applicator that would need to be evaluated after this keyword.
The annotation result of this keyword is the set of instance property names validated by this keyword’s subschema. This annotation affects the behavior of "unevaluatedProperties" in parent schemas.
Omitting this keyword has the same assertion behavior as an empty schema.

Source

classes.lisp.

Target Slot

unevaluated-properties.

Generic Reader: unique-items (object)
Generic Writer: (setf unique-items) (object)
Package

openapi-generator.

Methods
Reader Method: unique-items ((schema schema))
Writer Method: (setf unique-items) ((schema schema))

The value of this keyword MUST be a boolean. If this keyword has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique. Omitting this keyword has the same behavior as a value of false.

Source

classes.lisp.

Target Slot

unique-items.

Generic Reader: updated (object)
Package

openapi-generator.

Methods
Reader Method: updated ((apis-guru-api-version apis-guru-api-version))

Timestamp when the version was updated

Source

collections.lisp.

Target Slot

updated.

Generic Reader: url (object)
Generic Writer: (setf url) (object)
Package

openapi-generator.

Methods
Reader Method: url ((external-documentation external-documentation))
Writer Method: (setf url) ((external-documentation external-documentation))

The URL for the target documentation. This MUST be in the form of a URL.

Source

classes.lisp.

Target Slot

url.

Reader Method: url ((server server))
Writer Method: (setf url) ((server server))

A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the OpenAPI document is being served. Variable substitutions will be made when a variable is named in {brackets}.

Source

classes.lisp.

Target Slot

url.

Reader Method: url ((license license))
Writer Method: (setf url) ((license license))

A URL to the license used for the API. This MUST be in the form of a URL. The url field is mutually exclusive of the identifier field.

Source

classes.lisp.

Target Slot

url.

Reader Method: url ((contact contact))
Writer Method: (setf url) ((contact contact))

The URL pointing to the contact information. This MUST be in the form of a URL.

Source

classes.lisp.

Target Slot

url.

Reader Method: url ((apis-guru-origin apis-guru-origin))

automatically generated reader method

Source

collections.lisp.

Target Slot

url.

Reader Method: url ((apis-guru-url apis-guru-url))

automatically generated reader method

Source

collections.lisp.

Target Slot

url.

Generic Reader: valid (object)
Generic Writer: (setf valid) (object)
Package

openapi-generator.

Methods
Reader Method: valid ((schema schema))
Writer Method: (setf valid) ((schema schema))

A boolean value indicating the overall validation success or failure

Source

classes.lisp.

Target Slot

valid.

Generic Reader: value (object)
Generic Writer: (setf value) (object)
Package

openapi-generator.

Methods
Reader Method: value ((example example))
Writer Method: (setf value) ((example example))

Embedded literal example. The value field and externalValue field are mutually exclusive. To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary.

Source

classes.lisp.

Target Slot

value.

Generic Reader: variables (object)
Generic Writer: (setf variables) (object)
Package

openapi-generator.

Methods
Reader Method: variables ((server server))
Writer Method: (setf variables) ((server server))

A map between a variable name and its value. The value is used for substitution in the server’s URL template.

Source

classes.lisp.

Target Slot

variables.

Generic Reader: version (object)
Generic Writer: (setf version) (object)
Package

openapi-generator.

Methods
Reader Method: version ((info info))
Writer Method: (setf version) ((info info))

The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the API implementation version).

Source

classes.lisp.

Target Slot

version.

Generic Reader: versions (object)
Package

openapi-generator.

Methods
Reader Method: versions ((apis-guru-api apis-guru-api))

automatically generated reader method

Source

collections.lisp.

Target Slot

versions.

Generic Reader: vocabulary (object)
Generic Writer: (setf vocabulary) (object)
Package

openapi-generator.

Methods
Reader Method: vocabulary ((schema schema))
Writer Method: (setf vocabulary) ((schema schema))

The "$vocabulary" keyword is used in meta-schemas to identify the vocabularies available for use in schemas described by that meta-schema. It is also used to indicate whether each vocabulary is required or optional, in the sense that an implementation MUST understand the required vocabularies in order to successfully process the schema. Together, this information forms a dialect. Any vocabulary that is understood by the implementation MUST be processed in a manner consistent with the semantic definitions contained within the vocabulary. The value of this keyword MUST be an object. The property names in the object MUST be URIs (containing a scheme) and this URI MUST be normalized. Each URI that appears as a property name identifies a specific set of keywords and their semantics. The URI MAY be a URL, but the nature of the retrievable resource is currently undefined, and reserved for future use. Vocabulary authors MAY use the URL of the vocabulary specification, in a human-readable media type such as text/html or text/plain, as the vocabulary URI. Vocabulary documents may be added in forthcoming drafts. For now, identifying the keyword set is deemed sufficient as that, along with meta-schema validation, is how the current "vocabularies" work today. Any future vocabulary document format will be specified as a JSON document, so using text/html or other non-JSON formats in the meantime will not produce any future ambiguity. The values of the object properties MUST be booleans. If the value is true, then implementations that do not recognize the vocabulary MUST refuse to process any schemas that declare this meta-schema with "$schema". If the value is false, implementations that do not recognize the vocabulary SHOULD proceed with processing such schemas. The value has no impact if the implementation understands the vocabulary. Per 6.5, unrecognized keywords SHOULD be treated as annotations. This remains the case for keywords defined by unrecognized vocabularies. It is not currently possible to distinguish between unrecognized keywords that are defined in vocabularies from those that are not part of any vocabulary. The "$vocabulary" keyword SHOULD be used in the root schema of any schema document intended for use as a meta-schema. It MUST NOT appear in subschemas. The "$vocabulary" keyword MUST be ignored in schema documents that are not being processed as a meta-schema. This allows validating a meta-schema M against its own meta-schema M’ without requiring the validator to understand the vocabularies declared by M.

Source

classes.lisp.

Target Slot

vocabulary.

Generic Reader: webhooks (object)
Generic Writer: (setf webhooks) (object)
Package

openapi-generator.

Methods
Reader Method: webhooks ((openapi-3.1 openapi-3.1))
Writer Method: (setf webhooks) ((openapi-3.1 openapi-3.1))

The incoming webhooks that MAY be received as part of this API and that the API consumer MAY choose to implement. Closely related to the callbacks feature, this section describes requests initiated other than by an API call, for example by an out of band registration. The key name is a unique string to refer to each webhook, while the (optionally referenced) Path Item Object describes a request that may be initiated by the API provider and the expected responses. An example is available.

Source

classes.lisp.

Target Slot

webhooks.

Generic Reader: wrapped (object)
Generic Writer: (setf wrapped) (object)
Package

openapi-generator.

Methods
Reader Method: wrapped ((xml xml))
Writer Method: (setf wrapped) ((xml xml))

MAY be used only for an array definition. Signifies whether the array is wrapped (for example, <books><book/><book/></books>) or unwrapped (<book/><book/>). Default value is false. The definition takes effect only when defined alongside type being array (outside the items).

Source

classes.lisp.

Target Slot

wrapped.

Generic Reader: write-only (object)
Generic Writer: (setf write-only) (object)
Package

openapi-generator.

Methods
Reader Method: write-only ((schema schema))
Writer Method: (setf write-only) ((schema schema))

The value of these keywords MUST be a boolean.
When multiple occurrences of these keywords are applicable to a single sub-instance, the resulting behavior SHOULD be as for a true value if any occurrence specifies a true value, and SHOULD be as for a false value otherwise.
If "writeOnly" has a value of boolean true, it indicates that the value is never present when the instance is retrieved from the owning authority. It can be present when sent to the owning authority to update or create the document (or the resource it represents), but it will not be included in any updated or newly created version of the instance. An instance document that is marked as "writeOnly" for the entire document MAY be returned as a blank document of some sort, or MAY produce an error upon retrieval, or have the retrieval request ignored, at the authority’s discretion. For example, "readOnly" would be used to mark a database-generated serial number as read-only, while "writeOnly" would be used to mark a password input field. These keywords can be used to assist in user interface instance generation. In particular, an application MAY choose to use a widget that hides input values as they are typed for write-only fields. Omitting these keywords has the same behavior as values of false.

Source

classes.lisp.

Target Slot

write-only.

Generic Reader: x-origin (object)
Package

openapi-generator.

Methods
Reader Method: x-origin ((apis-guru-info apis-guru-info))

automatically generated reader method

Source

collections.lisp.

Target Slot

x-origin.

Generic Reader: xml (object)
Generic Writer: (setf xml) (object)
Package

openapi-generator.

Methods
Reader Method: xml ((schema schema))
Writer Method: (setf xml) ((schema schema))

This MAY be used only on properties schemas. It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property.

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

Source

classes.lisp.

Target Slot

xml.


5.2.6 Classes

Class: apis-guru-api
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: added

Timestamp when the API was first added to the directory

Slot: preferred

Recommended version

Readers

preferred.

Writers

This slot is read-only.

Slot: versions
Readers

versions.

Writers

This slot is read-only.

Class: apis-guru-api-version
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: added

Timestamp when the version was added

Slot: external-docs

Copy of ‘externalDocs‘ s…from OpenAPI definition

Slot: info

Copy of ‘info‘ section from OpenAPI definition

Readers

info.

Writers

This slot is read-only.

Slot: swagger-url

URL to OpenAPI definition in JSON format

Slot: swagger-yaml-url

URL to OpenAPI definition in YAML format

Slot: updated

Timestamp when the version was updated

Readers

updated.

Writers

This slot is read-only.

Slot: openapi-ver
Class: apis-guru-external-documentation
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses
Direct slots
Slot: updated
Class: apis-guru-info
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods

x-origin.

Direct slots
Slot: contact
Slot: description
Slot: title
Slot: version
Slot: x-apisguru-categories
Slot: x-origin
Readers

x-origin.

Writers

This slot is read-only.

Slot: x-provider-name
Class: apis-guru-list
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods

api-list.

Direct slots
Slot: api-list
Readers

api-list.

Writers

This slot is read-only.

Class: apis-guru-origin
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: format
Package

common-lisp.

Readers

apis-guru-origin-format.

Writers

This slot is read-only.

Slot: url
Readers

url.

Writers

This slot is read-only.

Slot: version
Class: apis-guru-url
Package

openapi-generator.

Source

collections.lisp.

Direct superclasses

json-serializable.

Direct methods

url.

Direct slots
Slot: url
Readers

url.

Writers

This slot is read-only.

Class: components

Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: schemas

An object to hold reusable Schema Objects.

Initargs

:schemas

Readers

schemas.

Writers

(setf schemas).

Slot: responses

An object to hold reusable Response Objects.

Initargs

:responses

Readers

responses.

Writers

(setf responses).

Slot: parameters

An object to hold reusable Parameter Objects.

Initargs

:parameters

Readers

parameters.

Writers

(setf parameters).

Slot: examples

An object to hold reusable Example Objects.

Initargs

:examples

Readers

examples.

Writers

(setf examples).

Slot: request-bodies

An object to hold reusable Request Body Objects.

Initargs

:request-bodies

Readers

request-bodies.

Writers

(setf request-bodies).

Slot: headers

An object to hold reusable Header Objects.

Initargs

:headers

Readers

headers.

Writers

(setf headers).

Slot: security-schemes

An object to hold reusable Security Scheme Objects.

Initargs

:security-schemes

Readers

security-schemes.

Writers

(setf security-schemes).

An object to hold reusable Link Objects.

Initargs

:links

Readers

links.

Writers

(setf links).

Slot: callbacks

An object to hold reusable Callback Objects.

Initargs

:callbacks

Readers

callbacks.

Writers

(setf callbacks).

Slot: path-items

An object to hold reusable Path Item Object.

Initargs

:path-items

Readers

path-items.

Writers

(setf path-items).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: contact

Contact information for the exposed API.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: name

The identifying name of the contact person/organization.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: url

The URL pointing to the contact information. This MUST be in the form of a URL.

Initargs

:url

Readers

url.

Writers

(setf url).

Slot: email

The email address of the contact person/organization. This MUST be in the form of an email address.

Initargs

:email

Readers

email.

Writers

(setf email).

Class: discriminator

When request bodies or response payloads may be one of a number of different schemas, a discriminator object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object in a schema which is used to inform the consumer of the document of an alternative schema based on the value associated with it.

When using the discriminator, inline schemas will not be considered.

This object MAY be extended with Specification Extensions.

The discriminator object is legal only when using one of the composite keywords oneOf, anyOf, allOf.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: property-name

The name of the property in the payload that will hold the discriminator value.

Readers

property-name.

Writers

(setf property-name).

Slot: mapping

An object to hold mappings between payload values and schema names or references.

Readers

mapping.

Writers

(setf mapping).

Class: encoding

A single encoding definition applied to a single schema property.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: content-type

The Content-Type for encoding a specific property. Default value depends on the property type: for object - application/json; for array – the default is defined based on the inner type; for all other cases the default is application/octet-stream. The value can be a specific media type (e.g. application/json), a wildcard media type (e.g. image/*), or a comma-separated list of the two types.

Initargs

:content-type

Readers

content-type.

Writers

(setf content-type).

Slot: headers

A map allowing additional information to be provided as headers, for example Content-Disposition. Content-Type is described separately and SHALL be ignored in this section. This property SHALL be ignored if the request body media type is not a multipart.

Initargs

:headers

Readers

headers.

Writers

(setf headers).

Slot: style

Describes how a specific property value will be serialized depending on its type. See Parameter Object for details on the style property. The behavior follows the same values as query parameters, including default values. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Initargs

:style

Readers

style.

Writers

(setf style).

Slot: explode

When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When style is form, the default value is true. For all other styles, the default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Initargs

:explode

Readers

explode.

Writers

(setf explode).

Slot: allow-reserved

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. The default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded or multipart/form-data. If a value is explicitly defined, then the value of contentType (implicit or explicit) SHALL be ignored.

Readers

allow-reserved.

Writers

(setf allow-reserved).

Class: example
Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: summary

Short description for the example.

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: description

Long description for the example. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: value

Embedded literal example. The value field and externalValue field are mutually exclusive. To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary.

Initargs

:value

Readers

value.

Writers

(setf value).

Slot: external-value

A URI that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents. The value field and externalValue field are mutually exclusive. See the rules for resolving Relative References.

Initargs

:external-value

Readers

external-value.

Writers

(setf external-value).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: external-documentation

Allows referencing an external resource for extended documentation.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct subclasses

apis-guru-external-documentation.

Direct methods
Direct slots
Slot: description

A description of the target documentation. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: url

The URL for the target documentation. This MUST be in the form of a URL.

Initargs

:url

Readers

url.

Writers

(setf url).

Class: header

The Header Object follows the structure of the Parameter Object with the following changes:
1. name MUST NOT be specified, it is given in the corresponding headers map.
2. in MUST NOT be specified, it is implicitly in header.
3. All traits that are affected by the location MUST be applicable to a location of header (for example, style).

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: description

A brief description of the header. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

header.

Writers

(setf header).

Slot: required

Determines whether this header is mandatory.

Initargs

:required

Readers

required.

Writers

(setf required).

Slot: deprecated

Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.

Initargs

:deprecated

Readers

deprecated.

Writers

(setf deprecated).

Slot: allow-empty-value

Sets the ability to pass empty-valued parameters. Default value is false. If style is used, and if behavior is n/a (cannot be serialized), the value of allowEmptyValue SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision.

Initargs

:allow-empty-value

Readers

alllow-empty-value.

Writers

(setf alllow-empty-value).

Slot: schema

The schema defining the type used for the parameter.

Initargs

:schema

Readers

schema.

Writers

(setf schema).

Slot: content

A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.

Initargs

:content

Readers

content.

Writers

(setf content).

Slot: style

Describes how the parameter value will be serialized depending on the type of the parameter value. Default value: simple.

Initargs

:style

Readers

style.

Writers

(setf style).

Slot: explode

When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.

Initargs

:explode

Readers

explode.

Writers

(setf explode).

Slot: allow-reserved

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false.

Initargs

:allow-reserved

Readers

allow-reserved.

Writers

(setf allow-reserved).

Slot: example

Example of the parameter’s potential value. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.

Initargs

:example

Readers

example.

Writers

(setf example).

Slot: examples

Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL override the example provided by the schema.

Initargs

:examples

Readers

examples.

Writers

(setf examples).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: info

The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: title

The title of the API.

Initargs

:title

Readers

title.

Writers

(setf title).

Slot: summary

A short summary of the API.

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: description

A description of the API. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: terms-of-service

A URL to the Terms of Service for the API. This MUST be in the form of a URL.

Initargs

:terms-of-service

Readers

terms-of-service.

Writers

(setf terms-of-service).

Slot: contact

The contact information for the exposed API.

Initargs

:contact

Readers

contact.

Writers

(setf contact).

Slot: license

The license information for the exposed API.

Initargs

:license

Readers

license.

Writers

(setf license).

Slot: version

The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the API implementation version).

Initargs

:version

Readers

version.

Writers

(setf version).

Class: license

License information for the exposed API.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: name

The license name used for the API.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: identifier

An SPDX license expression for the API. The identifier field is mutually exclusive of the url field.

Initargs

:identifier

Readers

identifier.

Writers

(setf identifier).

Slot: url

A URL to the license used for the API. This MUST be in the form of a URL. The url field is mutually exclusive of the identifier field.

Initargs

:url

Readers

url.

Writers

(setf url).

The Link object represents a possible design-time link for a response. The presence of a link does not guarantee the caller’s ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.

Unlike dynamic links (i.e. links provided in the response payload), the OAS linking mechanism does not require link information in the runtime response.

For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.

A linked operation MUST be identified using either an operationRef or operationId. In the case of an operationId, it MUST be unique and resolved in the scope of the OAS document. Because of the potential for name clashes, the operationRef syntax is preferred for OpenAPI documents with external references.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: operation-ref

A relative or absolute URI reference to an OAS operation. This field is mutually exclusive of the operationId field, and MUST point to an Operation Object. Relative operationRef values MAY be used to locate an existing Operation Object in the OpenAPI definition. See the rules for resolving Relative References.

Initargs

:operation-ref

Readers

operation-ref.

Writers

(setf operation-ref).

Slot: operation-id

The name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive of the operationRef field.

Initargs

:operation-id

Readers

operation-id.

Writers

(setf operation-id).

Slot: parameters

A map representing parameters to pass to an operation as specified with operationId or identified via operationRef. The key is the parameter name to be used, whereas the value can be a constant or an expression to be evaluated and passed to the linked operation. The parameter name can be qualified using the parameter location [{in}.]{name} for operations that use the same parameter name in different locations (e.g. path.id).

Initargs

:parameters

Readers

parameters.

Writers

(setf parameters).

Slot: request-body

A literal value or {expression} to use as a request body when calling the target operation.

Initargs

:request-body

Readers

request-body.

Writers

(setf request-body).

Slot: description

A description of the link. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: server

server object to be used by the target operation.

Initargs

:server

Readers

server.

Writers

(setf server).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: media-type

Each Media Type Object provides schema and examples for the media type identified by its key.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: schema

The schema defining the content of the request, response, or parameter.

Initargs

:schema

Readers

schema.

Writers

(setf schema).

Slot: example

Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema.

Initargs

:example

Readers

example.

Writers

(setf example).

Slot: examples

Examples of the media type. Each example object SHOULD match the media type and specified schema if present. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema.

Initargs

:examples

Readers

examples.

Writers

(setf examples).

Slot: encoding

A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded.

Initargs

:encoding

Readers

encoding.

Writers

(setf encoding).

Class: o-auth-flow

Configuration details for a supported OAuth Flow

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: authorization-url

The authorization URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Readers

authorization-url.

Writers

(setf authorization-url).

Slot: token-url

The token URL to be used for this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Readers

token-url.

Writers

(setf token-url).

Slot: refresh-url

The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.

Readers

refresh-url.

Writers

(setf refresh-url).

Slot: scopes

The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.

Readers

scopes.

Writers

(setf scopes).

Class: o-auth-flows

Allows configuration of the supported OAuth Flows.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: implicit

Configuration for the OAuth Implicit flow

Readers

implicit.

Writers

(setf implicit).

Slot: password

Configuration for the OAuth Resource Owner Password flow

Readers

password.

Writers

(setf password).

Slot: client-credentials

Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.

Readers

client-credentials.

Writers

(setf client-credentials).

Slot: authorization-code

Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.

Readers

authorization-code.

Writers

(setf authorization-code).

Class: openapi

This is the root object of the OpenAPI document.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct subclasses
Direct methods
Direct slots
Slot: openapi

This string MUST be the version number of the OpenAPI Specification that the OpenAPI document uses. The openapi field SHOULD be used by tooling to interpret the OpenAPI document. This is not related to the API info.version string.

Type

openapi-generator::openapi-version

Initform

"3.1.0"

Initargs

:openapi

Readers

openapi.

Writers

(setf openapi).

Slot: info

Provides metadata about the API. The metadata MAY be used by tooling as required.

Type

openapi-generator::info

Initargs

:info

Readers

info.

Writers

(setf info).

Slot: servers

An array of Server Objects, which provide connectivity information to a target server. If the servers property is not provided, or is an empty array, the default value would be a Server Object with a url value of /.

Initargs

:servers

Readers

servers.

Writers

(setf servers).

Slot: security

A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition. To make security optional, an empty security requirement ({}) can be included in the array.

Initargs

:security

Readers

security.

Writers

(setf security).

Slot: paths

The available paths and operations for the API.
Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the Server Object in order to construct the full URL. The Paths MAY be empty, due to Access Control List (ACL) constraints.

Initargs

:paths

Readers

paths.

Writers

(setf paths).

Slot: tags

A list of tags used by the document with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools’ logic. Each tag name in the list MUST be unique.

Initargs

:tags

Readers

tags.

Writers

(setf tags).

Slot: external-docs

Additional external documentation.

Initargs

:externaldocs

Readers

external-documentation.

Writers

(setf external-documentation).

Slot: components

An element to hold various schemas for the document.

Initargs

:components

Readers

components.

Writers

(setf components).

Slot: schema
Initargs

:schema

Readers

schema.

Writers

(setf schema).

Class: openapi-3.0
Package

openapi-generator.

Source

classes.lisp.

Direct superclasses
Class: openapi-3.1
Package

openapi-generator.

Source

classes.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: json-schema-dialect

The default value for the $schema keyword within Schema Objects contained within this OAS document. This MUST be in the form of a URI.

Initargs

:json-schema-dialect

Readers

json-schema-dialect.

Writers

(setf json-schema-dialect).

Slot: webhooks

The incoming webhooks that MAY be received as part of this API and that the API consumer MAY choose to implement. Closely related to the callbacks feature, this section describes requests initiated other than by an API call, for example by an out of band registration. The key name is a unique string to refer to each webhook, while the (optionally referenced) Path Item Object describes a request that may be initiated by the API provider and the expected responses. An example is available.

Initargs

:webhooks

Readers

webhooks.

Writers

(setf webhooks).

Class: operation

Describes a single API operation on a path.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: tags

A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.

Initargs

:tags

Readers

tags.

Writers

(setf tags).

Slot: summary

A short summary of what the operation does.

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: description

A verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: external-documentation

Additional external documentation for this operation.

Initargs

:external-documentation

Readers

external-documentation.

Writers

(setf external-documentation).

Slot: operation-id

Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.

Initargs

:operation-id

Readers

operation-id.

Writers

(setf operation-id).

Slot: parameters

A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object’s components/parameters.

Initargs

:parameters

Readers

parameters.

Writers

(setf parameters).

Slot: request-body

The request body applicable for this operation. The requestBody is fully supported in HTTP methods where the HTTP 1.1 specification [RFC7231] has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague (such as GET, HEAD and DELETE), requestBody is permitted but does not have well-defined semantics and SHOULD be avoided if possible.

Initargs

:request-body

Readers

request-body.

Writers

(setf request-body).

Slot: responses

The list of possible responses as they are returned from executing this operation.

A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.

The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.

The default MAY be used as a default response object for all HTTP codes that are not covered individually by the Responses Object.

The Responses Object MUST contain at least one response code, and if only one response code is provided it SHOULD be the response for a successful operation call.

Initargs

:responses

Readers

responses.

Writers

(setf responses).

Slot: callbacks

A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a Callback Object that describes a request that may be initiated by the API provider and the expected responses.

Initargs

:callbacks

Readers

callbacks.

Writers

(setf callbacks).

Slot: deprecated

Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false.

Initargs

:deprecated

Readers

deprecated.

Writers

(setf deprecated).

Slot: security

A declaration of which security mechanisms can be used for this operation. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. To make security optional, an empty security requirement ({}) can be included in the array. This definition overrides any declared top-level security. To remove a top-level security declaration, an empty array can be used.

Initargs

:security

Readers

security.

Writers

(setf security).

Slot: servers

An alternative server array to service this operation. If an alternative server object is specified at the Path Item Object or Root level, it will be overridden by this value.

Initargs

:servers

Readers

servers.

Writers

(setf servers).

Class: parameter

Describes a single operation parameter.
A unique parameter is defined by a combination of a name and location.

Parameter Locations
There are four possible parameter locations specified by the in field:

path - Used together with Path Templating, where the parameter value is actually part of the operation’s URL. This does not include the host or base path of the API. For example, in /items/{itemId}, the path parameter is itemId.
query - Parameters that are appended to the URL. For example, in /items?id=###, the query parameter is id.
header - Custom headers that are expected as part of the request. Note that [RFC7230] states header names are case insensitive.
cookie - Used to pass a specific cookie value to the API.

The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a schema and style can describe the structure and syntax of the parameter.

For more complex scenarios, the content property can define the media type and schema of the parameter. A parameter MUST contain either a schema property, or a content property, but not both. When example or examples are provided in conjunction with the schema object, the example MUST follow the prescribed serialization strategy for the parameter.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: name

The name of the parameter. Parameter names are case sensitive.

If in is "path", the name field MUST correspond to a template expression occurring within the path field in the Paths Object. See Path Templating for further information. If in is "header" and the name field is "Accept", "Content-Type" or "Authorization", the parameter definition SHALL be ignored.
For all other cases, the name corresponds to the parameter name used by the in property.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: in

The location of the parameter. Possible values are "query", "header", "path" or "cookie".

Initargs

:in

Readers

in.

Writers

(setf in).

Slot: description

A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: required

Determines whether this parameter is mandatory. If the parameter location is "path", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false.

Initargs

:required

Readers

required.

Writers

(setf required).

Slot: deprecated

Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.

Initargs

:deprecated

Readers

deprecated.

Writers

(setf deprecated).

Slot: allow-empty-value

Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is false. If style is used, and if behavior is n/a (cannot be serialized), the value of allowEmptyValue SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision.

Initargs

:allow-empty-value

Readers

allow-empty-value.

Writers

(setf allow-empty-value).

Slot: style

Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form.

Initargs

:style

Readers

style.

Writers

(setf style).

Slot: explode

When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.

Initargs

:explode

Readers

explode.

Writers

(setf explode).

Slot: allow-reserved

Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] :/?#[]@!$&’()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false.

Initargs

:allow-reserved

Readers

allow-reserved.

Writers

(setf allow-reserved).

Slot: schema

The schema defining the type used for the parameter.

Initargs

:schema

Readers

schema.

Writers

(setf schema).

Slot: example

Example of the parameter’s potential value. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.

Initargs

:example

Readers

example.

Writers

(setf example).

Slot: examples

Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL override the example provided by the schema.

Initargs

:examples

Readers

examples.

Writers

(setf examples).

Slot: content

A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.

Initargs

:content

Readers

content.

Writers

(setf content).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: path

Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: reference

Allows for a referenced definition of this path item. The referenced structure MUST be in the form of a Path Item Object. In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is undefined. See the rules for resolving Relative References.

Initargs

:reference

Readers

reference.

Writers

(setf reference).

Slot: summary

An optional, string summary, intended to apply to all operations in this path.

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: description

An optional, string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: get

A definition of a GET operation on this path.

Package

common-lisp.

Initargs

:get

Readers

path-get.

Writers

(setf path-get).

Slot: head

A definition of a HEAD operation on this path.

Initargs

:head

Readers

head.

Writers

(setf head).

Slot: options

A definition of a OPTIONS operation on this path.

Initargs

:options

Readers

options.

Writers

(setf options).

Slot: trace

A definition of a TRACE operation on this path.

Package

common-lisp.

Initargs

:trace

Readers

path-trace.

Writers

(setf path-trace).

Slot: delete

A definition of a DELETE operation on this path.

Package

common-lisp.

Initargs

:delete

Readers

path-delete.

Writers

(setf path-delete).

Slot: put

A definition of a PUT operation on this path.

Initargs

:put

Readers

put.

Writers

(setf put).

Slot: post

A definition of a POST operation on this path.

Initargs

:post

Readers

post.

Writers

(setf post).

Slot: patch

A definition of a PATCH operation on this path.

Initargs

:patch

Readers

patch.

Writers

(setf patch).

Slot: parameters

A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object’s components/parameters.

Initargs

:parameters

Readers

parameters.

Writers

(setf parameters).

Slot: servers

An alternative server array to service all operations in this path.

Initargs

:servers

Readers

servers.

Writers

(setf servers).

Class: path-item-or-reference
Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: title
Readers

title.

Writers

(setf title).

Class: reference

A simple object to allow referencing other components in the OpenAPI document, internally and externally.

The $ref string value contains a URI [RFC3986], which identifies the location of the value being referenced.

See the rules for resolving Relative References.

This object cannot be extended with additional properties and any properties added SHALL be ignored.

Note that this restriction on additional properties is a difference between Reference Objects and Schema Objects that contain a $ref keyword.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: reference

The reference identifier. This MUST be in the form of a URI.

Initargs

:reference

Readers

reference.

Writers

(setf reference).

Slot: summary

A short summary which by default SHOULD override that of the referenced component. If the referenced object-type does not allow a summary field, then this field has no effect.

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: description

A description which by default SHOULD override that of the referenced component. CommonMark syntax MAY be used for rich text representation. If the referenced object-type does not allow a description field, then this field has no effect.

Initargs

:description

Readers

description.

Writers

(setf description).

Class: request-body

Describes a single request body.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Slot: description

A brief description of the request body. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Slot: required

Determines if the request body is required in the request. Defaults to false.

Initargs

:required

Slot: content

The content of the request body. The key is a media type or media type range and the value describes it. For requests that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*

Initargs

:content

Readers

content.

Writers

(setf content).

Class: response

Describes a single response from an API Operation, including design-time, static links to operations based on the response.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: description

A description of the response. CommonMark syntax MAY be used for rich text representation.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: headers

Maps a header name to its definition. [RFC7230] states header names are case insensitive. If a response header is defined with the name "Content-Type", it SHALL be ignored.

Initargs

:headers

Readers

headers.

Writers

(setf headers).

Slot: content

Maps a header name to its definition. [RFC7230] states header names are case insensitive. If a response header is defined with the name "Content-Type", it SHALL be ignored.

Initargs

:content

Readers

content.

Writers

(setf content).

A map of operations links that can be followed from the response. The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.

Initargs

:links

Readers

links.

Writers

(setf links).

Slot: reference
Initargs

:reference

Readers

reference.

Writers

(setf reference).

Class: schema

The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is a superset of the JSON Schema Specification Draft 2020-12.

For more information about the properties, see JSON Schema Core and JSON Schema Validation.

Unless stated otherwise, the property definitions follow those of JSON Schema and do not add any additional semantics. Where JSON Schema indicates that behavior is defined by the application (e.g. for annotations), OAS also defers the definition of semantics to the application consuming the OpenAPI document.

Properties

The OpenAPI Schema Object dialect is defined as requiring the OAS base vocabulary, in addition to the vocabularies as specified in the JSON Schema draft 2020-12 general purpose meta-schema.

The OpenAPI Schema Object dialect for this version of the specification is identified by the URI https://spec.openapis.org/oas/3.1/dialect/base (the “OAS dialect schema id”).

The following properties are taken from the JSON Schema specification but their definitions have been extended by the OAS:

- description - CommonMark syntax MAY be used for rich text representation.
- format - See Data Type Formats for further details. While relying on JSON Schema’s defined formats, the OAS offers a few additional predefined formats.

In addition to the JSON Schema properties comprising the OAS dialect, the Schema Object supports keywords from any other vocabularies, or entirely arbitrary properties.

Composition and Inheritance (Polymorphism)

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

While composition offers model extensibility, it does not imply a hierarchy between the models. To support polymorphism, the OpenAPI Specification adds the discriminator field. When used, the discriminator will be the name of the property that decides which schema definition validates the structure of the model. As such, the discriminator field MUST be a required field. There are two ways to define the value of a discriminator for an inheriting instance.

- Use the schema name.
- Override the schema name by overriding the property with a new value. If a new value exists, this takes precedence over the schema name. As such, inline schema definitions, which do not have a given id, cannot be used in polymorphism.

Package

openapi-generator.

Source

classes.lisp.

Direct superclasses

json-serializable.

Direct methods
Direct slots
Slot: schema

Specifying Schema Dialects

It is important for tooling to be able to determine which dialect or meta-schema any given resource wishes to be processed with: JSON Schema Core, JSON Schema Validation, OpenAPI Schema dialect, or some custom meta-schema.

The $schema keyword MAY be present in any root Schema Object, and if present MUST be used to determine which dialect should be used when processing the schema. This allows use of Schema Objects which comply with other drafts of JSON Schema than the default Draft 2020-12 support. Tooling MUST support the OAS dialect schema id, and MAY support additional values of $schema.

To allow use of a different default $schema value for all Schema Objects contained within an OAS document, a jsonSchemaDialect value may be set within the OpenAPI Object. If this default is not set, then the OAS dialect schema id MUST be used for these Schema Objects. The value of $schema within a Schema Object always overrides any default.

When a Schema Object is referenced from an external resource which is not an OAS document (e.g. a bare JSON Schema resource), then the value of the $schema keyword for schemas within that resource MUST follow JSON Schema rules

Initargs

:schema

Readers

schema.

Writers

(setf schema).

Slot: vocabulary

The "$vocabulary" keyword is used in meta-schemas to identify the vocabularies available for use in schemas described by that meta-schema. It is also used to indicate whether each vocabulary is required or optional, in the sense that an implementation MUST understand the required vocabularies in order to successfully process the schema. Together, this information forms a dialect. Any vocabulary that is understood by the implementation MUST be processed in a manner consistent with the semantic definitions contained within the vocabulary. The value of this keyword MUST be an object. The property names in the object MUST be URIs (containing a scheme) and this URI MUST be normalized. Each URI that appears as a property name identifies a specific set of keywords and their semantics. The URI MAY be a URL, but the nature of the retrievable resource is currently undefined, and reserved for future use. Vocabulary authors MAY use the URL of the vocabulary specification, in a human-readable media type such as text/html or text/plain, as the vocabulary URI. Vocabulary documents may be added in forthcoming drafts. For now, identifying the keyword set is deemed sufficient as that, along with meta-schema validation, is how the current "vocabularies" work today. Any future vocabulary document format will be specified as a JSON document, so using text/html or other non-JSON formats in the meantime will not produce any future ambiguity. The values of the object properties MUST be booleans. If the value is true, then implementations that do not recognize the vocabulary MUST refuse to process any schemas that declare this meta-schema with "$schema". If the value is false, implementations that do not recognize the vocabulary SHOULD proceed with processing such schemas. The value has no impact if the implementation understands the vocabulary. Per 6.5, unrecognized keywords SHOULD be treated as annotations. This remains the case for keywords defined by unrecognized vocabularies. It is not currently possible to distinguish between unrecognized keywords that are defined in vocabularies from those that are not part of any vocabulary. The "$vocabulary" keyword SHOULD be used in the root schema of any schema document intended for use as a meta-schema. It MUST NOT appear in subschemas. The "$vocabulary" keyword MUST be ignored in schema documents that are not being processed as a meta-schema. This allows validating a meta-schema M against its own meta-schema M’ without requiring the validator to understand the vocabularies declared by M.

Initargs

:vocabulary

Readers

vocabulary.

Writers

(setf vocabulary).

Slot: id

The "$id" keyword identifies a schema resource with its canonical [RFC6596] URI. Note that this URI is an identifier and not necessarily a network locator. In the case of a network-addressable URL, a schema need not be downloadable from its canonical URI. If present, the value for this keyword MUST be a string, and MUST represent a valid URI-reference [RFC3986]. This URI-reference SHOULD be normalized, and MUST resolve to an absolute-URI [RFC3986] (without a fragment), or to a URI with an empty fragment. The empty fragment form is NOT RECOMMENDED and is retained only for backwards compatibility, and because the application/schema+json media type defines that a URI with an empty fragment identifies the same resource as the same URI with the fragment removed. However, since this equivalence is not part of the RFC 3986 normalization process [RFC3986], implementers and schema authors cannot rely on generic URI libraries understanding it. Therefore, "$id" MUST NOT contain a non-empty fragment, and SHOULD NOT contain an empty fragment. The absolute-URI form MUST be considered the canonical URI, regardless of the presence or absence of an empty fragment. An empty fragment is currently allowed because older meta-schemas have an empty fragment in their $id (or previously, id). A future draft may outright forbid even empty fragments in "$id". The absolute-URI also serves as the base URI for relative URI-references in keywords within the schema resource, in accordance with RFC 3986 section 5.1.1 [RFC3986] regarding base URIs embedded in content. The presence of "$id" in a subschema indicates that the subschema constitutes a distinct schema resource within a single schema document. Furthermore, in accordance with RFC 3986 section 5.1.2 [RFC3986] regarding encapsulating entities, if an "$id" in a subschema is a relative URI-reference, the base URI for resolving that reference is the URI of the parent schema resource. If no parent schema object explicitly identifies itself as a resource with "$id", the base URI is that of the entire document

Initargs

:id

Readers

id.

Writers

(setf id).

Slot: anchor

Using JSON Pointer fragments requires knowledge of the structure of the schema. When writing schema documents with the intention to provide re-usable schemas, it may be preferable to use a plain name fragment that is not tied to any particular structural location. This allows a subschema to be relocated without requiring JSON Pointer references to be updated. The "$anchor" and "$dynamicAnchor" keywords are used to specify such fragments. They are identifier keywords that can only be used to create plain name fragments, rather than absolute URIs as seen with "$id". The base URI to which the resulting fragment is appended is the canonical URI of the schema resource containing the "$anchor" or "$dynamicAnchor" in question. As discussed in the previous section, this is either the nearest "$id" in the same or parent schema object, or the base URI for the document as determined according to RFC 3986. If present, the value of this keyword MUST be a string and MUST start with a letter ([A-Za-z]) or underscore ("_"), followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), and periods ("."). This matches the US-ASCII part of XML’s NCName production [xml-names]. Note that the anchor string does not include the "#" character, as it is not a URI-reference. An "$anchor": "foo" becomes the fragment "#foo" when used in a URI. See below for full examples. The effect of specifying the same fragment name multiple times within the same resource, using any combination of "$anchor" and/or "$dynamicAnchor", is undefined. Implementations MAY raise an error if such usage is detected.

Initargs

:anchor

Readers

anchor.

Writers

(setf anchor).

Slot: dynamic-anchor

Separately from the usual usage of URIs, "$dynamicAnchor" indicates that the fragment is an extension point when used with the "$dynamicRef" keyword. This low-level, advanced feature makes it easier to extend recursive schemas such as the meta-schemas, without imposing any particular semantics on that extension. See the section on "$dynamicRef" (Section 8.2.3.2) for details. In most cases, the normal fragment behavior both suffices and is more intuitive. Therefore it is RECOMMENDED that "$anchor" be used to create plain name fragments unless there is a clear need for "$dynamicAnchor".

Initargs

:dynamic-anchor

Readers

dynamic-anchor.

Writers

(setf dynamic-anchor).

Slot: reference

Direct References with "$ref"

The "$ref" keyword is an applicator that is used to reference a statically identified schema. Its results are the results of the referenced schema. Note that this definition of how the results are determined means that other keywords can appear alongside of "$ref" in the same schema object. The value of the "$ref" keyword MUST be a string which is a URI-Reference. Resolved against the current URI base, it produces the URI of the schema to apply. This resolution is safe to perform on schema load, as the process of evaluating an instance cannot change how the reference resolves.

Initargs

:reference

Readers

referenece.

Writers

(setf referenece).

Slot: dynamic-reference

The $dynamicRef keyword is an applicator that allows for deferring the full resolution until runtime, at which point it is resolved each time it is encountered while evaluating an instance. Together with "$dynamicAnchor", "$dynamicRef" implements a cooperative extension mechanism that is primarily useful with recursive schemas (schemas that reference themselves). Both the extension point and the runtime-determined extension target are defined with "$dynamicAnchor", and only exhibit runtime dynamic behavior when referenced with "$dynamicRef". The value of the "$dynamicRef" property MUST be a string which is a URI-Reference. Resolved against the current URI base, it produces the URI used as the starting point for runtime resolution. This initial resolution is safe to perform on schema load. If the initially resolved starting point URI includes a fragment that was created by the "$dynamicAnchor" keyword, the initial URI MUST be replaced by the URI (including the fragment) for the outermost schema resource in the dynamic scope (Section 7.1) that defines an identically named fragment with "$dynamicAnchor". Otherwise, its behavior is identical to "$ref", and no runtime resolution is needed.

Initargs

:dynamic-reference

Readers

dynamic-reference.

Writers

(setf dynamic-reference).

Slot: definitions

Schema Re-Use With "$defs"

The "$defs" keyword reserves a location for schema authors to inline re-usable JSON Schemas into a more general schema. The keyword does not directly affect the validation result.
This keyword’s value MUST be an object. Each member value of this object MUST be a valid JSON Schema. As an example, here is a schema describing an array of positive integers, where the positive integer constraint is a subschema in "$defs":

{
"type": "array",
"items": { "$ref": "#/$defs/positiveInteger" },
"$defs": {
"positiveInteger": {
"type": "integer",
"exclusiveMinimum": 0
}
}
}

Initargs

:definitions

Readers

definitions.

Writers

(setf definitions).

Slot: comment

Comments With "$comment"

This keyword reserves a location for comments from schema authors to readers or maintainers of the schema.
The value of this keyword MUST be a string. Implementations MUST NOT present this string to end users. Tools for editing schemas SHOULD support displaying and editing this keyword. The value of this keyword MAY be used in debug or error output which is intended for developers making use of schemas. Schema vocabularies SHOULD allow "$comment" within any object containing vocabulary keywords. Implementations MAY assume "$comment" is allowed unless the vocabulary specifically forbids it. Vocabularies MUST NOT specify any effect of "$comment" beyond what is described in this specification. Tools that translate other media types or programming languages to and from application/schema+json MAY choose to convert that media type or programming language’s native comments to or from "$comment" values. The behavior of such translation when both native comments and "$comment" properties are present is implementation-dependent. Implementations MAY strip "$comment" values at any point during processing. In particular, this allows for shortening schemas when the size of deployed schemas is a concern. Implementations MUST NOT take any other action based on the presence, absence, or contents of "$comment" properties. In particular, the value of "$comment" MUST NOT be collected as an annotation result.

Initargs

:comment

Readers

comment.

Writers

(setf comment).

Slot: discriminator

Adds support for polymorphism. The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description. See Composition and Inheritance for more details.

Initargs

:discriminator

Readers

discriminator.

Writers

(setf discriminator).

Slot: xml

This MAY be used only on properties schemas. It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property.

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

Initargs

:xml

Readers

xml.

Writers

(setf xml).

Slot: external-documentation

Additional external documentation for this schema.

Initargs

:exernal-documentation

Readers

external-documentation.

Writers

(setf external-documentation).

Slot: type

The value of this keyword MUST be either a string or an array. If it is an array, elements of the array MUST be strings and MUST be unique.
String values MUST be one of the six primitive types ("null", "boolean", "object", "array", number, or string"), or "integer" which matches any number with a zero fractional part.
If the value of type is a string, then an instance validates successfully if its type matches the type represented by the value of the string. If the value of type is an array, then an instance validates successfully if its type matches any of the types indicated by the strings in the array.

Package

common-lisp.

Initargs

:type

Readers

schema-type.

Writers

(setf schema-type).

Slot: enum

The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique. An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword’s array value. Elements in the array might be of any type, including null.

Initargs

:enum

Readers

enum.

Writers

(setf enum).

Slot: const

The value of this keyword MAY be of any type, including null.
Use of this keyword is functionally equivalent to an "enum" (Section 6.1.2) with a single value.
An instance validates successfully against this keyword if its value is equal to the value of the keyword.

Initargs

:const

Readers

const.

Writers

(setf const).

Slot: multiple-of

The value of "multipleOf" MUST be a number, strictly greater than 0.
A numeric instance is valid only if division by this keyword’s value results in an integer.

Initargs

:multiple-of

Readers

multiple-of.

Writers

(setf multiple-of).

Slot: maximum

The value of "maximum" MUST be a number, representing an inclusive upper limit for a numeric instance.
If the instance is a number, then this keyword validates only if the instance is less than or exactly equal to "maximum".

Initargs

:maximum

Readers

maximum.

Writers

(setf maximum).

Slot: exclusive-maximum

The value of "exclusiveMaximum" MUST be a number, representing an exclusive upper limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) "exclusiveMaximum".

Initargs

:exclusive-maximum

Readers

exclusive-maximum.

Writers

(setf exclusive-maximum).

Slot: minimum

The value of "minimum" MUST be a number, representing an inclusive lower limit for a numeric instance. If the instance is a number, then this keyword validates only if the instance is greater than or exactly equal to "minimum".

Initargs

:minimum

Readers

minimum.

Writers

(setf minimum).

Slot: exclusive-minimum

The value of "exclusiveMinimum" MUST be a number, representing an exclusive lower limit for a numeric instance. If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) "exclusiveMinimum".

Initargs

:exclusive-minimum

Readers

exclusive-minimum.

Writers