summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/litestar/openapi/spec/oauth_flow.py
blob: c322efc021aeaf159f963a7ad05c66c4fb44b1c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from __future__ import annotations

from dataclasses import dataclass

from litestar.openapi.spec.base import BaseSchemaObject

__all__ = ("OAuthFlow",)


@dataclass
class OAuthFlow(BaseSchemaObject):
    """Configuration details for a supported OAuth Flow."""

    authorization_url: str | None = None
    """
    **REQUIRED** for ``oauth2`` ("implicit", "authorizationCode"). The authorization URL to be used for this flow. This
    MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
    """

    token_url: str | None = None
    """
    **REQUIRED** for ``oauth2`` ("password", "clientCredentials", "authorizationCode"). The token URL to be used for
    this flow. This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
    """

    refresh_url: str | None = None
    """The URL to be used for obtaining refresh tokens.

    This MUST be in the form of a URL. The OAuth2 standard requires the use of TLS.
    """

    scopes: dict[str, str] | None = None
    """
    **REQUIRED** for ``oauth2``. The available scopes for the OAuth2 security scheme. A map between the scope name and a
    short description for it the map MAY be empty.
    """