"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from dataclasses_json import Undefined, dataclass_json
from honeyhive import utils
from typing import Optional


@dataclasses.dataclass
class Output:
    r"""Updated outputs for the event"""
    



@dataclasses.dataclass
class Inputs:
    r"""Updated inputs for the event"""
    



@dataclasses.dataclass
class UserProperties:
    r"""Updated user properties for the event"""
    



@dataclasses.dataclass
class Feedback:
    r"""Updated feedback for the event"""
    



@dataclasses.dataclass
class SessionEventUpdateMetadata:
    r"""Updated metadata for the event"""
    



@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class SessionEventUpdate:
    error: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('error') }})
    r"""Updated error for the event"""
    output: Output = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('output') }})
    r"""Updated outputs for the event"""
    duration: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('duration'), 'exclude': lambda f: f is None }})
    r"""Updated duration for the event"""
    feedback: Optional[Feedback] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('feedback'), 'exclude': lambda f: f is None }})
    r"""Updated feedback for the event"""
    inputs: Optional[Inputs] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inputs'), 'exclude': lambda f: f is None }})
    r"""Updated inputs for the event"""
    metadata: Optional[SessionEventUpdateMetadata] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metadata'), 'exclude': lambda f: f is None }})
    r"""Updated metadata for the event"""
    user_properties: Optional[UserProperties] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('user_properties'), 'exclude': lambda f: f is None }})
    r"""Updated user properties for the event"""
    

