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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class EnkryptAiGuardrailConfigOperation(str, enum.Enum):
    """
    +label=Operation
    +usage=The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests.
    Validate guardrails are run in parallel while mutate guardrails are run sequentially.
    +uiType=Select
    +sort=100
    """

    VALIDATE = "validate"
    MUTATE = "mutate"

    def visit(self, validate: typing.Callable[[], T_Result], mutate: typing.Callable[[], T_Result]) -> T_Result:
        if self is EnkryptAiGuardrailConfigOperation.VALIDATE:
            return validate()
        if self is EnkryptAiGuardrailConfigOperation.MUTATE:
            return mutate()
