1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct SearchEventsRequest {
16 #[serde(rename = "page", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
17 pub page: Option<Option<i32>>,
18 #[serde(rename = "limit", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
19 pub limit: Option<Option<i32>>,
20 #[serde(rename = "sort", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub sort: Option<Option<String>>,
23 #[serde(rename = "direction", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24 pub direction: Option<Option<models::DirectionSearchField>>,
25 #[serde(rename = "minimal", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub minimal: Option<Option<bool>>,
28 #[serde(rename = "attribute", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub attribute: Option<Option<String>>,
31 #[serde(rename = "eventid", skip_serializing_if = "Option::is_none")]
32 pub eventid: Option<String>,
33 #[serde(rename = "datefrom", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub datefrom: Option<Option<String>>,
36 #[serde(rename = "dateuntil", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
38 pub dateuntil: Option<Option<String>>,
39 #[serde(rename = "org", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub org: Option<Option<String>>,
42 #[serde(rename = "eventinfo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
44 pub eventinfo: Option<Option<String>>,
45 #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
46 pub tag: Option<String>,
47 #[serde(rename = "tags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
49 pub tags: Option<Option<Vec<String>>>,
50 #[serde(rename = "distribution", skip_serializing_if = "Option::is_none")]
51 pub distribution: Option<models::DistributionLevelId>,
52 #[serde(rename = "sharinggroup", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
53 pub sharinggroup: Option<Option<String>>,
54 #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
55 pub analysis: Option<models::AnalysisLevelId>,
56 #[serde(rename = "threatlevel", skip_serializing_if = "Option::is_none")]
57 pub threatlevel: Option<models::ThreatLevelId>,
58 #[serde(rename = "email", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
60 pub email: Option<Option<String>>,
61 #[serde(rename = "hasproposal", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
63 pub hasproposal: Option<Option<String>>,
64 #[serde(rename = "timestamp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
66 pub timestamp: Option<Option<String>>,
67 #[serde(rename = "publish_timestamp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
69 pub publish_timestamp: Option<Option<String>>,
70 #[serde(rename = "searchDatefrom", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
72 pub search_datefrom: Option<Option<String>>,
73 #[serde(rename = "searchDateuntil", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
75 pub search_dateuntil: Option<Option<String>>,
76}
77
78impl SearchEventsRequest {
79 pub fn new() -> SearchEventsRequest {
80 SearchEventsRequest {
81 page: None,
82 limit: None,
83 sort: None,
84 direction: None,
85 minimal: None,
86 attribute: None,
87 eventid: None,
88 datefrom: None,
89 dateuntil: None,
90 org: None,
91 eventinfo: None,
92 tag: None,
93 tags: None,
94 distribution: None,
95 sharinggroup: None,
96 analysis: None,
97 threatlevel: None,
98 email: None,
99 hasproposal: None,
100 timestamp: None,
101 publish_timestamp: None,
102 search_datefrom: None,
103 search_dateuntil: None,
104 }
105 }
106}
107