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

from typing import Literal, Union

from pydantic import Field

from .base_model import BaseModel


class CreateCloudChatFromRepository(BaseModel):
    create_cloud_chat: Union[
        "CreateCloudChatFromRepositoryCreateCloudChatChat",
        "CreateCloudChatFromRepositoryCreateCloudChatUnauthenticatedError",
        "CreateCloudChatFromRepositoryCreateCloudChatChatNotFoundError",
        "CreateCloudChatFromRepositoryCreateCloudChatCloudConfigNotFoundError",
        "CreateCloudChatFromRepositoryCreateCloudChatGithubConfigNotFoundError",
        "CreateCloudChatFromRepositoryCreateCloudChatCloudSessionError",
        "CreateCloudChatFromRepositoryCreateCloudChatOutOfCreditsError",
        "CreateCloudChatFromRepositoryCreateCloudChatError",
    ] = Field(alias="createCloudChat", discriminator="typename__")


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


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


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


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


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


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


class CreateCloudChatFromRepositoryCreateCloudChatOutOfCreditsError(BaseModel):
    typename__: Literal["OutOfCreditsError"] = Field(alias="__typename")


class CreateCloudChatFromRepositoryCreateCloudChatError(BaseModel):
    typename__: Literal["Error"] = Field(alias="__typename")


CreateCloudChatFromRepository.model_rebuild()
