# Generated by ariadne-codegen
# Source: exponent/core/graphql/operations

from typing import Literal, Union

from pydantic import Field

from .base_model import BaseModel


class HaltChatStream(BaseModel):
    halt_chat_stream: Union[
        "HaltChatStreamHaltChatStreamChat",
        "HaltChatStreamHaltChatStreamUnauthenticatedError",
        "HaltChatStreamHaltChatStreamChatNotFoundError",
        "HaltChatStreamHaltChatStreamRemoteExecutionError",
    ] = Field(alias="haltChatStream", discriminator="typename__")


class HaltChatStreamHaltChatStreamChat(BaseModel):
    typename__: Literal["Chat"] = Field(alias="__typename")
    chat_uuid: str = Field(alias="chatUuid")


class HaltChatStreamHaltChatStreamUnauthenticatedError(BaseModel):
    typename__: Literal["UnauthenticatedError"] = Field(alias="__typename")
    message: str


class HaltChatStreamHaltChatStreamChatNotFoundError(BaseModel):
    typename__: Literal["ChatNotFoundError"] = Field(alias="__typename")
    message: str


class HaltChatStreamHaltChatStreamRemoteExecutionError(BaseModel):
    typename__: Literal["RemoteExecutionError"] = Field(alias="__typename")
    message: str


HaltChatStream.model_rebuild()
