# 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 .http_custom_header import HttpCustomHeader
from .log_stream_http_content_format_enum import LogStreamHttpContentFormatEnum


class LogStreamHttpSink(UniversalBaseModel):
    http_authorization: typing_extensions.Annotated[
        typing.Optional[str],
        FieldMetadata(alias="httpAuthorization"),
        pydantic.Field(alias="httpAuthorization", description="HTTP Authorization header"),
    ] = None
    """
    HTTP Authorization header
    """

    http_content_format: typing_extensions.Annotated[
        typing.Optional[LogStreamHttpContentFormatEnum],
        FieldMetadata(alias="httpContentFormat"),
        pydantic.Field(alias="httpContentFormat"),
    ] = None
    http_content_type: typing_extensions.Annotated[
        typing.Optional[str],
        FieldMetadata(alias="httpContentType"),
        pydantic.Field(alias="httpContentType", description="HTTP Content-Type header"),
    ] = None
    """
    HTTP Content-Type header
    """

    http_endpoint: typing_extensions.Annotated[
        str, FieldMetadata(alias="httpEndpoint"), pydantic.Field(alias="httpEndpoint", description="HTTP endpoint")
    ]
    """
    HTTP endpoint
    """

    http_custom_headers: typing_extensions.Annotated[
        typing.Optional[typing.List[HttpCustomHeader]],
        FieldMetadata(alias="httpCustomHeaders"),
        pydantic.Field(alias="httpCustomHeaders", description="custom HTTP headers"),
    ] = None
    """
    custom HTTP headers
    """

    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
