use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ::jumo_derive::Jumo)]
#[jumo(kind = "struct", domain = "Reporting", module = "Reporting.Protocol")]
#[serde(deny_unknown_fields)]
pub struct AgentLocalTask {
pub input_id: String,
pub path: String,
pub startup_position: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ::jumo_derive::Jumo)]
#[jumo(kind = "struct", domain = "Reporting", module = "Reporting.Protocol")]
#[serde(deny_unknown_fields)]
pub struct AgentLocalStandingWork {
pub work_id: String,
pub family: String,
pub status: String,
pub plan_version: i64,
#[serde(default)]
pub acknowledged_version: Option<i64>,
pub effective_from: String,
#[serde(default)]
pub tasks: Vec<AgentLocalTask>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ::jumo_derive::Jumo)]
#[jumo(kind = "struct", domain = "Reporting", module = "Reporting.Protocol")]
#[serde(deny_unknown_fields)]
pub struct AgentLocalOneShotWork {
pub work_id: String,
pub action: String,
pub status: String,
pub execution: String,
pub scheduled_at: String,
pub deadline_at: String,
pub timeout_seconds: i64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ::jumo_derive::Jumo)]
#[jumo(kind = "struct", domain = "Reporting", module = "Reporting.Protocol")]
#[serde(deny_unknown_fields)]
pub struct AgentLocalWork {
pub recorded_at: String,
pub gateway_sequence: i64,
#[serde(default)]
pub standing: Vec<AgentLocalStandingWork>,
#[serde(default)]
pub one_shot: Vec<AgentLocalOneShotWork>,
#[serde(default)]
pub local_inputs: Vec<AgentLocalTask>,
#[serde(default)]
pub metrics_interval_seconds: Option<i64>,
}