1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Worker {
17 #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
19 pub _id: Option<String>,
20 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
21 pub name: Option<String>,
22 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
23 pub version: Option<String>,
24 #[serde(rename = "workerDefinitionId", skip_serializing_if = "Option::is_none")]
26 pub worker_definition_id: Option<String>,
27 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
28 pub description: Option<String>,
29 #[serde(rename = "author", skip_serializing_if = "Option::is_none")]
30 pub author: Option<String>,
31 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
32 pub url: Option<String>,
33 #[serde(rename = "license", skip_serializing_if = "Option::is_none")]
34 pub license: Option<String>,
35 #[serde(rename = "command", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub command: Option<Option<String>>,
38 #[serde(rename = "dockerImage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
40 pub docker_image: Option<Option<String>>,
41 #[serde(rename = "dataTypeList", skip_serializing_if = "Option::is_none")]
43 pub data_type_list: Option<Vec<String>>,
44 #[serde(rename = "configuration", skip_serializing_if = "Option::is_none")]
45 pub configuration: Option<Box<models::WorkerConfiguration>>,
46 #[serde(rename = "baseConfig", skip_serializing_if = "Option::is_none")]
48 pub base_config: Option<String>,
49 #[serde(rename = "rate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
50 pub rate: Option<Option<f64>>,
51 #[serde(rename = "rateUnit", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
52 pub rate_unit: Option<Option<RateUnit>>,
53 #[serde(rename = "jobCache", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
54 pub job_cache: Option<Option<f64>>,
55 #[serde(rename = "jobTimeout", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
56 pub job_timeout: Option<Option<f64>>,
57 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
58 pub r#type: Option<Type>,
59 #[serde(rename = "analyzerDefinitionId", skip_serializing_if = "Option::is_none")]
60 pub analyzer_definition_id: Option<String>,
61 #[serde(rename = "maxTlp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
62 pub max_tlp: Option<Option<f64>>,
63 #[serde(rename = "maxPap", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
64 pub max_pap: Option<Option<f64>>,
65}
66
67impl Worker {
68 pub fn new() -> Worker {
70 Worker {
71 _id: None,
72 name: None,
73 version: None,
74 worker_definition_id: None,
75 description: None,
76 author: None,
77 url: None,
78 license: None,
79 command: None,
80 docker_image: None,
81 data_type_list: None,
82 configuration: None,
83 base_config: None,
84 rate: None,
85 rate_unit: None,
86 job_cache: None,
87 job_timeout: None,
88 r#type: None,
89 analyzer_definition_id: None,
90 max_tlp: None,
91 max_pap: None,
92 }
93 }
94}
95#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
97pub enum RateUnit {
98 #[serde(rename = "Second")]
99 Second,
100 #[serde(rename = "Minute")]
101 Minute,
102 #[serde(rename = "Hour")]
103 Hour,
104 #[serde(rename = "Day")]
105 Day,
106 #[serde(rename = "Month")]
107 Month,
108}
109
110impl Default for RateUnit {
111 fn default() -> RateUnit {
112 Self::Second
113 }
114}
115#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
117pub enum Type {
118 #[serde(rename = "analyzer")]
119 Analyzer,
120 #[serde(rename = "responder")]
121 Responder,
122}
123
124impl Default for Type {
125 fn default() -> Type {
126 Self::Analyzer
127 }
128}
129