|
|
@ -55,11 +55,7 @@ except ImportError: # pragma: no cover |
|
|
|
return with_info_plain_validator_function(cls._validate) |
|
|
|
|
|
|
|
|
|
|
|
class Contact(BaseModel): |
|
|
|
name: Optional[str] = None |
|
|
|
url: Optional[AnyUrl] = None |
|
|
|
email: Optional[EmailStr] = None |
|
|
|
|
|
|
|
class BaseModelWithConfig(BaseModel): |
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
@ -69,21 +65,19 @@ class Contact(BaseModel): |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class License(BaseModel): |
|
|
|
name: str |
|
|
|
identifier: Optional[str] = None |
|
|
|
class Contact(BaseModelWithConfig): |
|
|
|
name: Optional[str] = None |
|
|
|
url: Optional[AnyUrl] = None |
|
|
|
email: Optional[EmailStr] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
class License(BaseModelWithConfig): |
|
|
|
name: str |
|
|
|
identifier: Optional[str] = None |
|
|
|
url: Optional[AnyUrl] = None |
|
|
|
|
|
|
|
|
|
|
|
class Info(BaseModel): |
|
|
|
class Info(BaseModelWithConfig): |
|
|
|
title: str |
|
|
|
summary: Optional[str] = None |
|
|
|
description: Optional[str] = None |
|
|
@ -92,42 +86,18 @@ class Info(BaseModel): |
|
|
|
license: Optional[License] = None |
|
|
|
version: str |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class ServerVariable(BaseModel): |
|
|
|
class ServerVariable(BaseModelWithConfig): |
|
|
|
enum: Annotated[Optional[List[str]], Field(min_length=1)] = None |
|
|
|
default: str |
|
|
|
description: Optional[str] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Server(BaseModel): |
|
|
|
class Server(BaseModelWithConfig): |
|
|
|
url: Union[AnyUrl, str] |
|
|
|
description: Optional[str] = None |
|
|
|
variables: Optional[Dict[str, ServerVariable]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Reference(BaseModel): |
|
|
|
ref: str = Field(alias="$ref") |
|
|
@ -138,36 +108,20 @@ class Discriminator(BaseModel): |
|
|
|
mapping: Optional[Dict[str, str]] = None |
|
|
|
|
|
|
|
|
|
|
|
class XML(BaseModel): |
|
|
|
class XML(BaseModelWithConfig): |
|
|
|
name: Optional[str] = None |
|
|
|
namespace: Optional[str] = None |
|
|
|
prefix: Optional[str] = None |
|
|
|
attribute: Optional[bool] = None |
|
|
|
wrapped: Optional[bool] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class ExternalDocumentation(BaseModel): |
|
|
|
class ExternalDocumentation(BaseModelWithConfig): |
|
|
|
description: Optional[str] = None |
|
|
|
url: AnyUrl |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Schema(BaseModel): |
|
|
|
class Schema(BaseModelWithConfig): |
|
|
|
# Ref: JSON Schema 2020-12: https://json-schema.org/draft/2020-12/json-schema-core.html#name-the-json-schema-core-vocabu |
|
|
|
# Core Vocabulary |
|
|
|
schema_: Optional[str] = Field(default=None, alias="$schema") |
|
|
@ -253,14 +207,6 @@ class Schema(BaseModel): |
|
|
|
), |
|
|
|
] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
# Ref: https://json-schema.org/draft/2020-12/json-schema-core.html#name-json-schema-documents |
|
|
|
# A JSON Schema MUST be an object or a boolean. |
|
|
@ -289,38 +235,22 @@ class ParameterInType(Enum): |
|
|
|
cookie = "cookie" |
|
|
|
|
|
|
|
|
|
|
|
class Encoding(BaseModel): |
|
|
|
class Encoding(BaseModelWithConfig): |
|
|
|
contentType: Optional[str] = None |
|
|
|
headers: Optional[Dict[str, Union["Header", Reference]]] = None |
|
|
|
style: Optional[str] = None |
|
|
|
explode: Optional[bool] = None |
|
|
|
allowReserved: Optional[bool] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class MediaType(BaseModel): |
|
|
|
class MediaType(BaseModelWithConfig): |
|
|
|
schema_: Optional[Union[Schema, Reference]] = Field(default=None, alias="schema") |
|
|
|
example: Optional[Any] = None |
|
|
|
examples: Optional[Dict[str, Union[Example, Reference]]] = None |
|
|
|
encoding: Optional[Dict[str, Encoding]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class ParameterBase(BaseModel): |
|
|
|
class ParameterBase(BaseModelWithConfig): |
|
|
|
description: Optional[str] = None |
|
|
|
required: Optional[bool] = None |
|
|
|
deprecated: Optional[bool] = None |
|
|
@ -334,14 +264,6 @@ class ParameterBase(BaseModel): |
|
|
|
# Serialization rules for more complex scenarios |
|
|
|
content: Optional[Dict[str, MediaType]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Parameter(ParameterBase): |
|
|
|
name: str |
|
|
@ -352,21 +274,13 @@ class Header(ParameterBase): |
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
class RequestBody(BaseModel): |
|
|
|
class RequestBody(BaseModelWithConfig): |
|
|
|
description: Optional[str] = None |
|
|
|
content: Dict[str, MediaType] |
|
|
|
required: Optional[bool] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Link(BaseModel): |
|
|
|
class Link(BaseModelWithConfig): |
|
|
|
operationRef: Optional[str] = None |
|
|
|
operationId: Optional[str] = None |
|
|
|
parameters: Optional[Dict[str, Union[Any, str]]] = None |
|
|
@ -374,31 +288,15 @@ class Link(BaseModel): |
|
|
|
description: Optional[str] = None |
|
|
|
server: Optional[Server] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Response(BaseModel): |
|
|
|
class Response(BaseModelWithConfig): |
|
|
|
description: str |
|
|
|
headers: Optional[Dict[str, Union[Header, Reference]]] = None |
|
|
|
content: Optional[Dict[str, MediaType]] = None |
|
|
|
links: Optional[Dict[str, Union[Link, Reference]]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Operation(BaseModel): |
|
|
|
class Operation(BaseModelWithConfig): |
|
|
|
tags: Optional[List[str]] = None |
|
|
|
summary: Optional[str] = None |
|
|
|
description: Optional[str] = None |
|
|
@ -413,16 +311,8 @@ class Operation(BaseModel): |
|
|
|
security: Optional[List[Dict[str, List[str]]]] = None |
|
|
|
servers: Optional[List[Server]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class PathItem(BaseModel): |
|
|
|
class PathItem(BaseModelWithConfig): |
|
|
|
ref: Optional[str] = Field(default=None, alias="$ref") |
|
|
|
summary: Optional[str] = None |
|
|
|
description: Optional[str] = None |
|
|
@ -437,14 +327,6 @@ class PathItem(BaseModel): |
|
|
|
servers: Optional[List[Server]] = None |
|
|
|
parameters: Optional[List[Union[Parameter, Reference]]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class SecuritySchemeType(Enum): |
|
|
|
apiKey = "apiKey" |
|
|
@ -453,18 +335,10 @@ class SecuritySchemeType(Enum): |
|
|
|
openIdConnect = "openIdConnect" |
|
|
|
|
|
|
|
|
|
|
|
class SecurityBase(BaseModel): |
|
|
|
class SecurityBase(BaseModelWithConfig): |
|
|
|
type_: SecuritySchemeType = Field(alias="type") |
|
|
|
description: Optional[str] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class APIKeyIn(Enum): |
|
|
|
query = "query" |
|
|
@ -488,18 +362,10 @@ class HTTPBearer(HTTPBase): |
|
|
|
bearerFormat: Optional[str] = None |
|
|
|
|
|
|
|
|
|
|
|
class OAuthFlow(BaseModel): |
|
|
|
class OAuthFlow(BaseModelWithConfig): |
|
|
|
refreshUrl: Optional[str] = None |
|
|
|
scopes: Dict[str, str] = {} |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class OAuthFlowImplicit(OAuthFlow): |
|
|
|
authorizationUrl: str |
|
|
@ -518,20 +384,12 @@ class OAuthFlowAuthorizationCode(OAuthFlow): |
|
|
|
tokenUrl: str |
|
|
|
|
|
|
|
|
|
|
|
class OAuthFlows(BaseModel): |
|
|
|
class OAuthFlows(BaseModelWithConfig): |
|
|
|
implicit: Optional[OAuthFlowImplicit] = None |
|
|
|
password: Optional[OAuthFlowPassword] = None |
|
|
|
clientCredentials: Optional[OAuthFlowClientCredentials] = None |
|
|
|
authorizationCode: Optional[OAuthFlowAuthorizationCode] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class OAuth2(SecurityBase): |
|
|
|
type_: SecuritySchemeType = Field(default=SecuritySchemeType.oauth2, alias="type") |
|
|
@ -548,7 +406,7 @@ class OpenIdConnect(SecurityBase): |
|
|
|
SecurityScheme = Union[APIKey, HTTPBase, OAuth2, OpenIdConnect, HTTPBearer] |
|
|
|
|
|
|
|
|
|
|
|
class Components(BaseModel): |
|
|
|
class Components(BaseModelWithConfig): |
|
|
|
schemas: Optional[Dict[str, Union[Schema, Reference]]] = None |
|
|
|
responses: Optional[Dict[str, Union[Response, Reference]]] = None |
|
|
|
parameters: Optional[Dict[str, Union[Parameter, Reference]]] = None |
|
|
@ -561,30 +419,14 @@ class Components(BaseModel): |
|
|
|
callbacks: Optional[Dict[str, Union[Dict[str, PathItem], Reference, Any]]] = None |
|
|
|
pathItems: Optional[Dict[str, Union[PathItem, Reference]]] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class Tag(BaseModel): |
|
|
|
class Tag(BaseModelWithConfig): |
|
|
|
name: str |
|
|
|
description: Optional[str] = None |
|
|
|
externalDocs: Optional[ExternalDocumentation] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
class OpenAPI(BaseModel): |
|
|
|
class OpenAPI(BaseModelWithConfig): |
|
|
|
openapi: str |
|
|
|
info: Info |
|
|
|
jsonSchemaDialect: Optional[str] = None |
|
|
@ -597,14 +439,6 @@ class OpenAPI(BaseModel): |
|
|
|
tags: Optional[List[Tag]] = None |
|
|
|
externalDocs: Optional[ExternalDocumentation] = None |
|
|
|
|
|
|
|
if PYDANTIC_V2: |
|
|
|
model_config = {"extra": "allow"} |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
class Config: |
|
|
|
extra = "allow" |
|
|
|
|
|
|
|
|
|
|
|
_model_rebuild(Schema) |
|
|
|
_model_rebuild(Operation) |
|
|
|