-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathreference.py
38 lines (28 loc) · 1.09 KB
/
reference.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from pydantic import BaseModel, Field
from openapi_pydantic.compat import PYDANTIC_V2, ConfigDict, Extra
_examples = [
{"$ref": "#/components/schemas/Pet"},
{"$ref": "Pet.json"},
{"$ref": "definitions.json#/Pet"},
]
class Reference(BaseModel):
"""
A simple object to allow referencing other components in the specification.
The Reference Object is defined by [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)
and follows the same structure, behavior and rules.
For this specification, reference resolution is accomplished as defined by the JSON
Reference specification and not by the JSON Schema specification.
"""
ref: str = Field(alias="$ref")
"""**REQUIRED**. The reference string."""
if PYDANTIC_V2:
model_config = ConfigDict(
extra="allow",
populate_by_name=True,
json_schema_extra={"examples": _examples},
)
else:
class Config:
extra = Extra.allow
allow_population_by_field_name = True
schema_extra = {"examples": _examples}