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

from __future__ import annotations
from honeyhive.types import BaseModel
from typing import Any, Dict, Optional, TypedDict
from typing_extensions import NotRequired


class SessionPropertiesBatchTypedDict(TypedDict):
    session_name: NotRequired[str]
    r"""Name of the session"""
    source: NotRequired[str]
    r"""Source of the session - production, staging, etc"""
    session_id: NotRequired[str]
    r"""Unique id of the session, if not set, it will be auto-generated"""
    config: NotRequired[Dict[str, Any]]
    r"""Associated configuration for the session"""
    inputs: NotRequired[Dict[str, Any]]
    r"""Input object passed to the session - user query, text blob, etc"""
    outputs: NotRequired[Dict[str, Any]]
    r"""Final output of the session - completion, chunks, etc"""
    error: NotRequired[str]
    r"""Any error description if session failed"""
    user_properties: NotRequired[Dict[str, Any]]
    r"""Any user properties associated with the session"""
    metrics: NotRequired[Dict[str, Any]]
    r"""Any values computed over the output of the session"""
    feedback: NotRequired[Dict[str, Any]]
    r"""Any user feedback provided for the session output"""
    metadata: NotRequired[Dict[str, Any]]
    r"""Any system or application metadata associated with the session"""


class SessionPropertiesBatch(BaseModel):
    session_name: Optional[str] = None
    r"""Name of the session"""

    source: Optional[str] = None
    r"""Source of the session - production, staging, etc"""

    session_id: Optional[str] = None
    r"""Unique id of the session, if not set, it will be auto-generated"""

    config: Optional[Dict[str, Any]] = None
    r"""Associated configuration for the session"""

    inputs: Optional[Dict[str, Any]] = None
    r"""Input object passed to the session - user query, text blob, etc"""

    outputs: Optional[Dict[str, Any]] = None
    r"""Final output of the session - completion, chunks, etc"""

    error: Optional[str] = None
    r"""Any error description if session failed"""

    user_properties: Optional[Dict[str, Any]] = None
    r"""Any user properties associated with the session"""

    metrics: Optional[Dict[str, Any]] = None
    r"""Any values computed over the output of the session"""

    feedback: Optional[Dict[str, Any]] = None
    r"""Any user feedback provided for the session output"""

    metadata: Optional[Dict[str, Any]] = None
    r"""Any system or application metadata associated with the session"""
