/*
* OpenAI API
*
* The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*
* The version of the OpenAPI document: 2.3.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// AssistantStreamEvent : Represents an event emitted when streaming a Run. Each event in a server-sent events stream has an `event` and `data` property: ``` event: thread.created data: {\"id\": \"thread_123\", \"object\": \"thread\", ...} ``` We emit events whenever a new object is created, transitions to a new state, or is being streamed in parts (deltas). For example, we emit `thread.run.created` when a new run is created, `thread.run.completed` when a run completes, and so on. When an Assistant chooses to create a message during a run, we emit a `thread.message.created event`, a `thread.message.in_progress` event, many `thread.message.delta` events, and finally a `thread.message.completed` event. We may add additional events over time, so we recommend handling unknown events gracefully in your code. See the [Assistants API quickstart](https://platform.openai.com/docs/assistants/overview) to learn how to integrate the Assistants API with streaming.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "event")]
pub enum AssistantStreamEvent {
#[serde(rename = "threadstreamevent")]
ThreadStreamEvent(Box<models::ThreadStreamEvent>),
#[serde(rename = "runstreamevent")]
RunStreamEvent(Box<models::RunStreamEvent>),
#[serde(rename = "runstepstreamevent")]
RunStepStreamEvent(Box<models::RunStepStreamEvent>),
#[serde(rename = "messagestreamevent")]
MessageStreamEvent(Box<models::MessageStreamEvent>),
#[serde(rename = "error")]
ErrorEvent(Box<models::ErrorEvent>),
}