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

from __future__ import annotations
from .beneficiarycreate import BeneficiaryCreate, BeneficiaryCreateTypedDict
from ascend_sdk.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class BeneficiaryEnrollmentMetadataCreateTypedDict(TypedDict):
    r"""Enrollment metadata for the BENEFICIARY_DESIGNATION enrollment type."""

    primary_beneficiaries: List[BeneficiaryCreateTypedDict]
    r"""At least one primary beneficiary must be provided, with a maximum of five primary beneficiaries."""
    contingent_beneficiaries: NotRequired[List[BeneficiaryCreateTypedDict]]
    r"""Contingent Beneficiary list is optional, with a maximum of five contingent beneficiaries."""


class BeneficiaryEnrollmentMetadataCreate(BaseModel):
    r"""Enrollment metadata for the BENEFICIARY_DESIGNATION enrollment type."""

    primary_beneficiaries: List[BeneficiaryCreate]
    r"""At least one primary beneficiary must be provided, with a maximum of five primary beneficiaries."""

    contingent_beneficiaries: Optional[List[BeneficiaryCreate]] = None
    r"""Contingent Beneficiary list is optional, with a maximum of five contingent beneficiaries."""
