# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Dict, Union, Optional
from datetime import datetime
from typing_extensions import Literal, TypeAlias

from .._models import BaseModel
from .embedding_config_base import EmbeddingConfigBase
from .embedding_config_models_api import EmbeddingConfigModelsAPI

__all__ = ["VectorStore", "EmbeddingConfig"]

EmbeddingConfig: TypeAlias = Union[EmbeddingConfigModelsAPI, EmbeddingConfigBase]


class VectorStore(BaseModel):
    """Response model for vector store operations."""

    created_at: datetime
    """Timestamp of creation"""

    embedding_config: EmbeddingConfig
    """Embedding configuration identifying the model and its type"""

    embedding_dimensions: int
    """Dimensionality of the embedding vectors"""

    name: str
    """The name of the vector store"""

    updated_at: datetime
    """Timestamp of last update"""

    indexed_metadata_fields: Optional[Dict[str, Literal["string", "number", "boolean"]]] = None
    """Dictionary mapping metadata field names to their types"""
