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

import datetime as dt
import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .read_v1response_metadata_metadata_intents_info import ReadV1ResponseMetadataMetadataIntentsInfo
from .read_v1response_metadata_metadata_sentiment_info import ReadV1ResponseMetadataMetadataSentimentInfo
from .read_v1response_metadata_metadata_summary_info import ReadV1ResponseMetadataMetadataSummaryInfo
from .read_v1response_metadata_metadata_topics_info import ReadV1ResponseMetadataMetadataTopicsInfo


class ReadV1ResponseMetadataMetadata(UniversalBaseModel):
    request_id: typing.Optional[str] = None
    created: typing.Optional[dt.datetime] = None
    language: typing.Optional[str] = None
    summary_info: typing.Optional[ReadV1ResponseMetadataMetadataSummaryInfo] = None
    sentiment_info: typing.Optional[ReadV1ResponseMetadataMetadataSentimentInfo] = None
    topics_info: typing.Optional[ReadV1ResponseMetadataMetadataTopicsInfo] = None
    intents_info: typing.Optional[ReadV1ResponseMetadataMetadataIntentsInfo] = 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
