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

from typing import List, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import ObservableTypes


class ResolveEntities(BaseModel):
    resolve_entities: Optional["ResolveEntitiesResolveEntities"] = Field(
        alias="resolveEntities"
    )


class ResolveEntitiesResolveEntities(BaseModel):
    type: ObservableTypes
    primary: Optional["ResolveEntitiesResolveEntitiesPrimary"]
    resolved: Optional[List["ResolveEntitiesResolveEntitiesResolved"]]
    relevance: float
    reasoning: str
    primary_cluster: Optional["ResolveEntitiesResolveEntitiesPrimaryCluster"] = Field(
        alias="primaryCluster"
    )
    outlier_clusters: Optional[
        List["ResolveEntitiesResolveEntitiesOutlierClusters"]
    ] = Field(alias="outlierClusters")


class ResolveEntitiesResolveEntitiesPrimary(BaseModel):
    id: str


class ResolveEntitiesResolveEntitiesResolved(BaseModel):
    id: str


class ResolveEntitiesResolveEntitiesPrimaryCluster(BaseModel):
    entities: List["ResolveEntitiesResolveEntitiesPrimaryClusterEntities"]
    similarity: Optional[float]


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


class ResolveEntitiesResolveEntitiesOutlierClusters(BaseModel):
    entities: List["ResolveEntitiesResolveEntitiesOutlierClustersEntities"]
    similarity: Optional[float]


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


ResolveEntities.model_rebuild()
ResolveEntitiesResolveEntities.model_rebuild()
ResolveEntitiesResolveEntitiesPrimaryCluster.model_rebuild()
ResolveEntitiesResolveEntitiesOutlierClusters.model_rebuild()
