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.
openapi-generator/openapi-generator.asd
openapi-generator/package.lisp
openapi-generator/json-mop.lisp
openapi-generator/globals.lisp
openapi-generator/util.lisp
openapi-generator/classes.lisp
openapi-generator/collections.lisp
openapi-generator/convert.lisp
openapi-generator/parser.lisp
openapi-generator/function-generation.lisp
openapi-generator/openapi-generator.lisp
The main system appears first, followed by any subsystem dependency.
openapi-generator
Parse OpenAPI into CLOS object for client generation
Kilian M. Haemmerle
AGPLv3-later
0.0.2
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).
package.lisp
(file).
json-mop.lisp
(file).
globals.lisp
(file).
util.lisp
(file).
classes.lisp
(file).
collections.lisp
(file).
convert.lisp
(file).
parser.lisp
(file).
function-generation.lisp
(file).
openapi-generator.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
openapi-generator/openapi-generator.asd
openapi-generator/package.lisp
openapi-generator/json-mop.lisp
openapi-generator/globals.lisp
openapi-generator/util.lisp
openapi-generator/classes.lisp
openapi-generator/collections.lisp
openapi-generator/convert.lisp
openapi-generator/parser.lisp
openapi-generator/function-generation.lisp
openapi-generator/openapi-generator.lisp
openapi-generator/openapi-generator.asd
openapi-generator
(system).
openapi-generator/json-mop.lisp
package.lisp
(file).
openapi-generator
(system).
openapi-generator/globals.lisp
json-mop.lisp
(file).
openapi-generator
(system).
*converter-url*
(special variable).
*dereference*
(special variable).
constant-data-directory
(constant).
constant-projects-directory
(constant).
openapi-generator/util.lisp
globals.lisp
(file).
openapi-generator
(system).
concat-strings
(generic function).
define-json-class
(macro).
from-file
(function).
gen-alist
(function).
get-data-file
(function).
hash-copy-recursive
(method).
integer-string
(type).
integer-string-p
(function).
intern-param
(generic function).
json-array
(type).
json-array-p
(function).
json-false
(type).
json-false-p
(function).
json-mop-composite-type
(type).
json-mop-composite-type-p
(function).
json-mop-type
(type).
json-mop-type-p
(function).
json-null
(type).
json-null-p
(function).
json-number
(type).
json-number-p
(function).
json-object
(type).
json-object-p
(function).
json-string
(type).
json-true
(type).
json-true-p
(function).
list-symbols
(generic function).
non-keyword-symbol
(type).
one-item
(function).
remove-empty-values
(function).
slot-option
(type).
slot-option-p
(function).
to-file
(function).
uri-p
(function).
openapi-generator/classes.lisp
util.lisp
(file).
openapi-generator
(system).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
absolute-keyword-location
(reader method).
(setf absolute-keyword-location)
(writer method).
additional-properties
(reader method).
(setf additional-properties)
(writer method).
all-of
(reader method).
(setf all-of)
(writer method).
alllow-empty-value
(reader method).
(setf alllow-empty-value)
(writer method).
allow-empty-value
(reader method).
(setf allow-empty-value)
(writer method).
allow-reserved
(reader method).
allow-reserved
(reader method).
allow-reserved
(reader method).
(setf allow-reserved)
(writer method).
(setf allow-reserved)
(writer method).
(setf allow-reserved)
(writer method).
anchor
(reader method).
(setf anchor)
(writer method).
annotations
(reader method).
(setf annotations)
(writer method).
any-of
(reader method).
(setf any-of)
(writer method).
attribute
(reader method).
(setf attribute)
(writer method).
authorization-code
(reader method).
(setf authorization-code)
(writer method).
authorization-url
(reader method).
(setf authorization-url)
(writer method).
bearer-format
(reader method).
(setf bearer-format)
(writer method).
callbacks
(reader method).
callbacks
(reader method).
(setf callbacks)
(writer method).
(setf callbacks)
(writer method).
client-credentials
(reader method).
(setf client-credentials)
(writer method).
comment
(reader method).
(setf comment)
(writer method).
components
(reader method).
(setf components)
(writer method).
components
(class).
const
(reader method).
(setf const)
(writer method).
contact
(reader method).
(setf contact)
(writer method).
contact
(class).
contains
(reader method).
(setf contains)
(writer method).
content
(reader method).
content
(reader method).
content
(reader method).
content
(reader method).
(setf content)
(writer method).
(setf content)
(writer method).
(setf content)
(writer method).
(setf content)
(writer method).
content-encoding
(reader method).
(setf content-encoding)
(writer method).
content-media-type
(reader method).
(setf content-media-type)
(writer method).
content-schema
(reader method).
(setf content-schema)
(writer method).
content-type
(reader method).
(setf content-type)
(writer method).
default
(reader method).
default
(reader method).
(setf default)
(writer method).
(setf default)
(writer method).
definitions
(reader method).
(setf definitions)
(writer method).
dependend-required
(reader method).
(setf dependend-required)
(writer method).
dependent-schemas
(reader method).
(setf dependent-schemas)
(writer method).
deprecated
(reader method).
deprecated
(reader method).
deprecated
(reader method).
deprecated
(reader method).
(setf deprecated)
(writer method).
(setf deprecated)
(writer method).
(setf deprecated)
(writer method).
(setf deprecated)
(writer method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
description
(reader method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
(setf description)
(writer method).
discriminator
(reader method).
(setf discriminator)
(writer method).
discriminator
(class).
dynamic-anchor
(reader method).
(setf dynamic-anchor)
(writer method).
dynamic-reference
(reader method).
(setf dynamic-reference)
(writer method).
else
(reader method).
(setf else)
(writer method).
email
(reader method).
(setf email)
(writer method).
encoding
(reader method).
(setf encoding)
(writer method).
encoding
(class).
enum
(reader method).
enum
(reader method).
(setf enum)
(writer method).
(setf enum)
(writer method).
errors
(reader method).
(setf errors)
(writer method).
example
(reader method).
example
(reader method).
example
(reader method).
(setf example)
(writer method).
(setf example)
(writer method).
(setf example)
(writer method).
example
(class).
examples
(reader method).
examples
(reader method).
examples
(reader method).
examples
(reader method).
examples
(reader method).
(setf examples)
(writer method).
(setf examples)
(writer method).
(setf examples)
(writer method).
(setf examples)
(writer method).
(setf examples)
(writer method).
exclusive-maximum
(reader method).
(setf exclusive-maximum)
(writer method).
exclusive-minimum
(reader method).
(setf exclusive-minimum)
(writer method).
explode
(reader method).
explode
(reader method).
explode
(reader method).
(setf explode)
(writer method).
(setf explode)
(writer method).
(setf explode)
(writer method).
external-documentation
(reader method).
external-documentation
(reader method).
external-documentation
(reader method).
external-documentation
(reader method).
(setf external-documentation)
(writer method).
(setf external-documentation)
(writer method).
(setf external-documentation)
(writer method).
(setf external-documentation)
(writer method).
external-documentation
(class).
external-value
(reader method).
(setf external-value)
(writer method).
flows
(reader method).
(setf flows)
(writer method).
head
(reader method).
(setf head)
(writer method).
header
(reader method).
(setf header)
(writer method).
header
(class).
headers
(reader method).
headers
(reader method).
headers
(reader method).
(setf headers)
(writer method).
(setf headers)
(writer method).
(setf headers)
(writer method).
id
(reader method).
(setf id)
(writer method).
identifier
(reader method).
(setf identifier)
(writer method).
implicit
(reader method).
(setf implicit)
(writer method).
in
(reader method).
in
(reader method).
(setf in)
(writer method).
(setf in)
(writer method).
info
(reader method).
(setf info)
(writer method).
info
(class).
instance-location
(reader method).
(setf instance-location)
(writer method).
items
(reader method).
(setf items)
(writer method).
json-schema-dialect
(reader method).
(setf json-schema-dialect)
(writer method).
keyword-location
(reader method).
(setf keyword-location)
(writer method).
license
(reader method).
(setf license)
(writer method).
license
(class).
link
(class).
links
(reader method).
links
(reader method).
(setf links)
(writer method).
(setf links)
(writer method).
mapping
(reader method).
(setf mapping)
(writer method).
maximum
(reader method).
(setf maximum)
(writer method).
maximum-contains
(reader method).
(setf maximum-contains)
(writer method).
maximum-items
(reader method).
(setf maximum-items)
(writer method).
maximum-length
(reader method).
(setf maximum-length)
(writer method).
maximum-properties
(reader method).
(setf maximum-properties)
(writer method).
media-type
(class).
minimum
(reader method).
(setf minimum)
(writer method).
minimum-contains
(reader method).
(setf minimum-contains)
(writer method).
minimum-items
(reader method).
(setf minimum-items)
(writer method).
minimum-length
(reader method).
(setf minimum-length)
(writer method).
minimum-properties
(reader method).
(setf minimum-properties)
(writer method).
multiple-of
(reader method).
(setf multiple-of)
(writer method).
name
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
(setf name)
(writer method).
(setf name)
(writer method).
(setf name)
(writer method).
(setf name)
(writer method).
(setf name)
(writer method).
(setf name)
(writer method).
namespace
(reader method).
(setf namespace)
(writer method).
nullable
(reader method).
(setf nullable)
(writer method).
o-auth-flow
(class).
o-auth-flows
(class).
one-of
(reader method).
(setf one-of)
(writer method).
open-id-connect-url
(reader method).
(setf open-id-connect-url)
(writer method).
openapi
(reader method).
(setf openapi)
(writer method).
openapi
(class).
openapi-3.0
(class).
openapi-3.1
(class).
openapi-version
(type).
openapi-version-p
(function).
operation
(class).
operation-id
(reader method).
operation-id
(reader method).
(setf operation-id)
(writer method).
(setf operation-id)
(writer method).
operation-ref
(reader method).
(setf operation-ref)
(writer method).
options
(reader method).
(setf options)
(writer method).
parameter
(class).
parameters
(reader method).
parameters
(reader method).
parameters
(reader method).
parameters
(reader method).
(setf parameters)
(writer method).
(setf parameters)
(writer method).
(setf parameters)
(writer method).
(setf parameters)
(writer method).
password
(reader method).
(setf password)
(writer method).
patch
(reader method).
(setf patch)
(writer method).
path
(class).
path-delete
(reader method).
(setf path-delete)
(writer method).
path-get
(reader method).
(setf path-get)
(writer method).
path-item-or-reference
(class).
path-items
(reader method).
(setf path-items)
(writer method).
path-trace
(reader method).
(setf path-trace)
(writer method).
paths
(reader method).
(setf paths)
(writer method).
pattern
(reader method).
(setf pattern)
(writer method).
pattern-properties
(reader method).
(setf pattern-properties)
(writer method).
post
(reader method).
(setf post)
(writer method).
prefix
(reader method).
(setf prefix)
(writer method).
prefix-items
(reader method).
(setf prefix-items)
(writer method).
properties
(reader method).
(setf properties)
(writer method).
property-name
(reader method).
(setf property-name)
(writer method).
property-names
(reader method).
(setf property-names)
(writer method).
put
(reader method).
(setf put)
(writer method).
read-only
(reader method).
(setf read-only)
(writer method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
reference
(reader method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
(setf reference)
(writer method).
reference
(class).
referenece
(reader method).
(setf referenece)
(writer method).
refresh-url
(reader method).
(setf refresh-url)
(writer method).
request-bodies
(reader method).
(setf request-bodies)
(writer method).
request-body
(reader method).
request-body
(reader method).
(setf request-body)
(writer method).
(setf request-body)
(writer method).
request-body
(class).
required
(reader method).
required
(reader method).
required
(reader method).
(setf required)
(writer method).
(setf required)
(writer method).
(setf required)
(writer method).
response
(class).
responses
(reader method).
responses
(reader method).
(setf responses)
(writer method).
(setf responses)
(writer method).
schema
(reader method).
schema
(reader method).
schema
(reader method).
schema
(reader method).
schema
(reader method).
(setf schema)
(writer method).
(setf schema)
(writer method).
(setf schema)
(writer method).
(setf schema)
(writer method).
(setf schema)
(writer method).
schema
(class).
schema-if
(reader method).
(setf schema-if)
(writer method).
schema-not
(reader method).
(setf schema-not)
(writer method).
schema-type
(reader method).
(setf schema-type)
(writer method).
schemas
(reader method).
(setf schemas)
(writer method).
scheme
(reader method).
(setf scheme)
(writer method).
scopes
(reader method).
(setf scopes)
(writer method).
security
(reader method).
security
(reader method).
(setf security)
(writer method).
(setf security)
(writer method).
security-scheme
(class).
security-scheme-type
(reader method).
(setf security-scheme-type)
(writer method).
security-schemes
(reader method).
(setf security-schemes)
(writer method).
server
(reader method).
(setf server)
(writer method).
server
(class).
server-variable
(class).
servers
(reader method).
servers
(reader method).
servers
(reader method).
(setf servers)
(writer method).
(setf servers)
(writer method).
(setf servers)
(writer method).
style
(reader method).
style
(reader method).
style
(reader method).
(setf style)
(writer method).
(setf style)
(writer method).
(setf style)
(writer method).
summary
(reader method).
summary
(reader method).
summary
(reader method).
summary
(reader method).
summary
(reader method).
(setf summary)
(writer method).
(setf summary)
(writer method).
(setf summary)
(writer method).
(setf summary)
(writer method).
(setf summary)
(writer method).
tag
(class).
tags
(reader method).
tags
(reader method).
(setf tags)
(writer method).
(setf tags)
(writer method).
terms-of-service
(reader method).
(setf terms-of-service)
(writer method).
then
(reader method).
(setf then)
(writer method).
title
(reader method).
title
(reader method).
title
(reader method).
(setf title)
(writer method).
(setf title)
(writer method).
(setf title)
(writer method).
token-url
(reader method).
(setf token-url)
(writer method).
unevaluated-items
(reader method).
(setf unevaluated-items)
(writer method).
unevaluated-properties
(reader method).
(setf unevaluated-properties)
(writer method).
unique-items
(reader method).
(setf unique-items)
(writer method).
url
(reader method).
url
(reader method).
url
(reader method).
url
(reader method).
(setf url)
(writer method).
(setf url)
(writer method).
(setf url)
(writer method).
(setf url)
(writer method).
valid
(reader method).
(setf valid)
(writer method).
value
(reader method).
(setf value)
(writer method).
variables
(reader method).
(setf variables)
(writer method).
version
(reader method).
(setf version)
(writer method).
vocabulary
(reader method).
(setf vocabulary)
(writer method).
webhooks
(reader method).
(setf webhooks)
(writer method).
wrapped
(reader method).
(setf wrapped)
(writer method).
write-only
(reader method).
(setf write-only)
(writer method).
xml
(reader method).
(setf xml)
(writer method).
xml
(class).
openapi-generator/collections.lisp
classes.lisp
(file).
openapi-generator
(system).
print-object
(method).
api-list
(reader method).
apis-guru-api
(class).
apis-guru-api-version
(class).
apis-guru-apis
(special variable).
apis-guru-external-documentation
(class).
apis-guru-info
(class).
apis-guru-list
(class).
apis-guru-origin
(class).
apis-guru-origin-format
(reader method).
apis-guru-url
(function).
apis-guru-url
(class).
get-api-guru-apis
(function).
get-apis-guru-list
(function).
info
(reader method).
preferred
(reader method).
updated
(reader method).
url
(reader method).
url
(reader method).
versions
(reader method).
x-origin
(reader method).
openapi-generator/convert.lisp
collections.lisp
(file).
openapi-generator
(system).
convert-to-openapi-3
(function).
convert-by-content
(function).
convert-by-url
(function).
openapi-generator/parser.lisp
convert.lisp
(file).
openapi-generator
(system).
dereference
(method).
dereference
(method).
dereference
(method).
parse-openapi
(generic function).
ensure-json
(method).
get-openapi-version
(generic function).
parse-apis-guru-id
(generic function).
parse-directory
(generic function).
parse-string
(generic function).
parse-url
(generic function).
openapi-generator/function-generation.lisp
parser.lisp
(file).
openapi-generator
(system).
assure-optional
(generic function).
assure-required
(generic function).
collect-parameters
(generic function).
function-name
(generic function).
generate-function
(generic function).
get-description
(generic function).
get-headers
(generic function).
get-lambda-list
(generic function).
get-optional-parameter
(method).
get-parameter-type
(generic function).
get-path
(generic function).
get-primary-uri
(generic function).
get-query
(generic function).
get-required-parameter
(method).
get-response-type
(method).
get-uri-type
(generic function).
json-body-schema
(method).
json-content
(method).
object-name-symbols
(generic function).
parameter-schema-type
(generic function).
path-list
(generic function).
path-list-stringified
(generic function).
type-conversion
(generic function).
openapi-generator/openapi-generator.lisp
function-generation.lisp
(file).
openapi-generator
(system).
generate-client
(function).
make-openapi-client
(function).
%generate-client
(macro).
check-api-slots
(generic function).
collect-alias-exports
(generic function).
collect-function-names
(generic function).
collect-path-types
(generic function).
ensure-project-directory
(generic function).
generate-code
(generic function).
generate-defpackage
(generic function).
generate-function-code
(generic function).
generate-parameters
(generic function).
generate-slot-alias
(generic function).
Packages are listed by definition order.
openapi-generator
common-lisp
.
*converter-url*
(special variable).
*dereference*
(special variable).
convert-to-openapi-3
(function).
dereference
(generic function).
generate-client
(function).
make-openapi-client
(function).
parse-openapi
(generic function).
%generate-client
(macro).
absolute-keyword-location
(generic reader).
(setf absolute-keyword-location)
(generic writer).
additional-properties
(generic reader).
(setf additional-properties)
(generic writer).
all-of
(generic reader).
(setf all-of)
(generic writer).
alllow-empty-value
(generic reader).
(setf alllow-empty-value)
(generic writer).
allow-empty-value
(generic reader).
(setf allow-empty-value)
(generic writer).
allow-reserved
(generic reader).
(setf allow-reserved)
(generic writer).
anchor
(generic reader).
(setf anchor)
(generic writer).
annotations
(generic reader).
(setf annotations)
(generic writer).
any-of
(generic reader).
(setf any-of)
(generic writer).
api-list
(generic reader).
apis-guru-api
(class).
apis-guru-api-version
(class).
apis-guru-apis
(special variable).
apis-guru-external-documentation
(class).
apis-guru-info
(class).
apis-guru-list
(class).
apis-guru-origin
(class).
apis-guru-origin-format
(generic reader).
apis-guru-url
(function).
apis-guru-url
(class).
assure-optional
(generic function).
assure-required
(generic function).
attribute
(generic reader).
(setf attribute)
(generic writer).
authorization-code
(generic reader).
(setf authorization-code)
(generic writer).
authorization-url
(generic reader).
(setf authorization-url)
(generic writer).
bearer-format
(generic reader).
(setf bearer-format)
(generic writer).
callbacks
(generic reader).
(setf callbacks)
(generic writer).
check-api-slots
(generic function).
client-credentials
(generic reader).
(setf client-credentials)
(generic writer).
collect-alias-exports
(generic function).
collect-function-names
(generic function).
collect-parameters
(generic function).
collect-path-types
(generic function).
comment
(generic reader).
(setf comment)
(generic writer).
components
(generic reader).
(setf components)
(generic writer).
components
(class).
concat-strings
(generic function).
const
(generic reader).
(setf const)
(generic writer).
constant-data-directory
(constant).
constant-projects-directory
(constant).
contact
(generic reader).
(setf contact)
(generic writer).
contact
(class).
contains
(generic reader).
(setf contains)
(generic writer).
content
(generic reader).
(setf content)
(generic writer).
content-encoding
(generic reader).
(setf content-encoding)
(generic writer).
content-media-type
(generic reader).
(setf content-media-type)
(generic writer).
content-schema
(generic reader).
(setf content-schema)
(generic writer).
content-type
(generic reader).
(setf content-type)
(generic writer).
convert-by-content
(function).
convert-by-url
(function).
default
(generic reader).
(setf default)
(generic writer).
define-json-class
(macro).
definitions
(generic reader).
(setf definitions)
(generic writer).
dependend-required
(generic reader).
(setf dependend-required)
(generic writer).
dependent-schemas
(generic reader).
(setf dependent-schemas)
(generic writer).
deprecated
(generic reader).
(setf deprecated)
(generic writer).
description
(generic reader).
(setf description)
(generic writer).
discriminator
(generic reader).
(setf discriminator)
(generic writer).
discriminator
(class).
dynamic-anchor
(generic reader).
(setf dynamic-anchor)
(generic writer).
dynamic-reference
(generic reader).
(setf dynamic-reference)
(generic writer).
else
(generic reader).
(setf else)
(generic writer).
email
(generic reader).
(setf email)
(generic writer).
encoding
(generic reader).
(setf encoding)
(generic writer).
encoding
(class).
ensure-json
(generic function).
ensure-project-directory
(generic function).
enum
(generic reader).
(setf enum)
(generic writer).
errors
(generic reader).
(setf errors)
(generic writer).
example
(generic reader).
(setf example)
(generic writer).
example
(class).
examples
(generic reader).
(setf examples)
(generic writer).
exclusive-maximum
(generic reader).
(setf exclusive-maximum)
(generic writer).
exclusive-minimum
(generic reader).
(setf exclusive-minimum)
(generic writer).
explode
(generic reader).
(setf explode)
(generic writer).
external-documentation
(generic reader).
(setf external-documentation)
(generic writer).
external-documentation
(class).
external-value
(generic reader).
(setf external-value)
(generic writer).
flows
(generic reader).
(setf flows)
(generic writer).
from-file
(function).
function-name
(generic function).
gen-alist
(function).
generate-code
(generic function).
generate-defpackage
(generic function).
generate-function
(generic function).
generate-function-code
(generic function).
generate-parameters
(generic function).
generate-slot-alias
(generic function).
get-api-guru-apis
(function).
get-apis-guru-list
(function).
get-data-file
(function).
get-description
(generic function).
get-headers
(generic function).
get-lambda-list
(generic function).
get-openapi-version
(generic function).
get-optional-parameter
(generic function).
get-parameter-type
(generic function).
get-path
(generic function).
get-primary-uri
(generic function).
get-query
(generic function).
get-required-parameter
(generic function).
get-response-type
(generic function).
get-uri-type
(generic function).
hash-copy-recursive
(generic function).
head
(generic reader).
(setf head)
(generic writer).
header
(generic reader).
(setf header)
(generic writer).
header
(class).
headers
(generic reader).
(setf headers)
(generic writer).
id
(generic reader).
(setf id)
(generic writer).
identifier
(generic reader).
(setf identifier)
(generic writer).
implicit
(generic reader).
(setf implicit)
(generic writer).
in
(generic reader).
(setf in)
(generic writer).
info
(generic reader).
(setf info)
(generic writer).
info
(class).
instance-location
(generic reader).
(setf instance-location)
(generic writer).
integer-string
(type).
integer-string-p
(function).
intern-param
(generic function).
items
(generic reader).
(setf items)
(generic writer).
json-array
(type).
json-array-p
(function).
json-body-schema
(generic function).
json-content
(generic function).
json-false
(type).
json-false-p
(function).
json-mop-composite-type
(type).
json-mop-composite-type-p
(function).
json-mop-type
(type).
json-mop-type-p
(function).
json-null
(type).
json-null-p
(function).
json-number
(type).
json-number-p
(function).
json-object
(type).
json-object-p
(function).
json-schema-dialect
(generic reader).
(setf json-schema-dialect)
(generic writer).
json-string
(type).
json-true
(type).
json-true-p
(function).
keyword-location
(generic reader).
(setf keyword-location)
(generic writer).
license
(generic reader).
(setf license)
(generic writer).
license
(class).
link
(class).
links
(generic reader).
(setf links)
(generic writer).
list-symbols
(generic function).
mapping
(generic reader).
(setf mapping)
(generic writer).
maximum
(generic reader).
(setf maximum)
(generic writer).
maximum-contains
(generic reader).
(setf maximum-contains)
(generic writer).
maximum-items
(generic reader).
(setf maximum-items)
(generic writer).
maximum-length
(generic reader).
(setf maximum-length)
(generic writer).
maximum-properties
(generic reader).
(setf maximum-properties)
(generic writer).
media-type
(class).
minimum
(generic reader).
(setf minimum)
(generic writer).
minimum-contains
(generic reader).
(setf minimum-contains)
(generic writer).
minimum-items
(generic reader).
(setf minimum-items)
(generic writer).
minimum-length
(generic reader).
(setf minimum-length)
(generic writer).
minimum-properties
(generic reader).
(setf minimum-properties)
(generic writer).
multiple-of
(generic reader).
(setf multiple-of)
(generic writer).
name
(generic reader).
(setf name)
(generic writer).
namespace
(generic reader).
(setf namespace)
(generic writer).
non-keyword-symbol
(type).
nullable
(generic reader).
(setf nullable)
(generic writer).
o-auth-flow
(class).
o-auth-flows
(class).
object-name-symbols
(generic function).
one-item
(function).
one-of
(generic reader).
(setf one-of)
(generic writer).
open-id-connect-url
(generic reader).
(setf open-id-connect-url)
(generic writer).
openapi
(generic reader).
(setf openapi)
(generic writer).
openapi
(class).
openapi-3.0
(class).
openapi-3.1
(class).
openapi-version
(type).
openapi-version-p
(function).
operation
(class).
operation-id
(generic reader).
(setf operation-id)
(generic writer).
operation-ref
(generic reader).
(setf operation-ref)
(generic writer).
options
(generic reader).
(setf options)
(generic writer).
parameter
(class).
parameter-schema-type
(generic function).
parameters
(generic reader).
(setf parameters)
(generic writer).
parse-apis-guru-id
(generic function).
parse-directory
(generic function).
parse-string
(generic function).
parse-url
(generic function).
password
(generic reader).
(setf password)
(generic writer).
patch
(generic reader).
(setf patch)
(generic writer).
path
(class).
path-delete
(generic reader).
(setf path-delete)
(generic writer).
path-get
(generic reader).
(setf path-get)
(generic writer).
path-item-or-reference
(class).
path-items
(generic reader).
(setf path-items)
(generic writer).
path-list
(generic function).
path-list-stringified
(generic function).
path-trace
(generic reader).
(setf path-trace)
(generic writer).
paths
(generic reader).
(setf paths)
(generic writer).
pattern
(generic reader).
(setf pattern)
(generic writer).
pattern-properties
(generic reader).
(setf pattern-properties)
(generic writer).
post
(generic reader).
(setf post)
(generic writer).
preferred
(generic reader).
prefix
(generic reader).
(setf prefix)
(generic writer).
prefix-items
(generic reader).
(setf prefix-items)
(generic writer).
properties
(generic reader).
(setf properties)
(generic writer).
property-name
(generic reader).
(setf property-name)
(generic writer).
property-names
(generic reader).
(setf property-names)
(generic writer).
put
(generic reader).
(setf put)
(generic writer).
read-only
(generic reader).
(setf read-only)
(generic writer).
reference
(generic reader).
(setf reference)
(generic writer).
reference
(class).
referenece
(generic reader).
(setf referenece)
(generic writer).
refresh-url
(generic reader).
(setf refresh-url)
(generic writer).
remove-empty-values
(function).
request-bodies
(generic reader).
(setf request-bodies)
(generic writer).
request-body
(generic reader).
(setf request-body)
(generic writer).
request-body
(class).
required
(generic reader).
(setf required)
(generic writer).
response
(class).
responses
(generic reader).
(setf responses)
(generic writer).
schema
(generic reader).
(setf schema)
(generic writer).
schema
(class).
schema-if
(generic reader).
(setf schema-if)
(generic writer).
schema-not
(generic reader).
(setf schema-not)
(generic writer).
schema-type
(generic reader).
(setf schema-type)
(generic writer).
schemas
(generic reader).
(setf schemas)
(generic writer).
scheme
(generic reader).
(setf scheme)
(generic writer).
scopes
(generic reader).
(setf scopes)
(generic writer).
security
(generic reader).
(setf security)
(generic writer).
security-scheme
(class).
security-scheme-type
(generic reader).
(setf security-scheme-type)
(generic writer).
security-schemes
(generic reader).
(setf security-schemes)
(generic writer).
server
(generic reader).
(setf server)
(generic writer).
server
(class).
server-variable
(class).
servers
(generic reader).
(setf servers)
(generic writer).
slot-option
(type).
slot-option-p
(function).
style
(generic reader).
(setf style)
(generic writer).
summary
(generic reader).
(setf summary)
(generic writer).
tag
(class).
tags
(generic reader).
(setf tags)
(generic writer).
terms-of-service
(generic reader).
(setf terms-of-service)
(generic writer).
then
(generic reader).
(setf then)
(generic writer).
title
(generic reader).
(setf title)
(generic writer).
to-file
(function).
token-url
(generic reader).
(setf token-url)
(generic writer).
type-conversion
(generic function).
unevaluated-items
(generic reader).
(setf unevaluated-items)
(generic writer).
unevaluated-properties
(generic reader).
(setf unevaluated-properties)
(generic writer).
unique-items
(generic reader).
(setf unique-items)
(generic writer).
updated
(generic reader).
uri-p
(function).
url
(generic reader).
(setf url)
(generic writer).
valid
(generic reader).
(setf valid)
(generic writer).
value
(generic reader).
(setf value)
(generic writer).
variables
(generic reader).
(setf variables)
(generic writer).
version
(generic reader).
(setf version)
(generic writer).
versions
(generic reader).
vocabulary
(generic reader).
(setf vocabulary)
(generic writer).
webhooks
(generic reader).
(setf webhooks)
(generic writer).
wrapped
(generic reader).
(setf wrapped)
(generic writer).
write-only
(generic reader).
(setf write-only)
(generic writer).
x-origin
(generic reader).
xml
(generic reader).
(setf xml)
(generic writer).
xml
(class).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Default swagger converter url.
This variable influences whether the openapi document will be derefenced or not.
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..
pathname
) &key) ¶uri
) &key) ¶hash-table
) &key path-uri pathname) ¶Dereference all references recursively.
Also grab external files.
Exit recursion & warn when circular pointer detected
Parse json/yaml from a file or uri into openapi class instance You should mostly submit a file-name, and either
string
) &key url source-directory collection-id content dereference converter-url) ¶apis-guru-api
) stream) ¶request-body
) stream) ¶o-auth-flow
) stream) ¶discriminator
) stream) ¶security-scheme
) stream) ¶server-variable
) stream) ¶external-documentation
) stream) ¶Projects directory within libraries data folder
Generates Common Lisp client by OpenAPI Spec.
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.
Generate association list with the symbol lispified.
https://api.apis.guru/v2/
Get data file
Predicate for valid json number (string)
Predicate for valid json array (string)
Predicate for valid json false
Predicate for valid json null
Predicate for valid json number (string)
Predicate for valid json array (string)
Predicate for valid json true
Intern the item in the package active during execution of this function
Remove empty values from alist (used at run time)
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.
Uri predicate.
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".
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.
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.
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.
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.
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.
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.
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.
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.
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.
apis-guru-list
)) ¶automatically generated reader method
apis-guru-origin
)) ¶automatically generated reader method
Generate code for run-time type checking of optional arguments. This only happens, if arguments supplied.
list
)) ¶Generate code for run-time type checking of required arguments
list
)) ¶o-auth-flows
)) ¶o-auth-flows
)) ¶Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.
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.
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Callback Objects.
Make sure that the function (alias) can be generated.
Prefered alias source is operation-id. Last resort option is path.
o-auth-flows
)) ¶o-auth-flows
)) ¶Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.
Create list of upcased string to include in export clause of defpackage.
Generate all function names
Collect all parameters belong to an api a path and operation.
Collect all bound operation types as symbols
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.
Concatenates strings together and breaks when other element comes
list
)) ¶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.
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.
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.
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.
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/*
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.
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].
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.
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.
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.
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.
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
}
}
}
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.
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.
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.
header
)) ¶header
)) ¶Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.
parameter
)) ¶parameter
)) ¶Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.
security-scheme
)) ¶security-scheme
)) ¶A description for security scheme. CommonMark syntax MAY be used for rich text representation.
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.
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.
tag
)) ¶tag
)) ¶A description for the tag. CommonMark syntax MAY be used for rich text representation.
link
)) ¶link
)) ¶A description of the link. CommonMark syntax MAY be used for rich text representation.
example
)) ¶example
)) ¶Long description for the example. CommonMark syntax MAY be used for rich text representation.
response
)) ¶response
)) ¶A description of the response. CommonMark syntax MAY be used for rich text representation.
parameter
)) ¶parameter
)) ¶A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.
external-documentation
)) ¶external-documentation
)) ¶A description of the target documentation. CommonMark syntax MAY be used for rich text representation.
operation
)) ¶operation
)) ¶A verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation.
path
)) ¶path
)) ¶An optional, string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation.
server-variable
)) ¶server-variable
)) ¶An optional description for the server variable. CommonMark syntax MAY be used for rich text representation.
server
)) ¶server
)) ¶An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation.
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.
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".
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.
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.
else
.
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.
string
)) ¶Ensures document is a json
Makes sure that the directory is existing before the template is generated.
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.
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.
enum
.
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.
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.
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.
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.
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.
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Example Objects.
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".
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".
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.
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.
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.
schema
)) ¶schema
)) ¶Additional external documentation for this schema.
tag
)) ¶tag
)) ¶Additional external documentation for this tag.
operation
)) ¶operation
)) ¶Additional external documentation for this operation.
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.
security-scheme
)) ¶security-scheme
)) ¶An object containing configuration information for the flow types supported.
Generate unique symbole name for given operation-type and path
string
) (operation-type symbol
) &key param-case) ¶Generate all code to be included in the main.lisp file. Includes defpackage + functions + setf alias
Generate defpackage code including alias functions
Generate functions for all types of http request
Generate all function code as list
Creates code to be included in main.lisp for parameters
Create list of setf with slot as alias
Extract documentation slots summary and description from operation object
Generate code for run-time header checking. Headers are only send, if they are supplied.
Create the lambda list to be included in the generated function.
Extract Swagger/Openapi version from api spec
list
)) ¶Collect optional parameter from list of parameters
Get list of parameters with specified type: Can be either query, path, head or cookie.
string
) (parameters list
)) ¶generate path list
string
) (parameters list
)) ¶Return first server uri
Generate query (if there are parameters)
list
)) ¶list
)) ¶Collect required parameter from list of parameters
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Header Objects.
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
id
.
o-auth-flows
)) ¶o-auth-flows
)) ¶Configuration for the OAuth Implicit flow
security-scheme
)) ¶security-scheme
)) ¶The location of the API key. Valid values are "query", "header" or "cookie".
in
.
openapi
)) ¶openapi
)) ¶Provides metadata about the API. The metadata MAY be used by tooling as required.
info
.
apis-guru-api-version
)) ¶Copy of ‘info‘ section from OpenAPI definition
info
.
Convert string or list of strings to param-cased symbol(s).
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.
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.
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.
response
)) ¶response
)) ¶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.
components
)) ¶components
)) ¶An object to hold reusable Link Objects.
Filter non-symols out of list
list
)) ¶discriminator
)) ¶discriminator
)) ¶An object to hold mappings between payload values and schema names or references.
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".
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.
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].
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.
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".
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.
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.
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.
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.
security-scheme
)) ¶security-scheme
)) ¶The name of the header, query or cookie parameter to be used.
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.
name
.
tag
)) ¶tag
)) ¶The name of the tag.
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.
name
.
Outputs list with the name-symbols of the parameter objects in the input list.
list
)) ¶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.
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.
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.
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.
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.
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.
Return the parameter type from schema
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).
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Parameter Objects.
parse api guru name with parse url
string
) (apis-guru-id string
) &key converter-url) ¶Parse file from source directory to target-directory as usable JSON Openapi 3.X
pathname
) (target-directory pathname
) &key converter-url dereference) ¶Safe string to file in local folder
string
) (file string
) &key converter-url) ¶Parse url into package and save file in openapi-generator/data.
Supported are: url / apis-guru / path / name (in openapi-generator/data folder)
o-auth-flows
)) ¶o-auth-flows
)) ¶Configuration for the OAuth Resource Owner Password flow
components
)) ¶components
)) ¶An object to hold reusable Path Item Object.
Convert path string into a list of strings and symbols
string
)) ¶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.
list
) (parameter-list list
)) ¶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.
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.
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.
apis-guru-api
)) ¶Recommended version
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.
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.
discriminator
)) ¶discriminator
)) ¶The name of the property in the payload that will hold the discriminator value.
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.
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
security-scheme
)) ¶automatically generated reader method
reference
)) ¶The reference identifier. This MUST be in the form of a URI.
header
)) ¶automatically generated reader method
example
)) ¶automatically generated reader method
response
)) ¶automatically generated reader method
request-body
)) ¶automatically generated reader method
parameter
)) ¶automatically generated reader method
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.
components
)) ¶automatically generated reader method
security-scheme
)) ¶automatically generated writer method
reference
)) ¶The reference identifier. This MUST be in the form of a URI.
header
)) ¶automatically generated writer method
link
)) ¶automatically generated writer method
example
)) ¶automatically generated writer method
response
)) ¶automatically generated writer method
request-body
)) ¶automatically generated writer method
parameter
)) ¶automatically generated writer method
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.
components
)) ¶automatically generated writer method
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Request Body Objects.
link
)) ¶link
)) ¶A literal value or {expression} to use as a request body when calling the target operation.
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.
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.
header
)) ¶header
)) ¶Determines whether this header is mandatory.
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.
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.
components
)) ¶components
)) ¶An object to hold reusable Response Objects.
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
header
)) ¶The schema defining the type used for the parameter.
media-type
)) ¶The schema defining the content of the request, response, or parameter.
parameter
)) ¶The schema defining the type used for the parameter.
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
header
)) ¶The schema defining the type used for the parameter.
media-type
)) ¶The schema defining the content of the request, response, or parameter.
parameter
)) ¶The schema defining the type used for the parameter.
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".
if
.
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.
type
.
components
)) ¶components
)) ¶An object to hold reusable Schema Objects.
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.
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.
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.
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.
security-scheme
)) ¶security-scheme
)) ¶The type of the security scheme. Valid values are "apiKey", "http", "mutualTLS", "oauth2", "openIdConnect".
type
.
components
)) ¶components
)) ¶An object to hold reusable Security Scheme Objects.
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.
path
)) ¶path
)) ¶An alternative server array to service all operations in this path.
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 /.
header
)) ¶header
)) ¶Describes how the parameter value will be serialized depending on the type of the parameter value. Default value: simple.
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.
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.
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.
example
)) ¶example
)) ¶Short description for the example.
operation
)) ¶operation
)) ¶A short summary of what the operation does.
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.
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.
tags
.
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.
then
.
path-item-or-reference
)) ¶automatically generated reader method
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.
path-item-or-reference
)) ¶automatically generated writer method
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.
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.
Convert json-type string or list of strings to lisp types.
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.
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.
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.
apis-guru-api-version
)) ¶Timestamp when the version was updated
external-documentation
)) ¶external-documentation
)) ¶The URL for the target documentation. This MUST be in the form of a URL.
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}.
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.
url
.
contact
)) ¶contact
)) ¶The URL pointing to the contact information. This MUST be in the form of a URL.
url
.
apis-guru-origin
)) ¶automatically generated reader method
url
.
apis-guru-url
)) ¶automatically generated reader method
url
.
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.
apis-guru-api
)) ¶automatically generated reader method
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.
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.
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).
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.
apis-guru-info
)) ¶automatically generated reader method
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.
xml
.
json-serializable
.
Timestamp when the API was first added to the directory
json-serializable
.
Timestamp when the version was added
Copy of ‘externalDocs‘ s…from OpenAPI definition
Copy of ‘info‘ section from OpenAPI definition
info
.
This slot is read-only.
URL to OpenAPI definition in JSON format
URL to OpenAPI definition in YAML format
Timestamp when the version was updated
This slot is read-only.
external-documentation
.
json-serializable
.
json-serializable
.
json-serializable
.
url
.
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.
json-serializable
.
(setf callbacks)
.
callbacks
.
(setf examples)
.
examples
.
(setf headers)
.
headers
.
(setf links)
.
links
.
(setf parameters)
.
parameters
.
(setf path-items)
.
path-items
.
(setf reference)
.
reference
.
(setf request-bodies)
.
request-bodies
.
(setf responses)
.
responses
.
(setf schemas)
.
schemas
.
(setf security-schemes)
.
security-schemes
.
An object to hold reusable Schema Objects.
:schemas
An object to hold reusable Response Objects.
:responses
An object to hold reusable Parameter Objects.
:parameters
An object to hold reusable Example Objects.
:examples
An object to hold reusable Request Body Objects.
:request-bodies
An object to hold reusable Header Objects.
:headers
An object to hold reusable Security Scheme Objects.
:security-schemes
An object to hold reusable Link Objects.
:links
An object to hold reusable Callback Objects.
:callbacks
An object to hold reusable Path Item Object.
:path-items
:reference
Contact information for the exposed API.
json-serializable
.
The identifying name of the contact person/organization.
:name
name
.
The URL pointing to the contact information. This MUST be in the form of a URL.
:url
url
.
The email address of the contact person/organization. This MUST be in the form of an email address.
:email
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.
json-serializable
.
The name of the property in the payload that will hold the discriminator value.
An object to hold mappings between payload values and schema names or references.
A single encoding definition applied to a single schema property.
json-serializable
.
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.
:content-type
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.
:headers
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.
:style
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.
:explode
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.
json-serializable
.
Short description for the example.
:summary
Long description for the example. CommonMark syntax MAY be used for rich text representation.
:description
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.
: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.
:external-value
:reference
Allows referencing an external resource for extended documentation.
json-serializable
.
A description of the target documentation. CommonMark syntax MAY be used for rich text representation.
:description
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).
json-serializable
.
(setf alllow-empty-value)
.
alllow-empty-value
.
(setf allow-reserved)
.
allow-reserved
.
(setf content)
.
content
.
(setf deprecated)
.
deprecated
.
(setf example)
.
example
.
(setf examples)
.
examples
.
(setf explode)
.
explode
.
(setf header)
.
header
.
(setf reference)
.
reference
.
(setf required)
.
required
.
(setf schema)
.
schema
.
(setf style)
.
style
.
A brief description of the header. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.
:description
Determines whether this header is mandatory.
:required
Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.
:deprecated
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.
:allow-empty-value
The schema defining the type used for the parameter.
:schema
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.
:content
Describes how the parameter value will be serialized depending on the type of the parameter value. Default value: simple.
:style
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.
:explode
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.
:allow-reserved
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.
:example
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.
:examples
:reference
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.
json-serializable
.
The title of the API.
:title
A short summary of the API.
:summary
A description of the API. CommonMark syntax MAY be used for rich text representation.
:description
A URL to the Terms of Service for the API. This MUST be in the form of a URL.
:terms-of-service
The contact information for the exposed API.
:contact
The license information for the exposed API.
:license
The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the API implementation version).
:version
License information for the exposed API.
json-serializable
.
An SPDX license expression for the API. The identifier field is mutually exclusive of the url field.
:identifier
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.
json-serializable
.
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.
:operation-ref
The name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive of the operationRef field.
:operation-id
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).
:parameters
A literal value or {expression} to use as a request body when calling the target operation.
:request-body
A description of the link. CommonMark syntax MAY be used for rich text representation.
:description
server object to be used by the target operation.
:server
:reference
Each Media Type Object provides schema and examples for the media type identified by its key.
json-serializable
.
The schema defining the content of the request, response, or parameter.
:schema
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.
:example
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.
:examples
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.
:encoding
Configuration details for a supported OAuth Flow
json-serializable
.
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.
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.
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.
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.
Allows configuration of the supported OAuth Flows.
json-serializable
.
Configuration for the OAuth Implicit flow
Configuration for the OAuth Resource Owner Password flow
Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.
Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.
This is the root object of the OpenAPI document.
json-serializable
.
check-api-slots
.
collect-alias-exports
.
collect-alias-exports
.
collect-function-names
.
(setf components)
.
components
.
(setf external-documentation)
.
external-documentation
.
generate-defpackage
.
generate-function
.
generate-function-code
.
generate-slot-alias
.
generate-slot-alias
.
get-openapi-version
.
get-primary-uri
.
(setf info)
.
info
.
(setf openapi)
.
openapi
.
(setf paths)
.
paths
.
print-object
.
(setf schema)
.
schema
.
(setf security)
.
security
.
(setf servers)
.
servers
.
(setf tags)
.
tags
.
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.
openapi-generator::openapi-version
"3.1.0"
:openapi
Provides metadata about the API. The metadata MAY be used by tooling as required.
openapi-generator::info
:info
info
.
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 /.
:servers
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.
:security
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.
:paths
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.
:tags
tags
.
Additional external documentation.
:externaldocs
An element to hold various schemas for the document.
:components
:schema
json-serializable
.
openapi
.
The default value for the $schema keyword within Schema Objects contained within this OAS document. This MUST be in the form of a URI.
:json-schema-dialect
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.
:webhooks
Describes a single API operation on a path.
json-serializable
.
(setf callbacks)
.
callbacks
.
(setf deprecated)
.
deprecated
.
(setf description)
.
description
.
(setf external-documentation)
.
external-documentation
.
get-description
.
get-headers
.
get-lambda-list
.
get-response-type
.
json-body-schema
.
(setf operation-id)
.
operation-id
.
(setf parameters)
.
parameters
.
print-object
.
(setf request-body)
.
request-body
.
(setf responses)
.
responses
.
(setf security)
.
security
.
(setf servers)
.
servers
.
(setf summary)
.
summary
.
(setf tags)
.
tags
.
A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.
:tags
tags
.
A short summary of what the operation does.
:summary
A verbose explanation of the operation behavior. CommonMark syntax MAY be used for rich text representation.
:description
Additional external documentation for this operation.
:external-documentation
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.
:operation-id
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.
:parameters
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.
:request-body
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.
:responses
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.
:callbacks
Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false.
:deprecated
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.
:security
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.
:servers
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.
json-serializable
.
(setf allow-empty-value)
.
allow-empty-value
.
(setf allow-reserved)
.
allow-reserved
.
assure-optional
.
assure-required
.
(setf content)
.
content
.
(setf deprecated)
.
deprecated
.
(setf description)
.
description
.
(setf example)
.
example
.
(setf examples)
.
examples
.
(setf explode)
.
explode
.
(setf in)
.
in
.
(setf name)
.
name
.
parameter-schema-type
.
print-object
.
(setf reference)
.
reference
.
(setf required)
.
required
.
(setf schema)
.
schema
.
(setf style)
.
style
.
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.
:name
name
.
The location of the parameter. Possible values are "query", "header", "path" or "cookie".
A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.
:description
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.
:required
Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.
:deprecated
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.
:allow-empty-value
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.
:style
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.
:explode
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.
:allow-reserved
The schema defining the type used for the parameter.
:schema
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.
:example
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.
:examples
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.
:content
:reference
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.
json-serializable
.
collect-parameters
.
collect-path-types
.
(setf description)
.
description
.
(setf head)
.
head
.
(setf options)
.
options
.
(setf parameters)
.
parameters
.
(setf patch)
.
patch
.
(setf path-delete)
.
path-delete
.
(setf path-get)
.
path-get
.
(setf path-trace)
.
path-trace
.
(setf post)
.
post
.
print-object
.
(setf put)
.
put
.
(setf reference)
.
reference
.
(setf servers)
.
servers
.
(setf summary)
.
summary
.
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.
:reference
An optional, string summary, intended to apply to all operations in this path.
:summary
An optional, string description, intended to apply to all operations in this path. CommonMark syntax MAY be used for rich text representation.
:description
A definition of a GET operation on this path.
common-lisp
.
:get
A definition of a OPTIONS operation on this path.
:options
A definition of a TRACE operation on this path.
common-lisp
.
:trace
A definition of a DELETE operation on this path.
common-lisp
.
:delete
A definition of a PATCH operation on this path.
:patch
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.
:parameters
An alternative server array to service all operations in this path.
:servers
json-serializable
.
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.
json-serializable
.
The reference identifier. This MUST be in the form of a URI.
: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.
:summary
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.
:description
Describes a single request body.
json-serializable
.
:reference
A brief description of the request body. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.
:description
Determines if the request body is required in the request. Defaults to false.
:required
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/*
:content
Describes a single response from an API Operation, including design-time, static links to operations based on the response.
json-serializable
.
A description of the response. CommonMark syntax MAY be used for rich text representation.
:description
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.
: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.
: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.
:links
:reference
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.
json-serializable
.
(setf absolute-keyword-location)
.
absolute-keyword-location
.
(setf additional-properties)
.
additional-properties
.
(setf all-of)
.
all-of
.
(setf anchor)
.
anchor
.
(setf annotations)
.
annotations
.
(setf any-of)
.
any-of
.
(setf comment)
.
comment
.
(setf const)
.
const
.
(setf contains)
.
contains
.
(setf content-encoding)
.
content-encoding
.
(setf content-media-type)
.
content-media-type
.
(setf content-schema)
.
content-schema
.
(setf default)
.
default
.
(setf definitions)
.
definitions
.
(setf dependend-required)
.
dependend-required
.
(setf dependent-schemas)
.
dependent-schemas
.
(setf deprecated)
.
deprecated
.
(setf description)
.
description
.
(setf discriminator)
.
discriminator
.
(setf dynamic-anchor)
.
dynamic-anchor
.
(setf dynamic-reference)
.
dynamic-reference
.
(setf else)
.
else
.
(setf enum)
.
enum
.
(setf errors)
.
errors
.
(setf examples)
.
examples
.
(setf exclusive-maximum)
.
exclusive-maximum
.
(setf exclusive-minimum)
.
exclusive-minimum
.
(setf external-documentation)
.
external-documentation
.
(setf id)
.
id
.
(setf instance-location)
.
instance-location
.
(setf items)
.
items
.
json-content
.
(setf keyword-location)
.
keyword-location
.
(setf maximum)
.
maximum
.
(setf maximum-contains)
.
maximum-contains
.
(setf maximum-items)
.
maximum-items
.
(setf maximum-length)
.
maximum-length
.
(setf maximum-properties)
.
maximum-properties
.
(setf minimum)
.
minimum
.
(setf minimum-contains)
.
minimum-contains
.
(setf minimum-items)
.
minimum-items
.
(setf minimum-length)
.
minimum-length
.
(setf minimum-properties)
.
minimum-properties
.
(setf multiple-of)
.
multiple-of
.
(setf nullable)
.
nullable
.
(setf one-of)
.
one-of
.
(setf pattern)
.
pattern
.
(setf pattern-properties)
.
pattern-properties
.
(setf prefix-items)
.
prefix-items
.
(setf properties)
.
properties
.
(setf property-names)
.
property-names
.
(setf read-only)
.
read-only
.
(setf referenece)
.
referenece
.
(setf required)
.
required
.
(setf schema)
.
schema
.
(setf schema-if)
.
schema-if
.
(setf schema-not)
.
schema-not
.
(setf schema-type)
.
schema-type
.
(setf then)
.
then
.
(setf title)
.
title
.
(setf unevaluated-items)
.
unevaluated-items
.
(setf unevaluated-properties)
.
unevaluated-properties
.
(setf unique-items)
.
unique-items
.
(setf valid)
.
valid
.
(setf vocabulary)
.
vocabulary
.
(setf write-only)
.
write-only
.
(setf xml)
.
xml
.
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
: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.
:vocabulary
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
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.
: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".
:dynamic-anchor
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.
: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.
:dynamic-reference
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
}
}
}
:definitions
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.
:comment
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.
:discriminator
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.
:xml
xml
.
Additional external documentation for this schema.
:exernal-documentation
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.
common-lisp
.
:type
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.
:enum
enum
.
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.
:const
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.
:multiple-of
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".
: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".
:exclusive-maximum
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".
: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".
:exclusive-minimum