use crate::{agent, functions};
use serde::{Deserialize, Serialize};
use schemars::JsonSchema;
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "functions.inventions.recursive.request.FunctionInventionRecursiveCreateParams")]
pub struct FunctionInventionRecursiveCreateParams {
pub remote: crate::Remote,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub overwrite: Option<bool>,
pub state: functions::inventions::ParamsStateOrRemoteCommitOptional,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub provider: Option<agent::completions::request::Provider>,
pub agent: agent::InlineAgentBaseWithFallbacksOrRemoteCommitOptional,
pub prompt: functions::inventions::prompts::InlinePromptOrRemoteCommitOptional,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub stream: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub max_step_retries: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
pub continuation: Option<String>,
}