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

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata
from .attack_protection_captcha_arkose_response_content import AttackProtectionCaptchaArkoseResponseContent
from .attack_protection_captcha_auth_challenge_response_content import (
    AttackProtectionCaptchaAuthChallengeResponseContent,
)
from .attack_protection_captcha_friendly_captcha_response_content import (
    AttackProtectionCaptchaFriendlyCaptchaResponseContent,
)
from .attack_protection_captcha_hcaptcha_response_content import AttackProtectionCaptchaHcaptchaResponseContent
from .attack_protection_captcha_recaptcha_enterprise_response_content import (
    AttackProtectionCaptchaRecaptchaEnterpriseResponseContent,
)
from .attack_protection_captcha_recaptcha_v_2_response_content import AttackProtectionCaptchaRecaptchaV2ResponseContent
from .attack_protection_captcha_simple_captcha_response_content import (
    AttackProtectionCaptchaSimpleCaptchaResponseContent,
)


class UpdateAttackProtectionCaptchaResponseContent(UniversalBaseModel):
    active_provider_id: typing.Optional[str] = None
    arkose: typing.Optional[AttackProtectionCaptchaArkoseResponseContent] = None
    auth_challenge: typing.Optional[AttackProtectionCaptchaAuthChallengeResponseContent] = None
    hcaptcha: typing.Optional[AttackProtectionCaptchaHcaptchaResponseContent] = None
    friendly_captcha: typing.Optional[AttackProtectionCaptchaFriendlyCaptchaResponseContent] = None
    recaptcha_enterprise: typing.Optional[AttackProtectionCaptchaRecaptchaEnterpriseResponseContent] = None
    recaptcha_v_2: typing_extensions.Annotated[
        typing.Optional[AttackProtectionCaptchaRecaptchaV2ResponseContent],
        FieldMetadata(alias="recaptcha_v2"),
        pydantic.Field(alias="recaptcha_v2"),
    ] = None
    simple_captcha: typing.Optional[AttackProtectionCaptchaSimpleCaptchaResponseContent] = None

    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
