diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/litestar/openapi/spec/header.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/litestar/openapi/spec/header.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/litestar/openapi/spec/header.py b/venv/lib/python3.11/site-packages/litestar/openapi/spec/header.py new file mode 100644 index 0000000..006ff22 --- /dev/null +++ b/venv/lib/python3.11/site-packages/litestar/openapi/spec/header.py @@ -0,0 +1,121 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import TYPE_CHECKING, Any, Literal + +from litestar.openapi.spec.base import BaseSchemaObject + +if TYPE_CHECKING: + from litestar.openapi.spec.example import Example + from litestar.openapi.spec.media_type import OpenAPIMediaType + from litestar.openapi.spec.reference import Reference + from litestar.openapi.spec.schema import Schema + +__all__ = ("OpenAPIHeader",) + + +@dataclass +class OpenAPIHeader(BaseSchemaObject): + """The Header Object follows the structure of the [Parameter + Object](https://spec.openapis.org/oas/v3.1.0#parameterObject) with the + following changes: + + 1. ``name`` MUST NOT be specified, it is given in the corresponding ``headers`` map. + 2. ``in`` MUST NOT be specified, it is implicitly in ``header``. + 3. All traits that are affected by the location MUST be applicable to a location of ``header`` + (for example, `style <https://spec.openapis.org/oas/v3.1.0#parameterStyle>`__). + """ + + schema: Schema | Reference | None = None + """The schema defining the type used for the parameter.""" + + name: Literal[""] = "" + """MUST NOT be specified, it is given in the corresponding ``headers`` map.""" + + param_in: Literal["header"] = "header" + """MUST NOT be specified, it is implicitly in ``header``.""" + + description: str | None = None + """A brief description of the parameter. This could contain examples of + use. + + `CommonMark syntax <https://spec.commonmark.org/>`_ MAY be used for rich text representation. + """ + + required: bool = False + """Determines whether this parameter is mandatory. + + If the `parameter location <https://spec.openapis.org/oas/v3.1.0#parameterIn>`_ is ``"path"``, this property is + **REQUIRED** and its value MUST be ``True``. Otherwise, the property MAY be included and its default value is + ``False``. + """ + + deprecated: bool = False + """Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is ``False``.""" + + allow_empty_value: bool = False + """Sets the ability to pass empty-valued parameters. This is valid only for ``query`` parameters and allows sending + a parameter with an empty value. Default value is ``False``. If + `style <https://spec.openapis.org/oas/v3.1.0#parameterStyle>`__ is used, and if behavior is ``n/a`` (cannot be + serialized), the value of ``allowEmptyValue`` SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is + likely to be removed in a later revision. + + The rules for serialization of the parameter are specified in one of two ways.For simpler scenarios, a + `schema <https://spec.openapis.org/oas/v3.1.0#parameterSchema>`_ and + `style <https://spec.openapis.org/oas/v3.1.0#parameterStyle>`__ can describe the structure and syntax of the + parameter. + """ + + style: str | None = None + """Describes how the parameter value will be serialized depending on the + type of the parameter value. Default values (based on value of ``in``): + + - for ``query`` - ``form``; + - for ``path`` - ``simple``; + - for ``header`` - ``simple``; + - for ``cookie`` - ``form``. + """ + + explode: bool | None = None + """When this is true, parameter values of type ``array`` or ``object`` generate separate parameters for each value + of the array or key-value pair of the map. + + For other types of parameters this property has no effect.When + `style <https://spec.openapis.org/oas/v3.1.0#parameterStyle>`__ is ``form``, the default value is ``True``. For all + other styles, the default value is ``False``. + """ + + allow_reserved: bool = False + """Determines whether the parameter value SHOULD allow reserved characters, as defined by. :rfc:`3986` + (``:/?#[]@!$&'()*+,;=``) to be included without percent-encoding. + + This property only applies to parameters with an ``in`` value of ``query``. The default value is ``False``. + """ + + example: Any | None = None + """Example of the parameter's potential value. + + The example SHOULD match the specified schema and encoding properties if present. The ``example`` field is mutually + exclusive of the ``examples`` field. Furthermore, if referencing a ``schema`` that contains an example, the + ``example`` value SHALL _override_ the example provided by the schema. To represent examples of media types that + cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where + necessary. + """ + + examples: dict[str, Example | Reference] | None = None + """Examples of the parameter's potential value. Each example SHOULD contain a value in the correct format as + specified in the parameter encoding. The ``examples`` field is mutually exclusive of the ``example`` field. + Furthermore, if referencing a ``schema`` that contains an example, the ``examples`` value SHALL _override_ the + example provided by the schema. + + For more complex scenarios, the `content <https://spec.openapis.org/oas/v3.1.0#parameterContent>`_ property can + define the media type and schema of the parameter. A parameter MUST contain either a ``schema`` property, or a + ``content`` property, but not both. When ``example`` or ``examples`` are provided in conjunction with the ``schema`` + object, the example MUST follow the prescribed serialization strategy for the parameter. + """ + + content: dict[str, OpenAPIMediaType] | None = None + """A map containing the representations for the parameter. + + The key is the media type and the value describes it. The map MUST only contain one entry. + """ |