# This file was auto-generated by Fern from our API Definition.

from __future__ import annotations

import typing

import pydantic

from .....commons.types.npi import Npi
from .....commons.types.tax_id import TaxId


class PayeeIdentifier_Npi(pydantic.BaseModel):
    value: Npi
    type: typing.Literal["npi"] = "npi"

    class Config:
        frozen = True
        smart_union = True


class PayeeIdentifier_Tin(pydantic.BaseModel):
    value: TaxId
    type: typing.Literal["tin"] = "tin"

    class Config:
        frozen = True
        smart_union = True


class PayeeIdentifier_CmsPlanId(pydantic.BaseModel):
    value: str
    type: typing.Literal["cms_plan_id"] = "cms_plan_id"

    class Config:
        frozen = True
        smart_union = True


PayeeIdentifier = typing.Union[PayeeIdentifier_Npi, PayeeIdentifier_Tin, PayeeIdentifier_CmsPlanId]
