"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .disbursementpaymentmethodtype import DisbursementPaymentMethodType
from .payoutrecipientupdate import PayoutRecipientUpdate, PayoutRecipientUpdateTypedDict
from moovio_sdk.types import BaseModel
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class PaymentLinkPayoutDetailsUpdateTypedDict(TypedDict):
    allowed_methods: NotRequired[List[DisbursementPaymentMethodType]]
    r"""A list of payment methods that should be supported for this payment link."""
    recipient: NotRequired[PayoutRecipientUpdateTypedDict]
    r"""Specify the intended recipient of the payout.

    This information will be used to authenticate the end user when they follow the payment link.
    """


class PaymentLinkPayoutDetailsUpdate(BaseModel):
    allowed_methods: Annotated[
        Optional[List[DisbursementPaymentMethodType]],
        pydantic.Field(alias="allowedMethods"),
    ] = None
    r"""A list of payment methods that should be supported for this payment link."""

    recipient: Optional[PayoutRecipientUpdate] = None
    r"""Specify the intended recipient of the payout.

    This information will be used to authenticate the end user when they follow the payment link.
    """
