clia_influxdb2/models/
task.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
7pub enum TaskStatusType {
8 #[serde(rename = "active")]
10 Active,
11 #[serde(rename = "inactive")]
13 Inactive,
14}
15
16#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
18#[serde(rename_all = "camelCase")]
19pub struct Task {
20 pub id: String,
22 pub name: String,
24 #[serde(rename = "orgID")]
26 pub org_id: String,
27 pub flux: String,
29 #[serde(rename = "ownerID")]
31 pub owner_id: Option<String>,
32 pub org: Option<String>,
34 pub status: Option<TaskStatusType>,
36 #[serde(rename = "type")]
38 pub type_: Option<String>,
39 #[serde(rename = "authorizationID")]
42 pub authorization_id: Option<String>,
43 pub description: Option<String>,
45 pub cron: Option<String>,
47 pub every: Option<String>,
49 pub last_run_error: Option<String>,
51 pub last_run_status: Option<String>,
53 pub latest_completed: Option<String>,
55 pub offset: Option<String>,
58 pub links: Option<TaskLinks>,
60 #[serde(default, skip_serializing_if = "Vec::is_empty")]
62 pub labels: Vec<crate::models::Label>,
63 pub created_at: Option<String>,
65 pub updated_at: Option<String>,
67}
68
69#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
71pub struct TaskLinks {
72 #[serde(rename = "self", skip_serializing_if = "Option::is_none")]
74 pub self_: Option<String>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub labels: Option<String>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub logs: Option<String>,
81 #[serde(skip_serializing_if = "Option::is_none")]
83 pub members: Option<String>,
84 #[serde(skip_serializing_if = "Option::is_none")]
86 pub owners: Option<String>,
87 #[serde(skip_serializing_if = "Option::is_none")]
89 pub runs: Option<String>,
90}
91
92#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
94pub struct Tasks {
95 #[serde(skip_serializing_if = "Option::is_none")]
97 pub links: Option<crate::models::Links>,
98 #[serde(default, skip_serializing_if = "Vec::is_empty")]
100 pub tasks: Vec<Task>,
101}
102
103#[cfg(test)]
104mod tests {
105 use super::*;
106
107 #[test]
108 fn serialize_task_status_type() {
109 let v = serde_json::to_string(&TaskStatusType::Active).unwrap();
110 assert_eq!(v, "\"active\"");
111 let v = serde_json::to_string(&TaskStatusType::Inactive).unwrap();
112 assert_eq!(v, "\"inactive\"");
113 }
114}