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

import typing

from ..core import enum

T_Result = typing.TypeVar("T_Result")


class CustomGuardrailConfigTarget(enum.StrEnum):
    """
    Specify whether the guardrail should be applied to the request or response. Guardrails with target "Request" can be only used in input guardrails and guardrails with target "Response" can only be used in output guardrails.
    """

    REQUEST = "request"
    RESPONSE = "response"

    def visit(self, request: typing.Callable[[], T_Result], response: typing.Callable[[], T_Result]) -> T_Result:
        if self is CustomGuardrailConfigTarget.REQUEST:
            return request()
        if self is CustomGuardrailConfigTarget.RESPONSE:
            return response()
