1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Job {
16 #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
17 pub _id: Option<String>,
18 #[serde(rename = "workerDefinitionId", skip_serializing_if = "Option::is_none")]
19 pub worker_definition_id: Option<String>,
20 #[serde(rename = "workerId", skip_serializing_if = "Option::is_none")]
21 pub worker_id: Option<String>,
22 #[serde(rename = "workerName", skip_serializing_if = "Option::is_none")]
23 pub worker_name: Option<String>,
24 #[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
25 pub organization: Option<String>,
26 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
27 pub status: Option<Status>,
28 #[serde(rename = "startDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29 pub start_date: Option<Option<i64>>,
30 #[serde(rename = "endDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub end_date: Option<Option<i64>>,
32 #[serde(rename = "dataType", skip_serializing_if = "Option::is_none")]
33 pub data_type: Option<String>,
34 #[serde(rename = "data", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub data: Option<Option<Box<models::JobData>>>,
36 #[serde(rename = "attachment", skip_serializing_if = "Option::is_none")]
37 pub attachment: Option<Box<models::Attachment>>,
38 #[serde(rename = "tlp", skip_serializing_if = "Option::is_none")]
39 pub tlp: Option<i64>,
40 #[serde(rename = "pap", skip_serializing_if = "Option::is_none")]
41 pub pap: Option<i64>,
42 #[serde(rename = "message", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub message: Option<Option<String>>,
44 #[serde(rename = "errorMessage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
45 pub error_message: Option<Option<String>>,
46 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
47 pub parameters: Option<std::collections::HashMap<String, serde_json::Value>>,
48 #[serde(rename = "input", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
49 pub input: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
50 #[serde(rename = "fromCache", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
51 pub from_cache: Option<Option<bool>>,
52 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
53 pub r#type: Option<Type>,
54 #[serde(rename = "label", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
55 pub label: Option<Option<String>>,
56 #[serde(rename = "cacheTag", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
57 pub cache_tag: Option<Option<String>>,
58 #[serde(rename = "analyzerId", skip_serializing_if = "Option::is_none")]
59 pub analyzer_id: Option<String>,
60 #[serde(rename = "analyzerName", skip_serializing_if = "Option::is_none")]
61 pub analyzer_name: Option<String>,
62 #[serde(rename = "analyzerDefinitionId", skip_serializing_if = "Option::is_none")]
63 pub analyzer_definition_id: Option<String>,
64 #[serde(rename = "date", skip_serializing_if = "Option::is_none")]
65 pub date: Option<i64>,
66}
67
68impl Job {
69 pub fn new() -> Job {
70 Job {
71 _id: None,
72 worker_definition_id: None,
73 worker_id: None,
74 worker_name: None,
75 organization: None,
76 status: None,
77 start_date: None,
78 end_date: None,
79 data_type: None,
80 data: None,
81 attachment: None,
82 tlp: None,
83 pap: None,
84 message: None,
85 error_message: None,
86 parameters: None,
87 input: None,
88 from_cache: None,
89 r#type: None,
90 label: None,
91 cache_tag: None,
92 analyzer_id: None,
93 analyzer_name: None,
94 analyzer_definition_id: None,
95 date: None,
96 }
97 }
98}
99#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
101pub enum Status {
102 #[serde(rename = "Waiting")]
103 Waiting,
104 #[serde(rename = "InProgress")]
105 InProgress,
106 #[serde(rename = "Success")]
107 Success,
108 #[serde(rename = "Failure")]
109 Failure,
110 #[serde(rename = "Deleted")]
111 Deleted,
112}
113
114impl Default for Status {
115 fn default() -> Status {
116 Self::Waiting
117 }
118}
119#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
121pub enum Type {
122 #[serde(rename = "analyzer")]
123 Analyzer,
124 #[serde(rename = "responder")]
125 Responder,
126}
127
128impl Default for Type {
129 fn default() -> Type {
130 Self::Analyzer
131 }
132}
133