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

from __future__ import annotations

import typing

import typing_extensions

from .in_network_status import InNetworkStatus
from .indeterminate_network_status import IndeterminateNetworkStatus
from .out_of_network_status import OutOfNetworkStatus


class ExpectedNetworkStatusV2_InNetwork(InNetworkStatus):
    type: typing_extensions.Literal["in_network"]

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True


class ExpectedNetworkStatusV2_OutOfNetwork(OutOfNetworkStatus):
    type: typing_extensions.Literal["out_of_network"]

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True


class ExpectedNetworkStatusV2_Indeterminate(IndeterminateNetworkStatus):
    type: typing_extensions.Literal["indeterminate"]

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True


ExpectedNetworkStatusV2 = typing.Union[
    ExpectedNetworkStatusV2_InNetwork, ExpectedNetworkStatusV2_OutOfNetwork, ExpectedNetworkStatusV2_Indeterminate
]
