Skip to content

Commit

Permalink
extend components
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxim Avanov committed Feb 9, 2021
1 parent 563811a commit 0031df6
Showing 1 changed file with 54 additions and 51 deletions.
105 changes: 54 additions & 51 deletions openapi_type/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,53 +121,6 @@ class UnionSchemaTypeOne(NamedTuple):
]


class Components(NamedTuple):
schemas: Mapping[str, SchemaType]
links: Mapping[str, SchemaType] = pmap()
request_bodies: Mapping[str, Any] = pmap()
security_schemes: Mapping[str, Any] = pmap()


class ServerVar(NamedTuple):
default: str
enum: Sequence[str]
description: str = ''


class Server(NamedTuple):
url: str
description: str = ''
variables: Mapping[str, ServerVar] = pmap()


class InfoLicense(NamedTuple):
name: str
url: str = ''


class InfoContact(NamedTuple):
name: Optional[str]
email: Optional[str]
url: Optional[str]


class Info(NamedTuple):
version: str
""" API version
"""
title: str
license: Optional[InfoLicense]
contact: Optional[InfoContact]
terms_of_service: str = ''
description: str = ''


class SpecFormat(Enum):
V3_0_0 = '3.0.0'
V3_0_1 = '3.0.1'
V3_0_2 = '3.0.2'


class ParamLocation(Enum):
QUERY = 'query'
HEADER = 'header'
Expand Down Expand Up @@ -199,17 +152,17 @@ class OperationParameter(NamedTuple):
explode: Optional[bool] = None


HTTPCode = NewType('HTTPCode', str)
HeaderName = NewType('HeaderName', str)


class Header(NamedTuple):
""" response header
"""
schema: SchemaType
description: str = ''


HTTPCode = NewType('HTTPCode', str)
HeaderName = NewType('HeaderName', str)


class MediaType(NamedTuple):
""" https://swagger.io/specification/#media-type-object
"""
Expand All @@ -227,6 +180,56 @@ class Response(NamedTuple):
description: str = ''


class Components(NamedTuple):
schemas: Mapping[str, SchemaType]
links: Mapping[str, SchemaType] = pmap()
parameters: Mapping[str, OperationParameter] = pmap()
responses: Mapping[str, Response] = pmap()
headers: Mapping[str, Header] = pmap()
request_bodies: Mapping[str, Any] = pmap()
security_schemes: Mapping[str, Any] = pmap()


class ServerVar(NamedTuple):
default: str
enum: Sequence[str]
description: str = ''


class Server(NamedTuple):
url: str
description: str = ''
variables: Mapping[str, ServerVar] = pmap()


class InfoLicense(NamedTuple):
name: str
url: str = ''


class InfoContact(NamedTuple):
name: Optional[str]
email: Optional[str]
url: Optional[str]


class Info(NamedTuple):
version: str
""" API version
"""
title: str
license: Optional[InfoLicense]
contact: Optional[InfoContact]
terms_of_service: str = ''
description: str = ''


class SpecFormat(Enum):
V3_0_0 = '3.0.0'
V3_0_1 = '3.0.1'
V3_0_2 = '3.0.2'


class ExternalDoc(NamedTuple):
url: str
description: str = ''
Expand Down

0 comments on commit 0031df6

Please sign in to comment.