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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .bot_detection_allowlist import BotDetectionAllowlist
from .bot_detection_challenge_policy_password_flow_enum import BotDetectionChallengePolicyPasswordFlowEnum
from .bot_detection_challenge_policy_password_reset_flow_enum import BotDetectionChallengePolicyPasswordResetFlowEnum
from .bot_detection_challenge_policy_passwordless_flow_enum import BotDetectionChallengePolicyPasswordlessFlowEnum
from .bot_detection_level_enum import BotDetectionLevelEnum
from .bot_detection_monitoring_mode_enabled import BotDetectionMonitoringModeEnabled


class GetBotDetectionSettingsResponseContent(UniversalBaseModel):
    bot_detection_level: BotDetectionLevelEnum
    challenge_password_policy: BotDetectionChallengePolicyPasswordFlowEnum
    challenge_passwordless_policy: BotDetectionChallengePolicyPasswordlessFlowEnum
    challenge_password_reset_policy: BotDetectionChallengePolicyPasswordResetFlowEnum
    allowlist: BotDetectionAllowlist
    monitoring_mode_enabled: BotDetectionMonitoringModeEnabled

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
