{
'$id' => 'https://spec.openapis.org/oas/3.1/schema/2022-10-07',
'$schema' => 'https://json-schema.org/draft/2020-12/schema',
'description' => 'The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0',
'type' => 'object',
'properties' => {
'openapi' => {
'type' => 'string',
'pattern' => '^3\.1\.\d+(-.+)?$'
},
'info' => {
'$ref' => '#/$defs/info'
},
'jsonSchemaDialect' => {
'type' => 'string',
'format' => 'uri',
'default' => 'https://spec.openapis.org/oas/3.1/dialect/base'
},
'servers' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/server'
},
'default' => [
{
'url' => '/'
}
]
},
'paths' => {
'$ref' => '#/$defs/paths'
},
'webhooks' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/path-item-or-reference'
}
},
'components' => {
'$ref' => '#/$defs/components'
},
'security' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/security-requirement'
}
},
'tags' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/tag'
}
},
'externalDocs' => {
'$ref' => '#/$defs/external-documentation'
}
},
'required' => [
'openapi',
'info'
],
'anyOf' => [
{
'required' => [
'paths'
]
},
{
'required' => [
'components'
]
},
{
'required' => [
'webhooks'
]
}
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false,
'$defs' => {
'info' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#info-object',
'type' => 'object',
'properties' => {
'title' => {
'type' => 'string'
},
'summary' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'termsOfService' => {
'type' => 'string',
'format' => 'uri'
},
'contact' => {
'$ref' => '#/$defs/contact'
},
'license' => {
'$ref' => '#/$defs/license'
},
'version' => {
'type' => 'string'
}
},
'required' => [
'title',
'version'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'contact' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#contact-object',
'type' => 'object',
'properties' => {
'name' => {
'type' => 'string'
},
'url' => {
'type' => 'string',
'format' => 'uri'
},
'email' => {
'type' => 'string',
'format' => 'email'
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'license' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#license-object',
'type' => 'object',
'properties' => {
'name' => {
'type' => 'string'
},
'identifier' => {
'type' => 'string'
},
'url' => {
'type' => 'string',
'format' => 'uri'
}
},
'required' => [
'name'
],
'dependentSchemas' => {
'identifier' => {
'not' => {
'required' => [
'url'
]
}
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'server' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#server-object',
'type' => 'object',
'properties' => {
'url' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'variables' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/server-variable'
}
}
},
'required' => [
'url'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'server-variable' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#server-variable-object',
'type' => 'object',
'properties' => {
'enum' => {
'type' => 'array',
'items' => {
'type' => 'string'
},
'minItems' => 1
},
'default' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
}
},
'required' => [
'default'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'components' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#components-object',
'type' => 'object',
'properties' => {
'schemas' => {
'type' => 'object',
'additionalProperties' => {
'$dynamicRef' => '#meta'
}
},
'responses' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/response-or-reference'
}
},
'parameters' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/parameter-or-reference'
}
},
'examples' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/example-or-reference'
}
},
'requestBodies' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/request-body-or-reference'
}
},
'headers' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/header-or-reference'
}
},
'securitySchemes' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/security-scheme-or-reference'
}
},
'links' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/link-or-reference'
}
},
'callbacks' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/callbacks-or-reference'
}
},
'pathItems' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/path-item-or-reference'
}
}
},
'patternProperties' => {
'^(schemas|responses|parameters|examples|requestBodies|headers|securitySchemes|links|callbacks|pathItems)$' => {
'$comment' => 'Enumerating all of the property names in the regex above is necessary for unevaluatedProperties to work as expected',
'propertyNames' => {
'pattern' => '^[a-zA-Z0-9._-]+$'
}
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'paths' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#paths-object',
'type' => 'object',
'patternProperties' => {
'^/' => {
'$ref' => '#/$defs/path-item'
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'path-item' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#path-item-object',
'type' => 'object',
'properties' => {
'summary' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'servers' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/server'
}
},
'parameters' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/parameter-or-reference'
}
},
'get' => {
'$ref' => '#/$defs/operation'
},
'put' => {
'$ref' => '#/$defs/operation'
},
'post' => {
'$ref' => '#/$defs/operation'
},
'delete' => {
'$ref' => '#/$defs/operation'
},
'options' => {
'$ref' => '#/$defs/operation'
},
'head' => {
'$ref' => '#/$defs/operation'
},
'patch' => {
'$ref' => '#/$defs/operation'
},
'trace' => {
'$ref' => '#/$defs/operation'
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'path-item-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/path-item'
}
},
'operation' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#operation-object',
'type' => 'object',
'properties' => {
'tags' => {
'type' => 'array',
'items' => {
'type' => 'string'
}
},
'summary' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'externalDocs' => {
'$ref' => '#/$defs/external-documentation'
},
'operationId' => {
'type' => 'string'
},
'parameters' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/parameter-or-reference'
}
},
'requestBody' => {
'$ref' => '#/$defs/request-body-or-reference'
},
'responses' => {
'$ref' => '#/$defs/responses'
},
'callbacks' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/callbacks-or-reference'
}
},
'deprecated' => {
'default' => false,
'type' => 'boolean'
},
'security' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/security-requirement'
}
},
'servers' => {
'type' => 'array',
'items' => {
'$ref' => '#/$defs/server'
}
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'external-documentation' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#external-documentation-object',
'type' => 'object',
'properties' => {
'description' => {
'type' => 'string'
},
'url' => {
'type' => 'string',
'format' => 'uri'
}
},
'required' => [
'url'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'parameter' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#parameter-object',
'type' => 'object',
'properties' => {
'name' => {
'type' => 'string'
},
'in' => {
'enum' => [
'query',
'header',
'path',
'cookie'
]
},
'description' => {
'type' => 'string'
},
'required' => {
'default' => false,
'type' => 'boolean'
},
'deprecated' => {
'default' => false,
'type' => 'boolean'
},
'schema' => {
'$dynamicRef' => '#meta'
},
'content' => {
'$ref' => '#/$defs/content',
'minProperties' => 1,
'maxProperties' => 1
}
},
'required' => [
'name',
'in'
],
'oneOf' => [
{
'required' => [
'schema'
]
},
{
'required' => [
'content'
]
}
],
'if' => {
'properties' => {
'in' => {
'const' => 'query'
}
},
'required' => [
'in'
]
},
'then' => {
'properties' => {
'allowEmptyValue' => {
'default' => false,
'type' => 'boolean'
}
}
},
'dependentSchemas' => {
'schema' => {
'properties' => {
'style' => {
'type' => 'string'
},
'explode' => {
'type' => 'boolean'
}
},
'allOf' => [
{
'$ref' => '#/$defs/examples'
},
{
'$ref' => '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-path'
},
{
'$ref' => '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-header'
},
{
'$ref' => '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-query'
},
{
'$ref' => '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie'
},
{
'$ref' => '#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form'
}
],
'$defs' => {
'styles-for-path' => {
'if' => {
'properties' => {
'in' => {
'const' => 'path'
}
},
'required' => [
'in'
]
},
'then' => {
'properties' => {
'name' => {
'pattern' => '[^/#?]+$'
},
'style' => {
'default' => 'simple',
'enum' => [
'matrix',
'label',
'simple'
]
},
'required' => {
'const' => true
}
},
'required' => [
'required'
]
}
},
'styles-for-header' => {
'if' => {
'properties' => {
'in' => {
'const' => 'header'
}
},
'required' => [
'in'
]
},
'then' => {
'properties' => {
'style' => {
'default' => 'simple',
'const' => 'simple'
}
}
}
},
'styles-for-query' => {
'if' => {
'properties' => {
'in' => {
'const' => 'query'
}
},
'required' => [
'in'
]
},
'then' => {
'properties' => {
'style' => {
'default' => 'form',
'enum' => [
'form',
'spaceDelimited',
'pipeDelimited',
'deepObject'
]
},
'allowReserved' => {
'default' => false,
'type' => 'boolean'
}
}
}
},
'styles-for-cookie' => {
'if' => {
'properties' => {
'in' => {
'const' => 'cookie'
}
},
'required' => [
'in'
]
},
'then' => {
'properties' => {
'style' => {
'default' => 'form',
'const' => 'form'
}
}
}
},
'styles-for-form' => {
'if' => {
'properties' => {
'style' => {
'const' => 'form'
}
},
'required' => [
'style'
]
},
'then' => {
'properties' => {
'explode' => {
'default' => true
}
}
},
'else' => {
'properties' => {
'explode' => {
'default' => false
}
}
}
}
}
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'parameter-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/parameter'
}
},
'request-body' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#request-body-object',
'type' => 'object',
'properties' => {
'description' => {
'type' => 'string'
},
'content' => {
'$ref' => '#/$defs/content'
},
'required' => {
'default' => false,
'type' => 'boolean'
}
},
'required' => [
'content'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'request-body-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/request-body'
}
},
'content' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#fixed-fields-10',
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/media-type'
},
'propertyNames' => {
'format' => 'media-range'
}
},
'media-type' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#media-type-object',
'type' => 'object',
'properties' => {
'schema' => {
'$dynamicRef' => '#meta'
},
'encoding' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/encoding'
}
}
},
'allOf' => [
{
'$ref' => '#/$defs/specification-extensions'
},
{
'$ref' => '#/$defs/examples'
}
],
'unevaluatedProperties' => false
},
'encoding' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#encoding-object',
'type' => 'object',
'properties' => {
'contentType' => {
'type' => 'string',
'format' => 'media-range'
},
'headers' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/header-or-reference'
}
},
'style' => {
'default' => 'form',
'enum' => [
'form',
'spaceDelimited',
'pipeDelimited',
'deepObject'
]
},
'explode' => {
'type' => 'boolean'
},
'allowReserved' => {
'default' => false,
'type' => 'boolean'
}
},
'allOf' => [
{
'$ref' => '#/$defs/specification-extensions'
},
{
'$ref' => '#/$defs/encoding/$defs/explode-default'
}
],
'unevaluatedProperties' => false,
'$defs' => {
'explode-default' => {
'if' => {
'properties' => {
'style' => {
'const' => 'form'
}
},
'required' => [
'style'
]
},
'then' => {
'properties' => {
'explode' => {
'default' => true
}
}
},
'else' => {
'properties' => {
'explode' => {
'default' => false
}
}
}
}
}
},
'responses' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#responses-object',
'type' => 'object',
'properties' => {
'default' => {
'$ref' => '#/$defs/response-or-reference'
}
},
'patternProperties' => {
'^[1-5](?:[0-9]{2}|XX)$' => {
'$ref' => '#/$defs/response-or-reference'
}
},
'minProperties' => 1,
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'response' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#response-object',
'type' => 'object',
'properties' => {
'description' => {
'type' => 'string'
},
'headers' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/header-or-reference'
}
},
'content' => {
'$ref' => '#/$defs/content'
},
'links' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/link-or-reference'
}
}
},
'required' => [
'description'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'response-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/response'
}
},
'callbacks' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#callback-object',
'type' => 'object',
'$ref' => '#/$defs/specification-extensions',
'additionalProperties' => {
'$ref' => '#/$defs/path-item-or-reference'
}
},
'callbacks-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/callbacks'
}
},
'example' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#example-object',
'type' => 'object',
'properties' => {
'summary' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'value' => true,
'externalValue' => {
'type' => 'string',
'format' => 'uri'
}
},
'not' => {
'required' => [
'value',
'externalValue'
]
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'example-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/example'
}
},
'link' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#link-object',
'type' => 'object',
'properties' => {
'operationRef' => {
'type' => 'string'
},
'operationId' => {
'type' => 'string'
},
'parameters' => {
'$ref' => '#/$defs/map-of-strings'
},
'requestBody' => true,
'description' => {
'type' => 'string'
},
'body' => {
'$ref' => '#/$defs/server'
}
},
'oneOf' => [
{
'required' => [
'operationRef'
]
},
{
'required' => [
'operationId'
]
}
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'link-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/link'
}
},
'header' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#header-object',
'type' => 'object',
'properties' => {
'description' => {
'type' => 'string'
},
'required' => {
'default' => false,
'type' => 'boolean'
},
'deprecated' => {
'default' => false,
'type' => 'boolean'
},
'schema' => {
'$dynamicRef' => '#meta'
},
'content' => {
'$ref' => '#/$defs/content',
'minProperties' => 1,
'maxProperties' => 1
}
},
'oneOf' => [
{
'required' => [
'schema'
]
},
{
'required' => [
'content'
]
}
],
'dependentSchemas' => {
'schema' => {
'properties' => {
'style' => {
'default' => 'simple',
'const' => 'simple'
},
'explode' => {
'default' => false,
'type' => 'boolean'
}
},
'$ref' => '#/$defs/examples'
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'header-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/header'
}
},
'tag' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#tag-object',
'type' => 'object',
'properties' => {
'name' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
},
'externalDocs' => {
'$ref' => '#/$defs/external-documentation'
}
},
'required' => [
'name'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'reference' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#reference-object',
'type' => 'object',
'properties' => {
'$ref' => {
'type' => 'string',
'format' => 'uri-reference'
},
'summary' => {
'type' => 'string'
},
'description' => {
'type' => 'string'
}
},
'unevaluatedProperties' => false
},
'schema' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#schema-object',
'$dynamicAnchor' => 'meta',
'type' => [
'object',
'boolean'
]
},
'security-scheme' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#security-scheme-object',
'type' => 'object',
'properties' => {
'type' => {
'enum' => [
'apiKey',
'http',
'mutualTLS',
'oauth2',
'openIdConnect'
]
},
'description' => {
'type' => 'string'
}
},
'required' => [
'type'
],
'allOf' => [
{
'$ref' => '#/$defs/specification-extensions'
},
{
'$ref' => '#/$defs/security-scheme/$defs/type-apikey'
},
{
'$ref' => '#/$defs/security-scheme/$defs/type-http'
},
{
'$ref' => '#/$defs/security-scheme/$defs/type-http-bearer'
},
{
'$ref' => '#/$defs/security-scheme/$defs/type-oauth2'
},
{
'$ref' => '#/$defs/security-scheme/$defs/type-oidc'
}
],
'unevaluatedProperties' => false,
'$defs' => {
'type-apikey' => {
'if' => {
'properties' => {
'type' => {
'const' => 'apiKey'
}
},
'required' => [
'type'
]
},
'then' => {
'properties' => {
'name' => {
'type' => 'string'
},
'in' => {
'enum' => [
'query',
'header',
'cookie'
]
}
},
'required' => [
'name',
'in'
]
}
},
'type-http' => {
'if' => {
'properties' => {
'type' => {
'const' => 'http'
}
},
'required' => [
'type'
]
},
'then' => {
'properties' => {
'scheme' => {
'type' => 'string'
}
},
'required' => [
'scheme'
]
}
},
'type-http-bearer' => {
'if' => {
'properties' => {
'type' => {
'const' => 'http'
},
'scheme' => {
'type' => 'string',
'pattern' => '^[Bb][Ee][Aa][Rr][Ee][Rr]$'
}
},
'required' => [
'type',
'scheme'
]
},
'then' => {
'properties' => {
'bearerFormat' => {
'type' => 'string'
}
}
}
},
'type-oauth2' => {
'if' => {
'properties' => {
'type' => {
'const' => 'oauth2'
}
},
'required' => [
'type'
]
},
'then' => {
'properties' => {
'flows' => {
'$ref' => '#/$defs/oauth-flows'
}
},
'required' => [
'flows'
]
}
},
'type-oidc' => {
'if' => {
'properties' => {
'type' => {
'const' => 'openIdConnect'
}
},
'required' => [
'type'
]
},
'then' => {
'properties' => {
'openIdConnectUrl' => {
'type' => 'string',
'format' => 'uri'
}
},
'required' => [
'openIdConnectUrl'
]
}
}
}
},
'security-scheme-or-reference' => {
'if' => {
'type' => 'object',
'required' => [
'$ref'
]
},
'then' => {
'$ref' => '#/$defs/reference'
},
'else' => {
'$ref' => '#/$defs/security-scheme'
}
},
'oauth-flows' => {
'type' => 'object',
'properties' => {
'implicit' => {
'$ref' => '#/$defs/oauth-flows/$defs/implicit'
},
'password' => {
'$ref' => '#/$defs/oauth-flows/$defs/password'
},
'clientCredentials' => {
'$ref' => '#/$defs/oauth-flows/$defs/client-credentials'
},
'authorizationCode' => {
'$ref' => '#/$defs/oauth-flows/$defs/authorization-code'
}
},
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false,
'$defs' => {
'implicit' => {
'type' => 'object',
'properties' => {
'authorizationUrl' => {
'type' => 'string',
'format' => 'uri'
},
'refreshUrl' => {
'type' => 'string',
'format' => 'uri'
},
'scopes' => {
'$ref' => '#/$defs/map-of-strings'
}
},
'required' => [
'authorizationUrl',
'scopes'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'password' => {
'type' => 'object',
'properties' => {
'tokenUrl' => {
'type' => 'string',
'format' => 'uri'
},
'refreshUrl' => {
'type' => 'string',
'format' => 'uri'
},
'scopes' => {
'$ref' => '#/$defs/map-of-strings'
}
},
'required' => [
'tokenUrl',
'scopes'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'client-credentials' => {
'type' => 'object',
'properties' => {
'tokenUrl' => {
'type' => 'string',
'format' => 'uri'
},
'refreshUrl' => {
'type' => 'string',
'format' => 'uri'
},
'scopes' => {
'$ref' => '#/$defs/map-of-strings'
}
},
'required' => [
'tokenUrl',
'scopes'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
},
'authorization-code' => {
'type' => 'object',
'properties' => {
'authorizationUrl' => {
'type' => 'string',
'format' => 'uri'
},
'tokenUrl' => {
'type' => 'string',
'format' => 'uri'
},
'refreshUrl' => {
'type' => 'string',
'format' => 'uri'
},
'scopes' => {
'$ref' => '#/$defs/map-of-strings'
}
},
'required' => [
'authorizationUrl',
'tokenUrl',
'scopes'
],
'$ref' => '#/$defs/specification-extensions',
'unevaluatedProperties' => false
}
}
},
'security-requirement' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#security-requirement-object',
'type' => 'object',
'additionalProperties' => {
'type' => 'array',
'items' => {
'type' => 'string'
}
}
},
'specification-extensions' => {
'$comment' => 'https://spec.openapis.org/oas/v3.1.0#specification-extensions',
'patternProperties' => {
'^x-' => true
}
},
'examples' => {
'properties' => {
'example' => true,
'examples' => {
'type' => 'object',
'additionalProperties' => {
'$ref' => '#/$defs/example-or-reference'
}
}
}
},
'map-of-strings' => {
'type' => 'object',
'additionalProperties' => {
'type' => 'string'
}
}
}
}