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

from __future__ import annotations

from typing import Dict, Union, Iterable, Optional
from typing_extensions import Required, TypedDict

__all__ = ["DataIngestParams"]


class DataIngestParams(TypedDict, total=False):
    content_type: Required[str]
    """
    Content type (e.g., 'text', 'image', 'video', 'pdf', 'word', 'audio',
    'messages', 'file')
    """

    payload: Required[Union[str, Dict[str, object], Iterable[object]]]
    """Raw content as string, object, list (for messages), or base64 encoded data"""

    user_id: Required[str]
    """User ID to associate the data with"""

    filename: Optional[str]
    """Filename of the uploaded file"""

    session_id: Optional[str]
    """
    Session ID for grouping related ingested content and enabling session-based
    retrieval
    """

    timestamp: Optional[str]
    """ISO-8601 timestamp to preserve original data moment"""
