# Generated by ariadne-codegen
# Source: ./documents

from typing import Any, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import (
    ContentTypes,
    ConversationTypes,
    EntityState,
    FileTypes,
    FilterMode,
    ObservableTypes,
)


class QueryConversationsClusters(BaseModel):
    conversations: Optional["QueryConversationsClustersConversations"]


class QueryConversationsClustersConversations(BaseModel):
    results: Optional[list["QueryConversationsClustersConversationsResults"]]
    clusters: Optional[
        list[Optional["QueryConversationsClustersConversationsClusters"]]
    ]


class QueryConversationsClustersConversationsResults(BaseModel):
    id: str
    name: str
    creation_date: Any = Field(alias="creationDate")
    modified_date: Optional[Any] = Field(alias="modifiedDate")
    relevance: Optional[float]
    owner: "QueryConversationsClustersConversationsResultsOwner"
    state: EntityState
    correlation_id: Optional[str] = Field(alias="correlationId")
    type: Optional[ConversationTypes]
    transcript_uri: Optional[Any] = Field(alias="transcriptUri")
    message_count: Optional[int] = Field(alias="messageCount")
    turn_count: Optional[int] = Field(alias="turnCount")
    agent: Optional["QueryConversationsClustersConversationsResultsAgent"]
    persona: Optional["QueryConversationsClustersConversationsResultsPersona"]
    specification: Optional[
        "QueryConversationsClustersConversationsResultsSpecification"
    ]
    fallbacks: Optional[
        list[Optional["QueryConversationsClustersConversationsResultsFallbacks"]]
    ]
    filter: Optional["QueryConversationsClustersConversationsResultsFilter"]
    augmented_filter: Optional[
        "QueryConversationsClustersConversationsResultsAugmentedFilter"
    ] = Field(alias="augmentedFilter")
    summary: Optional[str]


class QueryConversationsClustersConversationsResultsOwner(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAgent(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsPersona(BaseModel):
    id: str
    name: str


class QueryConversationsClustersConversationsResultsSpecification(BaseModel):
    id: str
    name: str


class QueryConversationsClustersConversationsResultsFallbacks(BaseModel):
    id: str
    name: str


class QueryConversationsClustersConversationsResultsFilter(BaseModel):
    date_range: Optional[
        "QueryConversationsClustersConversationsResultsFilterDateRange"
    ] = Field(alias="dateRange")
    in_last: Optional[Any] = Field(alias="inLast")
    in_next: Optional[Any] = Field(alias="inNext")
    creation_date_range: Optional[
        "QueryConversationsClustersConversationsResultsFilterCreationDateRange"
    ] = Field(alias="creationDateRange")
    created_in_last: Optional[Any] = Field(alias="createdInLast")
    types: Optional[list[ContentTypes]]
    file_types: Optional[list[FileTypes]] = Field(alias="fileTypes")
    formats: Optional[list[str]]
    file_extensions: Optional[list[str]] = Field(alias="fileExtensions")
    file_size_range: Optional[
        "QueryConversationsClustersConversationsResultsFilterFileSizeRange"
    ] = Field(alias="fileSizeRange")
    similar_contents: Optional[
        list["QueryConversationsClustersConversationsResultsFilterSimilarContents"]
    ] = Field(alias="similarContents")
    contents: Optional[
        list["QueryConversationsClustersConversationsResultsFilterContents"]
    ]
    feeds: Optional[list["QueryConversationsClustersConversationsResultsFilterFeeds"]]
    workflows: Optional[
        list["QueryConversationsClustersConversationsResultsFilterWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsClustersConversationsResultsFilterCollections"]
    ]
    users: Optional[list["QueryConversationsClustersConversationsResultsFilterUsers"]]
    observations: Optional[
        list["QueryConversationsClustersConversationsResultsFilterObservations"]
    ]
    or_: Optional[list["QueryConversationsClustersConversationsResultsFilterOr"]] = (
        Field(alias="or")
    )
    and_: Optional[list["QueryConversationsClustersConversationsResultsFilterAnd"]] = (
        Field(alias="and")
    )
    has_observations: Optional[bool] = Field(alias="hasObservations")
    has_feeds: Optional[bool] = Field(alias="hasFeeds")
    has_collections: Optional[bool] = Field(alias="hasCollections")
    has_workflows: Optional[bool] = Field(alias="hasWorkflows")
    collection_mode: Optional[FilterMode] = Field(alias="collectionMode")
    observation_mode: Optional[FilterMode] = Field(alias="observationMode")


class QueryConversationsClustersConversationsResultsFilterDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsFilterCreationDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsFilterFileSizeRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsFilterSimilarContents(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterContents(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterWorkflows(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterCollections(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsClustersConversationsResultsFilterObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsFilterObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsFilterOr(BaseModel):
    feeds: Optional[list["QueryConversationsClustersConversationsResultsFilterOrFeeds"]]
    workflows: Optional[
        list["QueryConversationsClustersConversationsResultsFilterOrWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsClustersConversationsResultsFilterOrCollections"]
    ]
    users: Optional[list["QueryConversationsClustersConversationsResultsFilterOrUsers"]]
    observations: Optional[
        list["QueryConversationsClustersConversationsResultsFilterOrObservations"]
    ]


class QueryConversationsClustersConversationsResultsFilterOrFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterOrWorkflows(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterOrCollections(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterOrUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterOrObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsClustersConversationsResultsFilterOrObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsFilterOrObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsFilterAnd(BaseModel):
    feeds: Optional[
        list["QueryConversationsClustersConversationsResultsFilterAndFeeds"]
    ]
    workflows: Optional[
        list["QueryConversationsClustersConversationsResultsFilterAndWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsClustersConversationsResultsFilterAndCollections"]
    ]
    users: Optional[
        list["QueryConversationsClustersConversationsResultsFilterAndUsers"]
    ]
    observations: Optional[
        list["QueryConversationsClustersConversationsResultsFilterAndObservations"]
    ]


class QueryConversationsClustersConversationsResultsFilterAndFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterAndWorkflows(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterAndCollections(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterAndUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsFilterAndObservations(BaseModel):
    type: ObservableTypes
    observable: (
        "QueryConversationsClustersConversationsResultsFilterAndObservationsObservable"
    )
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsFilterAndObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilter(BaseModel):
    date_range: Optional[
        "QueryConversationsClustersConversationsResultsAugmentedFilterDateRange"
    ] = Field(alias="dateRange")
    in_last: Optional[Any] = Field(alias="inLast")
    in_next: Optional[Any] = Field(alias="inNext")
    creation_date_range: Optional[
        "QueryConversationsClustersConversationsResultsAugmentedFilterCreationDateRange"
    ] = Field(alias="creationDateRange")
    created_in_last: Optional[Any] = Field(alias="createdInLast")
    types: Optional[list[ContentTypes]]
    file_types: Optional[list[FileTypes]] = Field(alias="fileTypes")
    formats: Optional[list[str]]
    file_extensions: Optional[list[str]] = Field(alias="fileExtensions")
    file_size_range: Optional[
        "QueryConversationsClustersConversationsResultsAugmentedFilterFileSizeRange"
    ] = Field(alias="fileSizeRange")
    similar_contents: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterSimilarContents"
        ]
    ] = Field(alias="similarContents")
    contents: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterContents"]
    ]
    feeds: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterFeeds"]
    ]
    workflows: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterWorkflows"]
    ]
    collections: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterCollections"]
    ]
    users: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterUsers"]
    ]
    observations: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterObservations"
        ]
    ]
    or_: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterOr"]
    ] = Field(alias="or")
    and_: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterAnd"]
    ] = Field(alias="and")
    has_observations: Optional[bool] = Field(alias="hasObservations")
    has_feeds: Optional[bool] = Field(alias="hasFeeds")
    has_collections: Optional[bool] = Field(alias="hasCollections")
    has_workflows: Optional[bool] = Field(alias="hasWorkflows")
    collection_mode: Optional[FilterMode] = Field(alias="collectionMode")
    observation_mode: Optional[FilterMode] = Field(alias="observationMode")


