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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class AppointmentType(str, enum.Enum):
    COMPLETE = "Complete"
    NORMAL = "Normal"
    TENTATIVE = "Tentative"

    def visit(
        self,
        complete: typing.Callable[[], T_Result],
        normal: typing.Callable[[], T_Result],
        tentative: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is AppointmentType.COMPLETE:
            return complete()
        if self is AppointmentType.NORMAL:
            return normal()
        if self is AppointmentType.TENTATIVE:
            return tentative()
