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.
mipac/compiler/type.py

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