# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing_extensions import Literal, Required, Annotated, TypedDict

from ..._utils import PropertyInfo

__all__ = ["V2AccessTokensParams"]


class V2AccessTokensParams(TypedDict, total=False):
    code: Required[str]
    """Code used to generate JWT.

    Should be a valid code stored and redis that holds the customer pub id as value.
    """

    grant_type: Required[Annotated[Literal["authorizationCode"], PropertyInfo(alias="grantType")]]
    """Grant types allowed for authenticating."""

    email: str
    """Email address of the customer"""

    scope: Literal["customer"]
    """Scope to be used to created the JWT"""

    transfer_email: Annotated[str, PropertyInfo(alias="transferEmail")]
    """Email address of the customer transferring the order"""

    transfer_order_confirmation: Annotated[str, PropertyInfo(alias="transferOrderConfirmation")]
    """
    Order confirmation number for the order that is going to be transferred to this
    customer
    """
