use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::agent;
use crate::error;
use crate::logs::LogReference;
use crate::functions::executions::response;
use super::{reasoning_summary_log_reference, task_log_reference};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(
rename = "functions.executions.response.streaming.FunctionExecutionChunkLog"
)]
pub struct FunctionExecutionChunkLog {
pub id: String,
pub tasks: Vec<task_log_reference::LogReference>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub tasks_errors: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub output: Option<response::Output>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub error: Option<error::ResponseError>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub retry_token: Option<LogReference>,
pub created: u64,
pub function: Option<crate::RemotePath>,
pub profile: Option<crate::RemotePath>,
pub object: response::streaming::Object,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub usage: Option<agent::completions::response::Usage>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub reasoning: Option<reasoning_summary_log_reference::LogReference>,
}