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

from __future__ import annotations
from ascend_sdk import utils
from ascend_sdk.types import BaseModel
from ascend_sdk.utils import validate_open_enum
from enum import Enum
from pydantic.functional_validators import PlainValidator
from typing_extensions import Annotated, TypedDict


class RecipientBankBankIDCreateType(str, Enum, metaclass=utils.OpenEnumMeta):
    r"""The type of bank identifier specified"""

    TYPE_UNSPECIFIED = "TYPE_UNSPECIFIED"
    ABA = "ABA"
    BIC = "BIC"


class RecipientBankBankIDCreateTypedDict(TypedDict):
    r"""A bank identifier"""

    id: str
    r"""The bank identifier"""
    type: RecipientBankBankIDCreateType
    r"""The type of bank identifier specified"""


class RecipientBankBankIDCreate(BaseModel):
    r"""A bank identifier"""

    id: str
    r"""The bank identifier"""

    type: Annotated[
        RecipientBankBankIDCreateType, PlainValidator(validate_open_enum(False))
    ]
    r"""The type of bank identifier specified"""
