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

from __future__ import annotations
from .amount import Amount, AmountTypedDict
from .schedulepaymentmethod import SchedulePaymentMethod, SchedulePaymentMethodTypedDict
from moovio_sdk.types import BaseModel
import pydantic
from typing_extensions import Annotated, TypedDict


class RunTransferTypedDict(TypedDict):
    r"""Defines the attributes of a transfer."""

    amount: AmountTypedDict
    destination: SchedulePaymentMethodTypedDict
    partner_account_id: str
    source: SchedulePaymentMethodTypedDict
    description: str
    r"""Simple description to place on the transfer."""


class RunTransfer(BaseModel):
    r"""Defines the attributes of a transfer."""

    amount: Amount

    destination: SchedulePaymentMethod

    partner_account_id: Annotated[str, pydantic.Field(alias="partnerAccountID")]

    source: SchedulePaymentMethod

    description: str
    r"""Simple description to place on the transfer."""
