1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(tag = "type", rename_all = "camelCase")]
6pub enum FlowEvent {
7 #[serde(rename = "update")]
9 TaskUpdate {
10 event: String,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 session_id: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 file: Option<String>,
15 },
16
17 #[serde(rename = "feature_update")]
19 FeatureUpdate {
20 id: i64,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 passes: Option<bool>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 in_progress: Option<bool>,
25 },
26
27 #[serde(rename = "agent-status")]
29 AgentStatus {
30 #[serde(skip_serializing_if = "Option::is_none")]
31 agent: Option<String>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 status: Option<String>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 task: Option<String>,
36 },
37
38 #[serde(rename = "progress")]
40 Progress {
41 passing: usize,
42 total: usize,
43 in_progress: usize,
44 },
45
46 #[serde(rename = "metadata-update")]
48 MetadataUpdate,
49
50 #[serde(rename = "connected")]
52 Connected,
53}