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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class PingOneApiurl(str, enum.Enum):
    PINGONE_API_URL_US = "https://api.pingone.com"
    PINGONE_API_URL_CA = "https://api.pingone.ca"
    PINGONE_API_URL_EU = "https://api.pingone.eu"
    PINGONE_API_URL_AU = "https://api.pingone.com.au"
    PINGONE_API_URL_ASIA = "https://api.pingone.sg"
    PINGONE_API_URL_SG = "https://api.pingone.asia"

    def visit(
        self,
        pingone_api_url_us: typing.Callable[[], T_Result],
        pingone_api_url_ca: typing.Callable[[], T_Result],
        pingone_api_url_eu: typing.Callable[[], T_Result],
        pingone_api_url_au: typing.Callable[[], T_Result],
        pingone_api_url_asia: typing.Callable[[], T_Result],
        pingone_api_url_sg: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is PingOneApiurl.PINGONE_API_URL_US:
            return pingone_api_url_us()
        if self is PingOneApiurl.PINGONE_API_URL_CA:
            return pingone_api_url_ca()
        if self is PingOneApiurl.PINGONE_API_URL_EU:
            return pingone_api_url_eu()
        if self is PingOneApiurl.PINGONE_API_URL_AU:
            return pingone_api_url_au()
        if self is PingOneApiurl.PINGONE_API_URL_ASIA:
            return pingone_api_url_asia()
        if self is PingOneApiurl.PINGONE_API_URL_SG:
            return pingone_api_url_sg()
