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

from __future__ import annotations
from .customerreferralsourceupdate import (
    CustomerReferralSourceUpdate,
    CustomerReferralSourceUpdateTypedDict,
)
from .negativenewsupdate import NegativeNewsUpdate, NegativeNewsUpdateTypedDict
from .othersourcesofwealthupdate import (
    OtherSourcesOfWealthUpdate,
    OtherSourcesOfWealthUpdateTypedDict,
)
from ascend_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class NaturalPersonFddUpdateTypedDict(TypedDict):
    r"""Foreign Due Diligence for Legal Natural Persons required when a Legal Natural Person is the Primary Owner on a non-resident/non-citizen Account."""

    customer_non_referral_source: NotRequired[str]
    r"""Customer Non-referral Source"""
    customer_referral_source: NotRequired[CustomerReferralSourceUpdateTypedDict]
    r"""Customer Referral Source"""
    employment_and_employer_description: NotRequired[str]
    r"""The description of the applicant's source of wealth"""
    negative_news: NotRequired[NegativeNewsUpdateTypedDict]
    r"""Negative News detail."""
    other_sources_of_wealth: NotRequired[OtherSourcesOfWealthUpdateTypedDict]
    r"""Applicant's other source of wealth"""


class NaturalPersonFddUpdate(BaseModel):
    r"""Foreign Due Diligence for Legal Natural Persons required when a Legal Natural Person is the Primary Owner on a non-resident/non-citizen Account."""

    customer_non_referral_source: Optional[str] = None
    r"""Customer Non-referral Source"""

    customer_referral_source: Optional[CustomerReferralSourceUpdate] = None
    r"""Customer Referral Source"""

    employment_and_employer_description: Optional[str] = None
    r"""The description of the applicant's source of wealth"""

    negative_news: Optional[NegativeNewsUpdate] = None
    r"""Negative News detail."""

    other_sources_of_wealth: Optional[OtherSourcesOfWealthUpdate] = None
    r"""Applicant's other source of wealth"""
