from __future__ import annotations
from dataclasses import dataclass
from litestar.openapi.spec.base import BaseSchemaObject
__all__ = ("OAuthFlow",)
[docs]
@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.
    """