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

from __future__ import annotations
from .dateupdate import DateUpdate, DateUpdateTypedDict
from ascend_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class IdentityVerificationResultUpdateTypedDict(TypedDict):
    r"""An identity verification result that clients may supply. This result represents data and confirmation attesting to identity verification."""

    address_verified: NotRequired[bool]
    r"""Attestation that external result and review have verified the supplied investor's address has been verified in conjunction with other PII"""
    birth_date_verified: NotRequired[bool]
    r"""Attestation that external result and review have verified the supplied investor's date of birth has been verified in conjunction with other PII"""
    execution_date: NotRequired[DateUpdateTypedDict]
    r"""Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:

    * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date

    Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`.
    """
    external_case_id: NotRequired[str]
    r"""Client-generated identifier associated with the KYC results for the appropriate case"""
    identity_verification_document_ids: NotRequired[List[str]]
    r"""System generated document IDs returned after uploading identity documents to the Documents API"""
    name_verified: NotRequired[bool]
    r"""Attestation that external result and review have verified the supplied investor's name has been verified in conjunction with other PII"""
    raw_vendor_data_document_id: NotRequired[str]
    r"""A system-generated document ID assigned when raw vendor results are uploaded to the Documents API; This field is optional for person record creation, but required for account creation if the Correspondent provides IDV results"""
    tax_id_verified: NotRequired[bool]
    r"""Attestation that external result and review have verified the supplied investor's Tax ID has been verified in conjunction with other PII"""
    vendor: NotRequired[str]
    r"""The name(s) of the vendor(s) used to externally verify and screen a natural person; relates to the identity_verification_result"""


class IdentityVerificationResultUpdate(BaseModel):
    r"""An identity verification result that clients may supply. This result represents data and confirmation attesting to identity verification."""

    address_verified: Optional[bool] = None
    r"""Attestation that external result and review have verified the supplied investor's address has been verified in conjunction with other PII"""

    birth_date_verified: Optional[bool] = None
    r"""Attestation that external result and review have verified the supplied investor's date of birth has been verified in conjunction with other PII"""

    execution_date: Optional[DateUpdate] = None
    r"""Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:

    * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date

    Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`.
    """

    external_case_id: Optional[str] = None
    r"""Client-generated identifier associated with the KYC results for the appropriate case"""

    identity_verification_document_ids: Optional[List[str]] = None
    r"""System generated document IDs returned after uploading identity documents to the Documents API"""

    name_verified: Optional[bool] = None
    r"""Attestation that external result and review have verified the supplied investor's name has been verified in conjunction with other PII"""

    raw_vendor_data_document_id: Optional[str] = None
    r"""A system-generated document ID assigned when raw vendor results are uploaded to the Documents API; This field is optional for person record creation, but required for account creation if the Correspondent provides IDV results"""

    tax_id_verified: Optional[bool] = None
    r"""Attestation that external result and review have verified the supplied investor's Tax ID has been verified in conjunction with other PII"""

    vendor: Optional[str] = None
    r"""The name(s) of the vendor(s) used to externally verify and screen a natural person; relates to the identity_verification_result"""
