"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .enrichmentfield import EnrichmentField, EnrichmentFieldTypedDict
from .retrieverbinding import RetrieverBinding, RetrieverBindingTypedDict
from mixpeek.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class CollectionConfigTypedDict(TypedDict):
    r"""Configuration for a collection in the taxonomy"""

    collection_id: str
    r"""ID of the collection"""
    retriever: RetrieverBindingTypedDict
    r"""How a retriever should be used in a taxonomy"""
    enrichment_fields: NotRequired[List[EnrichmentFieldTypedDict]]
    r"""Fields to enrich with taxonomy metadata"""


class CollectionConfig(BaseModel):
    r"""Configuration for a collection in the taxonomy"""

    collection_id: str
    r"""ID of the collection"""

    retriever: RetrieverBinding
    r"""How a retriever should be used in a taxonomy"""

    enrichment_fields: Optional[List[EnrichmentField]] = None
    r"""Fields to enrich with taxonomy metadata"""
