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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class OpenTextCoreApplicationSecurityUrl(str, enum.Enum):
    AMS_FORTIFY_COM = "https://api.ams.fortify.com"
    EMEA_FORTIFY_COM = "https://api.emea.fortify.com"
    APAC_FORTIFY_COM = "https://api.apac.fortify.com"
    SGP_FORTIFY_COM = "https://api.sgp.fortify.com"
    FED_FORTIFYGOV_COM = "https://api.fed.fortifygov.com"
    TRIAL_FORTIFY_COM = "https://api.trial.fortify.com"

    def visit(
        self,
        ams_fortify_com: typing.Callable[[], T_Result],
        emea_fortify_com: typing.Callable[[], T_Result],
        apac_fortify_com: typing.Callable[[], T_Result],
        sgp_fortify_com: typing.Callable[[], T_Result],
        fed_fortifygov_com: typing.Callable[[], T_Result],
        trial_fortify_com: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is OpenTextCoreApplicationSecurityUrl.AMS_FORTIFY_COM:
            return ams_fortify_com()
        if self is OpenTextCoreApplicationSecurityUrl.EMEA_FORTIFY_COM:
            return emea_fortify_com()
        if self is OpenTextCoreApplicationSecurityUrl.APAC_FORTIFY_COM:
            return apac_fortify_com()
        if self is OpenTextCoreApplicationSecurityUrl.SGP_FORTIFY_COM:
            return sgp_fortify_com()
        if self is OpenTextCoreApplicationSecurityUrl.FED_FORTIFYGOV_COM:
            return fed_fortifygov_com()
        if self is OpenTextCoreApplicationSecurityUrl.TRIAL_FORTIFY_COM:
            return trial_fortify_com()
