forked from openapi-generators/openapi-python-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmedia_type.py
More file actions
81 lines (66 loc) · 2.83 KB
/
media_type.py
File metadata and controls
81 lines (66 loc) · 2.83 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from typing import Any, Dict, Optional, Union
from pydantic import BaseModel, Field
from .encoding import Encoding
from .example import Example
from .reference import Reference
from .schema import Schema
class MediaType(BaseModel):
"""Each Media Type Object provides schema and examples for the media type identified by its key."""
media_type_schema: Optional[Union[Reference, Schema]] = Field(default=None, alias="schema")
"""
The schema defining the content of the request, response, or parameter.
"""
example: Optional[Any] = None
"""
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.
"""
examples: Optional[Dict[str, Union[Example, Reference]]] = None
"""
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.
"""
encoding: Optional[Dict[str, Encoding]] = None
"""
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`.
"""
class Config:
allow_population_by_field_name = True
schema_extra = {
"examples": [
{
"schema": {"$ref": "#/components/schemas/Pet"},
"examples": {
"cat": {
"summary": "An example of a cat",
"value": {
"name": "Fluffy",
"petType": "Cat",
"color": "White",
"gender": "male",
"breed": "Persian",
},
},
"dog": {
"summary": "An example of a dog with a cat's name",
"value": {
"name": "Puma",
"petType": "Dog",
"color": "Black",
"gender": "Female",
"breed": "Mixed",
},
},
},
}
]
}