# 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 .event_stream_cloud_event_connection_deleted_object_1_options_connection_settings_pkce_enum import (
    EventStreamCloudEventConnectionDeletedObject1OptionsConnectionSettingsPkceEnum,
)


class EventStreamCloudEventConnectionDeletedObject1OptionsConnectionSettings(UniversalBaseModel):
    """
    OAuth 2.0 PKCE (Proof Key for Code Exchange) settings. PKCE enhances security for public clients by preventing authorization code interception attacks. 'auto' (recommended) uses the strongest method supported by the IdP.
    """

    pkce: typing.Optional[EventStreamCloudEventConnectionDeletedObject1OptionsConnectionSettingsPkceEnum] = 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
