summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
commit6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch)
treeb1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py
parent4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff)
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py')
-rw-r--r--venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py b/venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py
new file mode 100644
index 0000000..55465fa
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/litestar/openapi/spec/open_api.py
@@ -0,0 +1,87 @@
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+from typing import TYPE_CHECKING
+
+from litestar.openapi.spec.base import BaseSchemaObject
+from litestar.openapi.spec.components import Components
+from litestar.openapi.spec.server import Server
+
+if TYPE_CHECKING:
+ from litestar.openapi.spec.external_documentation import ExternalDocumentation
+ from litestar.openapi.spec.info import Info
+ from litestar.openapi.spec.path_item import PathItem
+ from litestar.openapi.spec.paths import Paths
+ from litestar.openapi.spec.reference import Reference
+ from litestar.openapi.spec.security_requirement import SecurityRequirement
+ from litestar.openapi.spec.tag import Tag
+
+__all__ = ("OpenAPI",)
+
+
+@dataclass
+class OpenAPI(BaseSchemaObject):
+ """Root OpenAPI document."""
+
+ info: Info
+ """
+ **REQUIRED**. Provides metadata about the API. The metadata MAY be used by tooling as required.
+ """
+
+ openapi: str = "3.1.0"
+ """
+ **REQUIRED**. This string MUST be the
+ `version number <https://spec.openapis.org/oas/v3.1.0#versions>`_ of the OpenAPI Specification that the OpenAPI
+ document uses. The ``openapi`` field SHOULD be used by tooling to interpret the OpenAPI document. This is *not*
+ related to the API `info.version <https://spec.openapis.org/oas/v3.1.0#infoVersion>`_ string.
+ """
+
+ json_schema_dialect: str | None = None
+ """The default value for the ``$schema`` keyword within
+ `Schema Objects <https://spec.openapis.org/oas/v3.1.0#schemaObject>`_ contained within this OAS document.
+
+ This MUST be in the form of a URI.
+ """
+
+ servers: list[Server] = field(default_factory=lambda x: [Server(url="/")]) # type: ignore[misc, arg-type]
+ """An array of Server Objects, which provide connectivity information to a target server.
+
+ If the ``servers`` property is not provided, or is an empty array, the default value would be a
+ `Server Object <https://spec.openapis.org/oas/v3.1.0#serverObject>`_ with a
+ `url <https://spec.openapis.org/oas/v3.1.0#serverUrl>`_ value of ``/``.
+ """
+
+ paths: Paths | None = None
+ """The available paths and operations for the API."""
+
+ webhooks: dict[str, PathItem | Reference] | None = None
+ """The incoming webhooks that MAY be received as part of this API and that the API consumer MAY choose to implement.
+
+ Closely related to the ``callbacks`` feature, this section describes requests initiated other than by an API call,
+ for example by an out of band registration. The key name is a unique string to refer to each webhook, while the
+ (optionally referenced) Path Item Object describes a request that may be initiated by the API provider and the
+ expected responses. An
+ `example <https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.1/webhook-example.yaml>`_ is available.
+ """
+
+ components: Components = field(default_factory=Components)
+ """An element to hold various schemas for the document."""
+
+ security: list[SecurityRequirement] | None = None
+ """A declaration of which security mechanisms can be used across the API.
+
+ The list of values includes alternative security requirement objects that can be used. Only one of the security
+ requirement objects need to be satisfied to authorize a request. Individual operations can override this definition.
+ To make security optional, an empty security requirement ( ``{}`` ) can be included in the array.
+ """
+
+ tags: list[Tag] | None = None
+ """A list of tags used by the document with additional metadata.
+
+ The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the
+ `Operation Object <https://spec.openapis.org/oas/v3.1.0#operationObject>`_ must be declared. The tags that are not
+ declared MAY be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique.
+ """
+
+ external_docs: ExternalDocumentation | None = None
+ """Additional external documentation."""