52 lines
2 KiB
Python
52 lines
2 KiB
Python
from typing import Dict, Union
|
|
|
|
from .reference import Reference
|
|
from .response import Response
|
|
|
|
Responses = Dict[str, Union[Response, Reference]]
|
|
"""
|
|
A container for the expected responses of an operation.
|
|
The container maps a HTTP response code to the expected response.
|
|
|
|
The documentation is not necessarily expected to cover all possible HTTP response codes
|
|
because they may not be known in advance.
|
|
However, documentation is expected to cover a successful operation response and any
|
|
known errors.
|
|
|
|
The `default` MAY be used as a default response object for all HTTP codes
|
|
that are not covered individually by the specification.
|
|
|
|
The `Responses Object` MUST contain at least one response code, and it
|
|
SHOULD be the response for a successful operation call.
|
|
"""
|
|
|
|
"""Fixed Fields"""
|
|
|
|
# default: Optional[Union[Response, Reference]]
|
|
"""
|
|
The documentation of responses other than the ones declared for specific HTTP response
|
|
codes.
|
|
Use this field to cover undeclared responses.
|
|
A [Reference Object](#referenceObject) can link to a response
|
|
that the [OpenAPI Object's components/responses](#componentsResponses) section defines.
|
|
"""
|
|
|
|
"""Patterned Fields"""
|
|
# {httpStatusCode}: Optional[Union[Response, Reference]]
|
|
"""
|
|
Any [HTTP status code](#httpCodes) can be used as the property name,
|
|
but only one property per code, to describe the expected response for that HTTP status
|
|
code.
|
|
|
|
A [Reference Object](#referenceObject) can link to a response
|
|
that is defined in the [OpenAPI Object's components/responses](#componentsResponses)
|
|
section.
|
|
This field MUST be enclosed in quotation marks (for example, "200") for compatibility
|
|
between JSON and YAML.
|
|
To define a range of response codes, this field MAY contain the uppercase wildcard
|
|
character `X`.
|
|
For example, `2XX` represents all response codes between `[200-299]`.
|
|
Only the following range definitions are allowed: `1XX`, `2XX`, `3XX`, `4XX`, and `5XX`.
|
|
If a response is defined using an explicit code,
|
|
the explicit code definition takes precedence over the range definition for that code.
|
|
"""
|