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

from __future__ import annotations
from fermisdk.types import BaseModel
from typing import Literal, Optional
from typing_extensions import NotRequired, TypedDict


SessionActionRequestAction = Literal[
    "create",
    "delete",
    "clear",
    "edit",
]
r"""Action to perform"""


class SessionActionRequestTypedDict(TypedDict):
    action: SessionActionRequestAction
    r"""Action to perform"""
    session_id: NotRequired[str]
    r"""Session ID (required for delete/clear/edit, optional for create)"""
    name: NotRequired[str]
    r"""Session name (required for edit, optional for create)"""
    conversation_type: NotRequired[str]
    r"""Conversation type for create (defaults to 'chat')"""


class SessionActionRequest(BaseModel):
    action: SessionActionRequestAction
    r"""Action to perform"""

    session_id: Optional[str] = None
    r"""Session ID (required for delete/clear/edit, optional for create)"""

    name: Optional[str] = None
    r"""Session name (required for edit, optional for create)"""

    conversation_type: Optional[str] = None
    r"""Conversation type for create (defaults to 'chat')"""
