# 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 .log_stream_event_grid_region_enum import LogStreamEventGridRegionEnum


class LogStreamEventGridSink(UniversalBaseModel):
    azure_subscription_id: typing_extensions.Annotated[
        str,
        FieldMetadata(alias="azureSubscriptionId"),
        pydantic.Field(alias="azureSubscriptionId", description="Subscription ID"),
    ]
    """
    Subscription ID
    """

    azure_region: typing_extensions.Annotated[
        LogStreamEventGridRegionEnum, FieldMetadata(alias="azureRegion"), pydantic.Field(alias="azureRegion")
    ]
    azure_resource_group: typing_extensions.Annotated[
        str,
        FieldMetadata(alias="azureResourceGroup"),
        pydantic.Field(alias="azureResourceGroup", description="Resource Group"),
    ]
    """
    Resource Group
    """

    azure_partner_topic: typing_extensions.Annotated[
        typing.Optional[str],
        FieldMetadata(alias="azurePartnerTopic"),
        pydantic.Field(alias="azurePartnerTopic", description="Partner Topic"),
    ] = None
    """
    Partner Topic
    """

    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