class QueryConversationsClustersConversationsResultsAugmentedFilterDateRange(BaseModel):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsAugmentedFilterCreationDateRange(
    BaseModel
):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsAugmentedFilterFileSizeRange(
    BaseModel
):
    from_: Optional[Any] = Field(alias="from")
    to: Optional[Any]


class QueryConversationsClustersConversationsResultsAugmentedFilterSimilarContents(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterContents(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterWorkflows(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterCollections(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterObservations(
    BaseModel
):
    type: ObservableTypes
    observable: "QueryConversationsClustersConversationsResultsAugmentedFilterObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsAugmentedFilterObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterOr(BaseModel):
    feeds: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterOrFeeds"]
    ]
    workflows: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterOrWorkflows"]
    ]
    collections: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterOrCollections"
        ]
    ]
    users: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterOrUsers"]
    ]
    observations: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterOrObservations"
        ]
    ]


class QueryConversationsClustersConversationsResultsAugmentedFilterOrFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterOrWorkflows(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterOrCollections(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterOrUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterOrObservations(
    BaseModel
):
    type: ObservableTypes
    observable: "QueryConversationsClustersConversationsResultsAugmentedFilterOrObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsAugmentedFilterOrObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterAnd(BaseModel):
    feeds: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterAndFeeds"]
    ]
    workflows: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterAndWorkflows"
        ]
    ]
    collections: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterAndCollections"
        ]
    ]
    users: Optional[
        list["QueryConversationsClustersConversationsResultsAugmentedFilterAndUsers"]
    ]
    observations: Optional[
        list[
            "QueryConversationsClustersConversationsResultsAugmentedFilterAndObservations"
        ]
    ]


class QueryConversationsClustersConversationsResultsAugmentedFilterAndFeeds(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterAndWorkflows(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterAndCollections(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterAndUsers(BaseModel):
    id: str


class QueryConversationsClustersConversationsResultsAugmentedFilterAndObservations(
    BaseModel
):
    type: ObservableTypes
    observable: "QueryConversationsClustersConversationsResultsAugmentedFilterAndObservationsObservable"
    states: Optional[list[EntityState]]


class QueryConversationsClustersConversationsResultsAugmentedFilterAndObservationsObservable(
    BaseModel
):
    id: str


class QueryConversationsClustersConversationsClusters(BaseModel):
    entities: list["QueryConversationsClustersConversationsClustersEntities"]
    similarity: Optional[float]


class QueryConversationsClustersConversationsClustersEntities(BaseModel):
    id: str
    name: Optional[str]


QueryConversationsClusters.model_rebuild()
QueryConversationsClustersConversations.model_rebuild()
QueryConversationsClustersConversationsResults.model_rebuild()
QueryConversationsClustersConversationsResultsFilter.model_rebuild()
QueryConversationsClustersConversationsResultsFilterObservations.model_rebuild()
QueryConversationsClustersConversationsResultsFilterOr.model_rebuild()
QueryConversationsClustersConversationsResultsFilterOrObservations.model_rebuild()
QueryConversationsClustersConversationsResultsFilterAnd.model_rebuild()
QueryConversationsClustersConversationsResultsFilterAndObservations.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilter.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilterObservations.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilterOr.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilterOrObservations.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilterAnd.model_rebuild()
QueryConversationsClustersConversationsResultsAugmentedFilterAndObservations.model_rebuild()
QueryConversationsClustersConversationsClusters.model_rebuild()
