mirror of https://github.com/yupix/mipac
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.0 KiB
45 lines
1.0 KiB
from typing import Any, Literal, NotRequired, TypedDict
|
|
|
|
|
|
class OpenAPIInfo(TypedDict):
|
|
version: str
|
|
title: str
|
|
|
|
|
|
class OpenAPIExternalDocs(TypedDict):
|
|
description: str
|
|
url: str
|
|
|
|
|
|
class OpenAPIRequestBody(TypedDict):
|
|
required: bool
|
|
|
|
|
|
class OpenAPIPath(TypedDict):
|
|
operationId: str
|
|
summary: str
|
|
description: str
|
|
externalDocs: OpenAPIExternalDocs
|
|
tags: list[str]
|
|
security: list[dict[str, list[Any]]]
|
|
requestBody: OpenAPIRequestBody
|
|
|
|
class OpenAPIComponentProperty(TypedDict):
|
|
type: str | None
|
|
format: NotRequired[str]
|
|
items: NotRequired["OpenAPIComponentSchema"]
|
|
|
|
class OpenAPIComponentSchema(TypedDict):
|
|
type: Literal["object"]
|
|
properties: dict[str, OpenAPIComponentProperty]
|
|
|
|
class OpenAPIComponents(TypedDict):
|
|
schemas: dict[str, OpenAPIComponentSchema]
|
|
|
|
class OpenAPI(TypedDict):
|
|
openapi: str
|
|
info: OpenAPIInfo
|
|
externalDocs: OpenAPIExternalDocs
|
|
paths: dict[str, dict[Literal['post', 'get'], OpenAPIPath]]
|
|
components: OpenAPIComponents
|