use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CronCreate {
#[serde(rename = "schedule")]
pub schedule: String,
#[serde(rename = "end_time", skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(rename = "assistant_id")]
pub assistant_id: Box<models::CronCreateAssistantId>,
#[serde(rename = "input", skip_serializing_if = "Option::is_none")]
pub input: Option<Box<models::Input>>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
#[serde(rename = "config", skip_serializing_if = "Option::is_none")]
pub config: Option<Box<models::Config2>>,
#[serde(rename = "context", skip_serializing_if = "Option::is_none")]
pub context: Option<serde_json::Value>,
#[serde(rename = "webhook", skip_serializing_if = "Option::is_none")]
pub webhook: Option<String>,
#[serde(rename = "interrupt_before", skip_serializing_if = "Option::is_none")]
pub interrupt_before: Option<Box<models::InterruptBefore>>,
#[serde(rename = "interrupt_after", skip_serializing_if = "Option::is_none")]
pub interrupt_after: Option<Box<models::InterruptAfter>>,
#[serde(rename = "on_run_completed", skip_serializing_if = "Option::is_none")]
pub on_run_completed: Option<OnRunCompleted>,
}
impl CronCreate {
pub fn new(schedule: String, assistant_id: models::CronCreateAssistantId) -> CronCreate {
CronCreate {
schedule,
end_time: None,
assistant_id: Box::new(assistant_id),
input: None,
metadata: None,
config: None,
context: None,
webhook: None,
interrupt_before: None,
interrupt_after: None,
on_run_completed: None,
}
}
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum OnRunCompleted {
#[serde(rename = "delete")]
#[default]
Delete,
#[serde(rename = "keep")]
Keep,
}